@charset "UTF-8";

*,
*:before,
*:after,
*.tooltip-right:after,
*.tooltip-bottom:after,
*.tooltip-left:after {
  -webkit-box-sizing: inherit;
  -moz-box-sizing: inherit;
  box-sizing: inherit;
  -webkit-touch-callout: none;
  -ms-touch-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

html {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 300;
  line-height: 1.5;
  height: 100%;
}

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  height: 100%;
  margin: 0;
  padding: 0;
}

body.darkroom:after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #555;
  background-color: rgba(0, 0, 0, 0.7);
}

body .darkroom-banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: transparent;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
}

body .darkroom-banner > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  max-width: 280px;
  min-width: 280px;
  width: 280px;
  background-color: #fefefe;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
  font-size: 20px;
}

button,
input,
select,
textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
}

input {
  line-height: normal;
}

input[type='text'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  border: 1px solid #808080;
  outline: 0;
  padding: 3px;
}

input[type='password'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  border: 1px solid #808080;
  outline: 0;
  padding: 3px;
}

input.required {
  color: #ff0000;
}

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  background-color: #ffffff;
  border: 2px solid #9768EB;
  color: #9768EB;
  font-weight: 500;
  letter-spacing: 1px;
  min-width: 110px;
  outline: 0;
  padding: 0 10px;
  text-transform: uppercase;
}

button.short {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
}

button.small {
  min-width: 80px;
}

button.medium {
  max-width: 150px;
  min-width: 150px;
  width: 150px;
}

button.primary,
button.blue {
  background-color: #9768EB;
  color: #ffffff;
}

button.disabled {
  color: #cdcdcd;
  border-color: #cdcdcd;
  cursor: default;
}

button:disabled {
  color: #cdcdcd;
  border-color: #cdcdcd;
  cursor: default;
}

button.resume {
  background-color: #D1404B;
  color: #ffffff;
  font-weight: bold;
}

button:focus {
  outline: 0;
}

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

button + button {
  margin-left: 8px;
}

@media (max-width: 768px) {
  input,
  select,
  textarea {
    font-size: 16px;
  }
}

.input-checkbox {
  color: #9768EB;
  font-size: 20px;
}

.input-checkbox.disabled {
  color: #cdcdcd;
}

.footer-content {
  /*
  @include flex(1 0 auto);
  @include flex-row-center();
  @include flex-justify-content(center);
  */
  padding: 10px 0;
  background-color: #E1E1E6;
  border-top: none;
  color: #32254F;
}

.footer-content a {
  text-decoration: none;
  color: #9768EB;
}

[ng\:cloak],
[ng-cloak],
.ng-cloak {
  display: none !important;
}

.header-content {
  -webkit-justify-content: initial;
  justify-content: initial;
  max-height: 90px;
  min-height: 90px;
  height: 90px;
}

.header-content .logo {
  max-height: 90px;
  min-height: 90px;
  height: 90px;
  max-width: 140px;
  min-width: 140px;
  width: 140px;
}

.header-content .white-field {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.header-content .white-field i.icon-shop {
  display: block;
  float: left;
  padding: 0px;
  margin-right: -5px;
  margin-left: 5px;
  font-size: 20px;
}

.header-content .white-field > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  margin: 0px 30px;
}

.header-content .white-field > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  padding: 10px;
  font-size: 16px;
  cursor: pointer;
}

.header-content .white-field > div > div i {
  font-size: 28px;
  display: block;
  float: left;
  margin: -1px 8px 0px 0px;
}

.header-content .white-field > div > div:hover {
  color: #11264b;
}

.header-content .white-field > div > div.current-athlete {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  border: none;
  font-size: 18px;
  font-weight: 600;
  min-width: auto;
  margin-right: auto;
}

.header-content .white-field > div > div.current-athlete span {
  cursor: pointer;
}

.header-content .white-field > div > div.current-athlete span:first-child {
  font-weight: normal;
}

.header-content .white-field > div > div.current-athlete span + span {
  margin-left: 10px;
}

.header-content .white-field > div > div.current-athlete span + span:hover {
  text-decoration: underline;
}

.header-content .white-field > div > div + div {
  margin-left: 15px;
}

.header-content .white-field > button:first-child {
  margin: 0 7px 0 25px;
}

.header-content .white-field > button:last-child {
  margin: 0 25px 0 7px;
}

.header-content .white-field > button > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.header-content .white-field > button > div i.fa {
  font-size: 22px;
  margin-right: 4px;
}

.menu-content {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

@media (max-width: 768px) {
  .menu-content.resp-menu {
    background: none;
    position: absolute;
    pointer-events: none;
  }
}

.body-content {
  margin: 0;
  padding: 0;
}

.red-background {
  background-color: #c42a3b;
}

.yellow-background {
  background-color: #dfc03f;
}

.green-background {
  background-color: #20b769;
}

.blue-text {
  color: #9768EB;
}

.red-text {
  color: #c42a3b;
}

.grey-text {
  color: #808080;
}

.light-grey-text {
  color: #a7a7a7;
}

.yellow-text {
  color: #dfc03f;
}

.green-text {
  color: #20b769;
}

.whitebg {
  background-color: #ffffff;
}

.greybg {
  background-color: #efefef;
}

.drkgreybg {
  background-color: #2e2e2e;
}

.bluebg {
  background-color: #9768EB;
}

.main-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  min-height: 100vh;
}

.view-flex {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-static {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

.view-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-stack {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-width: 1024px;
  min-width: 1024px;
  width: 1024px;
}

.view-container.centered {
  -webkit-align-items: center;
  align-items: center;
}

.view-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.view-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.view-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.view-container.middle {
  -webkit-align-self: center;
  align-self: center;
}

.view-container.column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.view-container.column.center {
  -webkit-justify-content: center;
  justify-content: center;
}

.column-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.column-container.full {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.column-container.top {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.column-container.bottom {
  -webkit-align-items: flex-end;
  align-items: flex-end;
}

.column-container.center {
  -webkit-align-items: center;
  align-items: center;
}

.column-container.middle {
  -webkit-justify-content: center;
  justify-content: center;
}

.column-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.column-container.spaced {
  -webkit-justify-content: space-around;
  justify-content: space-around;
}

.column-container.start {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.column-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.column-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.row-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.row-container.full {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.row-container.top {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.row-container.bottom {
  -webkit-align-items: flex-end;
  align-items: flex-end;
}

.row-container.center {
  -webkit-align-items: center;
  align-items: center;
}

.row-container.middle {
  -webkit-justify-content: center;
  justify-content: center;
}

.row-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.row-container.spaced {
  -webkit-justify-content: space-around;
  justify-content: space-around;
}

.row-container.start {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.row-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.row-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.hidden {
  display: none;
}

input[type=range] {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  -moz-appearance: none;
  margin: 0;
  width: 100%;
  padding: 0;
  border-radius: 8px;
  background: transparent;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #9768EB), color-stop(0, #e8e8e8));
  cursor: pointer;
}

input[type=range]:focus {
  outline: none;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
  margin-top: -15px;
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  border-radius: 8px;
  background: transparent;
}

input[type=range]::-moz-range-thumb {
  -moz-appearance: none;
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
}

input[type=range]::-moz-range-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  border-radius: 8px;
  background: transparent;
}

input[type=range]::-moz-focus-outer {
  border: 0;
  outline: 0;
}

input[type=range]::-ms-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  background: transparent;
  border-color: transparent;
  border-width: 16px 0;
  color: transparent;
}

input[type=range]::-ms-thumb {
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
}

input[type=range]::-ms-tooltip {
  display: none;
}

input[type=range]::-ms-fill-lower {
  background: #9768EB;
  border: 0.2px solid #9768EB;
  border-radius: 8px;
}

input[type=range]::-ms-fill-upper {
  background: #e8e8e8;
  border: 0.2px solid #e8e8e8;
  border-radius: 8px;
}

input[type=range]:focus::-ms-fill-lower {
  background: #9768EB;
}

input[type=range]:focus::-ms-fill-upper {
  background: #e8e8e8;
}

.program-exercise.daily-exercise {
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  padding: 20px;
  gap: 10px;
}

.program-exercise.daily-exercise .daily-exercise-actions {
  min-width: 54px !important;
  max-width: 54px !important;
  width: 54px !important;
}

.program-exercise.daily-exercise .info .attributes {
  gap: 10px;
}

.program-exercise.daily-exercise .info .attributes > div {
  margin: 0 !important;
}

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  overflow: hidden;
  background-color: #c4c4c4;
  background-color: rgba(196, 196, 196, 0.7);
}

.modal-overlay.ng-enter,
.modal-overlay.ng-leave {
  -webkit-transition: .2s linear all;
  -moz-transition: .2s linear all;
  -o-transition: .2s linear all;
  transition: .2s linear all;
}

.modal-overlay.ng-enter,
.modal-overlay.ng-leave.ng-leave-active {
  opacity: 0;
}

.modal-overlay.ng-enter.ng-enter-active,
.modal-overlay.ng-leave {
  opacity: 1;
}

.modal-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1001;
  overflow: hidden;
  pointer-events: none;
}

.modal-view .modal {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 100px;
  min-width: 200px;
  pointer-events: auto;
  -webkit-transition: .2s linear all;
  -moz-transition: .2s linear all;
  -o-transition: .2s linear all;
  transition: .2s linear all;
}

.modal-view .modal.ng-leave {
  transform: translateY(0%);
}

.modal-view .modal.ng-leave.ng-leave-active {
  transform: translateY(-200%);
}

.modal-view.ng-enter .modal {
  transform: translateY(-200%);
}

.modal-view.ng-enter.ng-enter-active .modal {
  transform: translateY(0);
}

.modal-animate-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 770px;
  min-width: 770px;
  width: 770px;
  overflow: hidden;
}

.modal-animate-container > .modal-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-transition: .125s linear all;
  -moz-transition: .125s linear all;
  -o-transition: .125s linear all;
  transition: .125s linear all;
}

.modal-animate-container > .modal-container.ng-leave.slide-left {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-leave.slide-right {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-leave.ng-leave-active.slide-left,
.modal-animate-container > .modal-container.ng-hide-add.slide-left {
  transform: translateX(-100%);
}

.modal-animate-container > .modal-container.ng-leave.ng-leave-active.slide-right,
.modal-animate-container > .modal-container.ng-hide-add.slide-right {
  transform: translateX(100%);
}

.modal-animate-container > .modal-container.ng-enter.slide-left,
.modal-animate-container > .modal-container.ng-hide-remove.slide-left {
  transform: translateX(-100%);
}

.modal-animate-container > .modal-container.ng-enter.slide-right,
.modal-animate-container > .modal-container.ng-hide-remove.slide-right {
  transform: translateX(100%);
}

.modal-animate-container > .modal-container.ng-enter.ng-enter-active.slide-left {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-enter.ng-enter-active.slide-right {
  transform: translateX(0px);
}

.modal-container {
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 8px 8px 20px 0px #4a4a4a;
}

.modal-container.large {
  width: 970px;
}

.modal-container header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
  border-top-left-radius: 8px;
  border-top-right-radius: 6px;
}

.modal-container header button.link {
  position: absolute;
  top: 0;
  right: 0;
  border: none;
  min-height: 30px;
  line-height: 20px;
  font-size: 12px;
}

.modal-container header button.link i.left {
  margin-right: 5px;
}

.modal-container header.alert {
  background-color: #c42a3b;
  color: #ffffff;
}

.modal-container header.confirm {
  background-color: #9768EB;
  color: #ffffff;
}

.modal-container header label {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 16px;
  margin-left: 10px;
  text-align: center;
}

.modal-container header label i.fa {
  margin: 0 4px;
}

.modal-container header label span {
  font-weight: 500;
}

.modal-container header .close {
  background-color: transparent;
  border: none;
  color: #000;
  font-size: 16px;
  font-weight: 700;
  margin: 0 8px;
  min-width: 0;
  opacity: .2;
  text-shadow: 0 1px 0 #ccc;
  text-transform: none;
}

.modal-container header .close:hover {
  cursor: pointer;
  opacity: 1;
}

.modal-container section {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 0 10px;
  min-height: 80px;
  min-width: 300px;
}

.modal-container footer {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.modal-container footer button:last-of-type {
  margin-right: 8px;
}

.loading-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #f9f9f9;
  background-color: rgba(125, 125, 125, 0.5);
}

.loading-view .loading-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 200px;
  min-width: 200px;
}

.loading-view .loading-container .fa-spinner {
  color: #fff;
  font-size: 60px;
}

.athlete-selection {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  background-color: #ffffff;
  border-top: 1px solid #e0e0e1;
  border-bottom: 1px solid #e0e0e1;
  height: 44px;
  min-height: 44px;
  max-height: 44px;
}

.athlete-selection > div,
.athlete-selection > .athlete-selection__tab {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  border-right: 1px solid #e0e0e1;
  box-sizing: border-box;
  color: #120d1c;
  cursor: pointer;
  font-size: 14px;
  min-width: auto;
  padding: 0 16px;
  position: relative;
}

.athlete-selection > div.active,
.athlete-selection > .athlete-selection__tab.active {
  background-color: #f2edfc;
  color: #120d1c;
}

.athlete-selection > div.active:after,
.athlete-selection > .athlete-selection__tab.active:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background-color: #9768eb;
}

.athlete-selection > div.active .close,
.athlete-selection > .athlete-selection__tab.active .close {
  cursor: pointer;
}

.athlete-selection > div:not(.active):hover,
.athlete-selection > .athlete-selection__tab:not(.active):hover {
  background-color: #f7f7f8;
  color: #120d1c;
  cursor: pointer;
}

.athlete-selection > div .name,
.athlete-selection > .athlete-selection__tab .name {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  font: 600 14px/20px "Nudista", sans-serif;
  color: #120d1c;
  letter-spacing: 0;
  margin: 0 8px 0 0;
}

.athlete-selection > div .close,
.athlete-selection > .athlete-selection__tab .close {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: inherit;
  font-weight: 400;
  min-width: auto;
  max-width: none;
  padding: 0;
  text-align: center;
}

.athlete-selection > div .close img,
.athlete-selection > .athlete-selection__tab .close img {
  display: block;
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.athlete-selection > div.team-nav {
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #ffffff;
  color: #6c6c7c;
  min-width: 44px;
  padding: 0;
  border: 0;
  border-right: 1px solid #e0e0e1;
}

.athlete-selection > div.team-nav:hover {
  cursor: pointer;
  color: #6c6c7c;
  background-color: #f7f7f8;
}

.athlete-selection > div.team-nav:after {
  display: none;
}

.athlete-selection > div.team-nav .team-nav__icon {
  display: block;
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.athlete-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin-bottom: 35px;
}

.athlete-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-height: 48px;
  min-height: 48px;
  height: 48px;
  border-top: 1px solid #ccc;
  font-size: 13px;
  width: 100%;
}

.athlete-menu .athlete-search {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  border-right: 1px solid #cdcdcd;
  width: 140px;
}

.athlete-menu .athlete-search input[type='text'] {
  border: none;
  font-size: 20px;
  font-weight: 300;
  height: 50px;
  text-indent: 15px;
  width: 95%;
}

.athlete-menu .athlete-search ::-webkit-input-placeholder {
  color: #6d6e72;
}

.athlete-menu .athlete-reset-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 100px;
  -ms-flex: 1 0 100px;
  flex: 1 0 100px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  border-right: 1px solid #ccc;
  cursor: pointer;
  color: #6d6e72;
}

.athlete-menu .athlete-reset-view:hover {
  color: #cdcdcd;
}

.athlete-menu .athlete-toggle-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 100px;
  -ms-flex: 1 0 100px;
  flex: 1 0 100px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  font-size: 23px;
}

.athlete-menu .athlete-toggle-view > i {
  cursor: pointer;
  margin: 8px;
  color: #cdcdcd;
}

.athlete-menu .athlete-toggle-view > i:hover {
  color: #6d6e72;
}

.athlete-menu .athlete-toggle-view > i.active {
  color: #9768EB;
}

.athlete-menu .athlete-mobile-filters-btn {
  display: none;
}

.athlete-menu .athlete-filter-sort {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  min-width: 600px;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  border-right: 1px solid #ccc;
  color: #6d6e72;
  cursor: pointer;
  min-width: 110px;
  position: relative;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .label {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  max-width: 110px;
  width: 110px;
  padding: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #6d6e72;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .label:after {
  position: absolute;
  top: 35%;
  right: 10px;
  font-family: FontAwesome;
  content: "\F0D7";
  color: #6d6e72;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options {
  position: absolute;
  top: 52px;
  left: -1px;
  background-color: #f6f1f1;
  border: 1px solid #ebebeb;
  box-shadow: 0 2px 5px 0 rgba(68, 67, 76, 0.25);
  min-width: 130px;
  width: 100%;
  z-index: 3;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item {
  padding: 5px 10px 5px 14px;
  white-space: nowrap;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item:hover {
  background-color: #dedfde;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item-selected {
  font-weight: bold;
  padding-left: 3px;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .sort-item-selected {
  font-weight: bold;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-circle {
  margin-left: 7px;
  margin-right: 3px;
  text-align: center;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-circle.not-active {
  color: transparent;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-sort-asc {
  margin-left: 4px;
  margin-right: 3px;
  margin-top: 4px;
  text-align: center;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-sort-desc {
  margin-bottom: 4px;
  margin-left: 3px;
  margin-right: 4px;
  text-align: center;
}

@media (max-width: 768px) {
  body .athlete-menu {
    flex-wrap: wrap;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  body .athlete-menu .athlete-mobile-filters-btn {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    align-items: center;
    order: 2;
    height: 48px;
    padding: 0 14px;
    gap: 7px;
    cursor: pointer;
    border-left: 1px solid #ccc;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #6d6e72;
  }

  body .athlete-menu .athlete-search {
    order: 1;
    height: 48px;
    min-width: 0;
  }

  body .athlete-menu .athlete-toggle-view {
    order: 3;
    min-width: unset;
    max-width: 70px;
    width: 70px;
    height: 48px;
  }

  body .athlete-menu .athlete-filter-sort {
    display: none !important;
    order: 4;
    width: 100%;
    min-width: unset;
    border-top: 1px solid #ccc;
  }

  body .athlete-menu .athlete-filter-sort.mobile-open {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
    flex-direction: column;
    background-color: #fff;
    overflow: visible;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box {
    height: 50px;
    min-height: 50px;
    max-height: none;
    min-width: unset;
    padding: 0;
    border-right: none;
    border-bottom: 1px solid #eee;
    overflow: visible;
    position: relative;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box:last-child {
    border-bottom: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box::after {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    font-family: FontAwesome;
    content: "\F0D7";
    color: #6d6e72;
    font-size: 13px;
    pointer-events: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box div.label {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    max-width: none;
    height: auto;
    min-height: 0;
    max-height: none;
    display: flex;
    align-items: center;
    overflow: visible;
    padding: 0 30px 0 20px;
    font-size: 13px;
    font-weight: 400;
    cursor: pointer;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box div.label::after {
    content: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name] {
    font-size: 0;
    padding-right: 30px !important;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name]::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name]::after {
    content: 'All';
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    position: static;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value] {
    font-size: 0;
    padding-right: 30px !important;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value]::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value]::after {
    content: attr(data-sort-value);
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    font-family: inherit;
    position: static;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .options {
    top: 50px;
    left: 0;
    z-index: 100;
    min-width: 100%;
  }

  body .athlete-menu .athlete-reset-view {
    order: 5;
    display: none;
    width: 100%;
    min-width: unset;
    max-width: unset;
    min-height: 50px;
    max-height: 50px;
    height: 50px;
    border-left: none;
    border-right: none;
    border-top: 1px solid #ccc;
  }

  body .athlete-menu--filters-open .athlete-reset-view {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }

  body .label[data-field-name]:not(.label-placeholder):not([data-sort-value])::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }
}

.athlete-list-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.athlete-list-view .athlete-list-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

.athlete-list-view .athlete-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-align-content: center;
  align-content: center;
  font-size: 12px;
  background-color: #e1e1e1;
}

.athlete-list-view .athlete-header > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  background-color: #e1e1e1;
  color: #6d6e72;
  text-transform: uppercase;
  font-weight: 600;
}

.athlete-list-view .athlete-header .athlete-number {
  min-width: 70px;
}

.athlete-list-view .athlete-header .athlete-name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 170px;
}

.athlete-list-view .athlete-header .athlete-stat {
  -webkit-flex: 0.5;
  -ms-flex: 0.5;
  flex: 0.5;
  min-width: 100px;
}

.athlete-list-view .athlete-header .athlete-programs {
  min-width: 140px;
}

.athlete-list-view .athlete-header .athlete-last-activity {
  min-width: 170px;
}

.athlete-list-view .athlete-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-align-content: center;
  align-content: center;
  font-size: 20px;
}

.athlete-list-view .athlete-row > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 53px;
  min-height: 53px;
  height: 53px;
}

.athlete-list-view .athlete-row .athlete-number {
  color: #939497;
  min-width: 70px;
  padding-left: 20px;
}

.athlete-list-view .athlete-row .athlete-name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  color: #f7f7f7;
  min-width: 170px;
  cursor: pointer;
}

.athlete-list-view .athlete-row .athlete-stat {
  -webkit-flex: 0.5;
  -ms-flex: 0.5;
  flex: 0.5;
  -webkit-justify-content: center;
  justify-content: center;
  letter-spacing: 1.25px;
  min-width: 100px;
}

.athlete-list-view .athlete-row .athlete-programs {
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 13px;
  min-width: 140px;
  text-transform: uppercase;
}

.athlete-list-view .athlete-row .athlete-programs > div {
  cursor: pointer;
}

.athlete-list-view .athlete-row .athlete-programs i {
  padding-right: 12px;
}

.athlete-list-view .athlete-row .athlete-last-activity {
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 13px;
  min-width: 170px;
  text-transform: uppercase;
}

.athlete-list-view .athlete-row:nth-child(even) > div {
  background-color: #fefefe;
}

.athlete-list-view .athlete-row:nth-child(even) .athlete-number,
.athlete-list-view .athlete-row:nth-child(even) .athlete-name {
  background-color: #2e2e2e;
}

.athlete-list-view .athlete-row:nth-child(odd) > div {
  background-color: #efefef;
}

.athlete-list-view .athlete-row:nth-child(odd) .athlete-number,
.athlete-list-view .athlete-row:nth-child(odd) .athlete-name {
  background-color: #242424;
}

.athlete-dashboard-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  background-color: #eef0ef;
}

.athlete-dashboard-layout .athlete-dashboard-layout-side {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.athlete-dashboard {
  font-size: 12px;
  margin-bottom: 20px;
  margin-top: 15px;
}

.athlete-dashboard .athlete-dashboard-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-height: 85px;
  padding-left: 10px;
  width: 990px;
}

.athlete-dashboard .athlete-dashboard-menu > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin-right: 35px;
  text-transform: uppercase;
}

.athlete-dashboard .athlete-dashboard-menu > div > span:first-child {
  font-size: 18px;
  margin-right: 7px;
}

.athlete-dashboard .athlete-dashboard-menu > div > span:first-child > i:last-child {
  font-size: 13px;
}

.athlete-dashboard .athlete-dashboard-container {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 20px;
  width: 100%;
}

.athlete-dashboard .athlete-dashboard-container .athlete-info-box {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  height: auto;
  min-height: 0;
  max-height: none;
  min-width: 0;
  width: calc((100% - 40px) / 3);
  background-color: #ffffff;
}

.athlete-dashboard .athlete-dashboard-container .athlete-add-slot {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  flex: 1 0 100%;
  margin-top: 10px;
}

.athlete-dashboard .athlete-dashboard-container .athlete-add-slot button i {
  font-size: 18px;
  margin-right: 8px;
  vertical-align: middle;
}

.athlete-dashboard .athlete-dashboard-container .athlete-info-box > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  width: 100%;
}

.athlete-dashboard-actions {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: 35px;
}

.athlete-dashboard-actions .action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  cursor: pointer;
  margin-bottom: 8px;
}

.athlete-dashboard-actions .action.disabled {
  cursor: default;
  color: #cdcdcd;
}

.athlete-dashboard-actions .action.disabled .action-icon,
.athlete-dashboard-actions .action.disabled .action-text {
  color: #cdcdcd;
}

.athlete-dashboard-actions .action .action-icon {
  font-size: 36px;
  margin-right: 5px;
}

.athlete-dashboard-actions .action .action-text {
  text-transform: uppercase;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 1px;
  margin-right: 20px;
  white-space: nowrap;
}

.athlete-info-box .bio-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1 0 40px;
  -ms-flex: 1 0 40px;
  flex: 1 0 40px;
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  background-color: #9768EB;
  color: #ffffff;
  font-size: 18px;
  font-weight: 500;
  cursor: pointer;
}

.athlete-info-box .bio-header .athlete-number {
  margin-left: 15px;
}

.athlete-info-box .bio-header .athlete-name {
  margin-left: 15px;
}

.athlete-info-box .bio-header .athlete-number + .athlete-name {
  margin-left: 10px;
}

.athlete-info-box .bio-header:hover {
  background-color: rgba(17, 38, 75, 0.85);
}

.athlete-info-box .bio-body {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
  padding: 17px;
}

.athlete-info-box .bio-body > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.athlete-info-box .bio-body .athlete-profile {
  -webkit-align-items: center;
  align-items: center;
  max-width: 120px;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic-thumb {
  position: relative;
  width: 100px;
  height: 100px;
  overflow: hidden;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic {
  border: 1px solid #ccc;
  height: 130px;
  margin: 0 0 10px;
  width: 120px;
  cursor: pointer;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic img {
  position: absolute;
  left: 50%;
  top: 50%;
  height: 100%;
  width: auto;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.athlete-info-box .bio-body .athlete-profile .athlete-position {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .5px;
}

.athlete-info-box .bio-body .athlete-profile .athlete-weight {
  font-size: 12px;
  text-transform: uppercase;
}

.athlete-info-box .bio-body .athlete-stats {
  padding-left: 15px;
}

.athlete-info-box .bio-body .athlete-stats .athlete-score {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 14px;
  line-height: 10px;
}

.athlete-info-box .bio-body .athlete-stats .athlete-score-tl-data {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 20px;
  line-height: 10px;
  padding-top: 10px;
}

.athlete-info-box .bio-body .athlete-stats .test-type {
  border-bottom: 1px solid #ccc;
  font-size: 22px;
  line-height: 22px;
  min-height: 30px;
}

.athlete-info-box .bio-body .athlete-stats .test-score {
  font-size: 40px;
  line-height: 40px;
  min-height: 50px;
  text-align: center;
}

.athlete-info-box .bio-footer {
  -webkit-flex: 1 0 50px;
  -ms-flex: 1 0 50px;
  flex: 1 0 50px;
  background-color: #f5f5f5;
  max-height: 50px;
}

.athlete-info-box .bio-footer > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  font-size: 12px;
  text-transform: uppercase;
  cursor: pointer;
  color: #6d6e72;
  letter-spacing: 0.6px;
}

.athlete-info-box .bio-footer > div i {
  font-size: 13px;
  margin-right: 8px;
}

.athlete-info-box .bio-footer > div i.icon-test {
  font-size: 18px;
}

.athlete-info-box .bio-footer > div:hover {
  background-color: #E8E8E8;
  color: #9768EB;
}

.athlete-info-box .bio-footer > div + div {
  border-left: 1px solid #E8E8E8;
}

.profile-menu {
  -webkit-align-items: flex-end;
  align-items: flex-end;
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.menu-item + .menu-item {
  margin-left: 45px;
}

.menu-item {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 1px;
}

.menu-item.active {
  border-bottom: 4px solid #9768EB;
  color: #efefef;
}

.menu-item:not(.active):hover {
  border-bottom: 4px solid #a0a4a8;
  cursor: pointer;
}

.menu-item a {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border: none;
  color: inherit;
  display: inline-block;
  outline: none;
  text-decoration: none;
}

.menu-item span.marker {
  position: absolute;
  top: 0;
  right: -30px;
  width: 23px;
  height: 22px;
  background-color: #ff0000;
  border-radius: 50%;
  text-align: center;
}

.profile-detail {
  max-width: 210px;
  min-width: 210px;
  width: 210px;
}

@media (max-width: 768px) {
  .profile-detail.profile-detail {
    display: none;
  }
}

.profile-detail .data-emphasis {
  font-weight: 600;
}

.profile-detail .profile-pic {
  max-height: 175px;
  min-height: 175px;
  height: 175px;
  max-width: 200px;
  min-width: 200px;
  width: 200px;
  overflow: hidden;
}

.profile-detail .profile-pic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.profile-detail .profile-action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #9768EB;
  color: #ffffff;
  height: 50px;
  width: 200px;
  cursor: pointer;
}

.profile-detail .profile-action i {
  font-size: 17px;
  margin-right: 5px;
}

.profile-detail .profile-action span {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
}

.profile-detail .profile-action.invisible {
  visibility: hidden;
}

.profile-detail .profile-data-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  margin-top: 15px;
}

.profile-detail .profile-data-container .profile-data > span:first-child {
  margin-right: 5px;
}

.profile-detail .profile-group-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  margin-top: 15px;
}

.profile-detail .profile-group-container .group-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #D9DAD9;
  border: 0;
  border-radius: 6px;
  margin: 6px 0 0;
  height: 30px;
  width: 115px;
  position: relative;
}

.profile-detail .profile-group-container .group-container .group-icon {
  border: 1px solid #999;
  margin-right: 8px;
  height: 16px;
  width: 12px;
}

.profile-detail .profile-group-container .group-container .group-save {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  background-color: #9768EB;
  color: #fff;
}

.profile-detail .profile-group-container .group-container .group-close {
  position: absolute;
  right: 5px;
  cursor: pointer;
  font-size: 22px;
}

.profile-data-container.mobile-profile-data {
  display: none;
}

@media (max-width: 768px) {
  .profile-data-container.mobile-profile-data {
    display: block;
  }
}

.profile-group-container.mobile-profile-group {
  display: none;
}

@media (max-width: 768px) {
  .profile-group-container.mobile-profile-group {
    display: block;
  }
}

@media (max-width: 768px) {
  .resp-month-view {
    flex-direction: column;
  }
}

@media (max-width: 600px) {
  .resp-score-today {
    flex-direction: column-reverse;
  }
}

@media only screen and (max-width: 600px) {
  body .profile-summary > .row-container.divided.resp-score-today > div + div {
    padding-left: 0;
  }
}

@media only screen and (max-width: 768px) {
  body .profile-summary {
    padding-left: 0px !important;
  }
}

.profile-summary {
  max-width: 780px;
  min-width: 780px;
  width: 780px;
}

.profile-summary .mobile-pic {
  display: none;
}

@media (max-width: 768px) {
  .profile-summary .mobile-pic {
    display: block;
    flex-shrink: 0;
    align-self: flex-start;
    margin-right: 16px;
  }

  .profile-summary .mobile-pic img {
    display: block;
    width: 120px;
    height: auto;
    aspect-ratio: 200 / 175;
    object-fit: contain;
  }
}

.profile-summary .profile-name {
  margin-bottom: 5px;
}

.profile-summary .profile-name > div {
  font-size: 24px;
  margin-right: 6px;
}

.profile-summary .profile-activity {
  margin-bottom: 10px;
  color: #999;
  font-size: 13px;
}

@media (max-width: 768px) {
  .profile-summary .profile-activity {
    flex-direction: column;
  }
}

.profile-summary .profile-activity > div:nth-child(n+2):before {
  color: #ccc;
  content: '|';
  margin: 0 9px;
}

@media (max-width: 768px) {
  .profile-summary .profile-activity > div:nth-child(n+2):before {
    margin: 0;
    content: '';
  }
}

.profile-summary .profile-activity > div > span:first-child {
  margin-right: 6px;
}

.profile-summary .profile-activity .blue-text {
  cursor: pointer;
}

.profile-summary .score-label {
  font-size: 12px;
  font-weight: 600;
  margin: 20px 0 10px;
  min-height: 20px;
  text-transform: uppercase;
}

.profile-summary .score-container {
  max-width: 380px;
  min-width: 380px;
  width: 380px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  padding-top: 20px;
}

.profile-summary .score-container .profile-score {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  max-height: 85px;
  min-height: 85px;
  height: 85px;
  max-width: 330px;
  min-width: 330px;
  width: 330px;
}

.profile-summary .score-container .profile-score.label-only {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.profile-summary .score-container .profile-score .profile-score-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 15px;
}

.profile-summary .score-container .profile-score .profile-score-info .profile-score-name {
  letter-spacing: .25px;
  font-size: 16px;
  color: #AEAEAE;
  font-weight: 500;
}

.profile-summary .score-container .profile-score .profile-score-info .profile-score-date {
  font-size: 14px;
  font-weight: 500;
  line-height: 25px;
  color: #AEAEAE;
}

.profile-summary .score-container .profile-score .profile-score-graph-canvas {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  max-width: 330px;
  min-width: 330px;
  width: 330px;
}

.profile-summary .score-container .profile-score .profile-score-label {
  color: #9768EB;
  font-size: 22px;
  font-weight: 400;
  margin-left: auto;
  text-align: right;
}

.profile-summary .score-container .profile-score .profile-score-label .profile-tl-change {
  color: #9768EB;
  font-size: 12px;
  margin-left: auto;
  text-align: right;
}

.profile-summary .today-label {
  font-size: 12px;
  font-weight: 600;
  margin: 20px 0 10px;
  min-height: 20px;
  text-transform: uppercase;
}

.profile-summary .today-program {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  max-width: 380px;
  min-width: 380px;
  width: 380px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  margin-bottom: 7px;
  padding: 0 6px;
  cursor: pointer;
}

.profile-summary .today-program > div {
  margin-left: 10px;
}

.profile-summary .today-program > div:first-child {
  color: #ccc;
  font-size: 22px;
}

.profile-summary .today-program div.icon-checkbox-checked {
  color: #AFB0AE;
}

.profile-summary .today-program div.icon-checkbox-checked.blue-check {
  color: #9768EB;
}

.profile-summary .today-program .program {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  font-size: 16px;
  font-weight: 500;
}

.profile-summary .today-program .program .light-grey-text {
  color: #AFB1B3;
}

.profile-summary .today-notice {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  margin-bottom: 7px;
  padding: 0 6px;
}

.profile-summary .today-notice > div {
  margin-left: 20px;
}

.profile-summary .today-notice .notice {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  padding-bottom: 6px;
  font-size: 14px;
  font-weight: 500;
}

.profile-summary .today-notice .notice-button > button {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  font-size: 12px;
  font-weight: 600;
}

.profile-summary .today-notice.yellow {
  background-color: #dfc03f;
}

.profile-summary .today-notice.yellow .notice {
  color: #fefefe;
}

.profile-summary .today-notice.yellow .notice-button > button {
  background-color: #ceb74e;
  border-color: transparent;
  color: #fefefe;
}

.spaced-top-large {
  margin-top: 45px;
}

.spaced-bottom-medium {
  margin-bottom: 35px;
}

.burger {
  display: none;
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  padding: 0;
  margin: 0;
  line-height: 1;
  padding-bottom: 7px;
  pointer-events: auto;
}

.menu-mobile {
  pointer-events: auto;
}

.menu-desktop {
  display: flex;
}

.menu-mobile {
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  background: #1c1c1c;
  display: flex;
  flex-direction: column;
  padding: 10px 0;
  z-index: 1000;
}

.menu-mobile .menu-item {
  padding: 15px 20px;
  border-bottom: 1px solid #333;
  margin-left: 0;
}

.menu-divider {
  height: 1px;
  background: #333;
  margin: 10px 0;
}

/* MOBILE BREAKPOINT */

@media (max-width: 768px) {
  .menu-desktop {
    display: none;
  }

  .burger {
    display: block;
  }

  .menu-mobile {
    display: flex;
    width: 100vw;
  }

  .profile-menu {
    width: unset !important;
    justify-content: center;
    align-items: center;
    max-height: 59px;
    height: 59px;
    min-height: 59px;
  }
}

.athlete-nav {
  display: none;
  position: relative;
}

@media (max-width: 768px) {
  .athlete-nav {
    display: block;
    padding: 8px 0 4px;
  }
}

.athlete-nav__burger {
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  line-height: 1;
  margin-left: 15px;
}

.athlete-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  background: #1c1c1c;
  z-index: 1000;
  min-width: 150px;
}

.athlete-nav__item {
  padding: 14px 20px;
  color: #a0a4a8;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-bottom: 1px solid #333;
  white-space: nowrap;
}

.athlete-nav__item.active {
  color: #efefef;
}

.athlete-nav__item:hover {
  color: #efefef;
}

/* ============================================================
   Athlete navigation — vertical left sidebar
   Matches the practitioner/admin sidebar style.
   ============================================================ */

.menu-content:has(.profile-menu--sidebar.has-items) {
  position: fixed;
  top: 60px;
  left: 0;
  bottom: 0;
  width: 240px;
  min-width: 240px;
  max-width: 240px;
  min-height: 0;
  max-height: none;
  height: auto;
  padding: 0;
  background-color: #ffffff;
  border-right: 1px solid #d1d1d1;
  z-index: 900;
  overflow-x: hidden;
  overflow-y: auto;
  display: block;
  transition: width 0.25s ease, min-width 0.25s ease, max-width 0.25s ease;
}

.main-view:has(.athlete-selection) .menu-content:has(.profile-menu--sidebar.has-items) {
  top: 104px;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) {
  padding-top: 60px;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 910;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + * .athlete-selection {
  height: 44px;
  min-height: 44px;
  max-height: 44px;
}

.main-view:has(.athlete-selection):has(> .menu-content .profile-menu--sidebar.has-items) {
  padding-top: 104px;
}

.main-view:has(.athlete-selection):has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + * {
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  z-index: 895;
}

.menu-content:has(.profile-menu--sidebar.has-items.is-collapsed) {
  width: 70px;
  min-width: 70px;
  max-width: 70px;
}

.profile-menu--sidebar.has-items {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 100%;
  min-height: 0;
  max-height: none;
  padding-left: 0;
  padding-right: 0;
}

.profile-menu--sidebar.has-items .sidebar-header {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  width: 100%;
  box-sizing: border-box;
  padding: 16px 12px 16px 24px;
  background-color: #f6f6f7;
  border-bottom: 1px solid #d1d1d1;
  position: sticky;
  top: 0;
  z-index: 1;
}

.profile-menu--sidebar.has-items .sidebar-header__title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #32254f;
  white-space: nowrap;
  overflow: hidden;
}

.profile-menu--sidebar.has-items .sidebar-header__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: none;
  background: transparent;
  color: #6d6d6d;
  line-height: 1;
  cursor: pointer;
  margin-right: -6px;
}

.profile-menu--sidebar.has-items .sidebar-header__toggle svg {
  display: block;
  width: 22px;
  height: 22px;
}

.profile-menu--sidebar.has-items .menu-desktop {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 12px;
}

.profile-menu--sidebar.has-items .menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  min-height: 0;
  max-height: none;
  margin: 0 0 4px 0;
  padding: 0 12px;
  border: none;
  border-radius: 4px;
  color: #35354b;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.3px;
  text-transform: none;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.profile-menu--sidebar.has-items .menu-item:not(.active):hover {
  border: none;
  background-color: #f2edfc;
}

.profile-menu--sidebar.has-items .menu-item.active {
  border: none;
  background-color: #f2edfc;
  color: #35354b;
}

.profile-menu--sidebar.has-items .menu-item + .menu-item {
  margin-left: 0;
}

.profile-menu--sidebar.has-items .menu-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  line-height: 1;
}

.profile-menu--sidebar.has-items .menu-item__icon svg {
  display: block;
  width: 16px;
  height: 16px;
}

.profile-menu--sidebar.has-items .menu-item__label {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items .sidebar-burger {
  display: none;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 100%;
  padding: 16px 24px;
  background-color: #ffffff;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__avatar {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  background-color: #f6f6f7;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__info {
  flex: 1 1 auto;
  min-width: 0;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__name {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  color: #3c3c43;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__subtitle {
  margin-top: 2px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  color: #8e8e93;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  margin-top: auto;
  padding: 16px 12px;
  border-top: 1px solid #d1d1d1;
  background-color: #ffffff;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1 1 auto;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 10px 16px;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background-color: #ffffff;
  color: #3c3c43;
  font-size: 16px;
  font-weight: 600;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn:hover {
  background-color: #f6f6f7;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn .icon {
  font-size: 12px;
  line-height: 1;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-label {
  white-space: nowrap;
}

.profile-menu--sidebar.has-items.is-collapsed .sidebar-header {
  justify-content: center;
}

.profile-menu--sidebar.has-items.is-collapsed .sidebar-header__title {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed .menu-item {
  justify-content: center;
}

.profile-menu--sidebar.has-items.is-collapsed .menu-item__label {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-member {
  justify-content: center;
  padding: 12px;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-member__info {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer {
  padding: 12px 8px;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer__admin-label {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer__admin-btn {
  padding: 10px;
  gap: 0;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .menu-content ~ * {
  margin-left: 240px;
  transition: margin-left 0.25s ease;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .menu-content ~ * {
  margin-left: 70px;
}

/* The scrim only exists in the off-canvas tier below. */

.sidebar-scrim {
  display: none;
}

/* Mobile: sidebar slides in from the left, toggled by a fixed burger */

@media (max-width: 768px) {
  .profile-menu--sidebar.has-items.is-mobile-open .sidebar-scrim {
    display: block;
    position: fixed;
    top: 60px;
    left: 240px;
    right: 0;
    bottom: 0;
    z-index: -1;
    background-color: rgba(0, 0, 0, 0.4);
  }

  .main-view:has(.profile-menu--sidebar.has-items) .athlete-nav {
    display: none;
  }

  .main-view:has(.athlete-selection) .profile-menu--sidebar.has-items.is-mobile-open .sidebar-scrim {
    top: 104px;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .header-content--athlete,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .header-content--prac {
    padding-left: 60px;
  }

  .menu-content:has(.profile-menu--sidebar.has-items) {
    top: 60px;
    left: -240px;
    width: 240px;
    min-width: 240px;
    max-width: 240px;
    pointer-events: auto;
    box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
    transition: left 0.25s ease;
    z-index: 920;
  }

  .menu-content:has(.profile-menu--sidebar.has-items.is-mobile-open) {
    left: 0;
  }

  .menu-content:has(.profile-menu--sidebar.has-items.is-collapsed) {
    width: 240px;
    min-width: 240px;
    max-width: 240px;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + *:not(.menu-content),
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .menu-content ~ *,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .header-content + *:not(.menu-content),
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .menu-content ~ * {
    margin-left: 0;
  }

  .profile-menu--sidebar.has-items .sidebar-header {
    display: none;
  }

  .profile-menu--sidebar.has-items .sidebar-burger {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 60px;
    height: 60px;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    color: #ffffff;
    font-size: 20px;
    z-index: 950;
    cursor: pointer;
  }

  .profile-menu--sidebar.has-items.is-collapsed .menu-item {
    justify-content: flex-start;
  }

  .profile-menu--sidebar.has-items.is-collapsed .menu-item__label {
    display: inline;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-member__info {
    display: block;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-footer__admin-label {
    display: inline;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-footer__admin-btn {
    padding: 10px 16px;
    gap: 8px;
  }
}

/* ============================================================
   Athlete welcome header (home page)
   ============================================================ */

.view-layout:has(.athlete-welcome-header),
.view-layout:has(.today-asks) {
  justify-content: flex-start;
  flex: 0 0 auto;
}

.view-layout > div:has(> .athlete-welcome-header),
.view-layout > div:has(> .today-asks) {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.view-layout.athlete-home-row {
  justify-content: flex-start;
}

.athlete-welcome-header {
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 24px 0;
  box-sizing: border-box;
}

.athlete-welcome-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 16px 40px 16px 20px;
  background: #ffffff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
}

.athlete-welcome-header__profile {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  flex: 1 1 auto;
}

.athlete-welcome-header__avatar {
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  background-color: #f0f0f0;
}

.athlete-welcome-header__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.athlete-welcome-header__info {
  min-width: 0;
}

.athlete-welcome-header__title {
  margin: 0 0 8px;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.athlete-welcome-header__title-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.athlete-welcome-header__title-row .athlete-welcome-header__title {
  margin-bottom: 0;
}

.athlete-welcome-header__action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #9768eb;
  font-family: 'Nudista', sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  vertical-align: middle;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
}

.athlete-welcome-header__action i {
  font-size: 14px;
}

.athlete-welcome-header__action:hover {
  text-decoration: underline;
}

.athlete-welcome-header__action-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.athlete-welcome-header__take-test {
  flex: 0 0 auto;
}

.athlete-welcome-header__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.athlete-welcome-header__badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 16px;
  background-color: #f2edfc;
  color: #533d82;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: 0;
  text-align: center;
}

.athlete-welcome-header__last-test {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: #9768eb;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
}

.athlete-welcome-header__last-test-date {
  color: #4f4f4f;
}

.athlete-welcome-header__last-test-sep {
  flex: 0 0 auto;
  color: #d1d1d1;
}

.athlete-welcome-header__stats {
  display: flex;
  align-items: flex-start;
  gap: 36px;
  flex: 0 0 auto;
}

.athlete-welcome-header__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  min-width: 0;
}

.athlete-welcome-header__stat-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.athlete-welcome-header__stat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
}

.athlete-welcome-header__stat-icon svg,
.athlete-welcome-header__stat-icon img {
  display: block;
  width: 32px;
  height: 32px;
}

.athlete-welcome-header__stat-icon--streak {
  color: #f08a24;
}

.athlete-welcome-header__stat-icon--training svg {
  width: 28px;
  height: 28px;
}

.athlete-welcome-header__stat-icon--skel {
  background: #ececef;
  border-radius: 6px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__ring-track {
  fill: none;
  stroke: #e5e5e5;
  stroke-width: 3.5;
}

.athlete-welcome-header__ring-progress {
  fill: none;
  stroke: #20b769;
  stroke-width: 3.5;
  stroke-linecap: round;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
  transition: stroke-dashoffset 0.3s ease;
}

.athlete-welcome-header__stat-value {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2;
  color: #000000;
}

.athlete-welcome-header__stat-value span {
  font-size: 24px;
  font-weight: 600;
}

.athlete-welcome-header__stat-label {
  margin-top: 2px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  color: #000000;
}

.athlete-welcome-header__stat-sublabel {
  margin-top: 1px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  color: #4f4f4f;
}

.athlete-welcome-header__skel {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  background: #ececef;
  border-radius: 4px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__skel--value {
  width: 4.5em;
  height: 1em;
}

.athlete-welcome-header__skel--label {
  width: 7.5em;
  height: 1em;
}

.athlete-welcome-header__skel--label-wide {
  width: 11em;
}

.athlete-welcome-header__skel--sublabel {
  width: 5em;
  height: 1em;
}

.athlete-welcome-header__avatar--skeleton {
  background: #ececef;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__skeleton-title {
  width: 180px;
  max-width: 100%;
  height: 30px;
  margin-bottom: 16px;
}

.athlete-welcome-header__skeleton-badge {
  width: 64px;
  height: 22px;
  border-radius: 16px;
}

@media (max-width: 900px) {
  .athlete-welcome-header__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding: 16px 24px 16px 20px;
  }

  .athlete-welcome-header__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-items: center;
    width: 100%;
    gap: 16px;
  }

  .athlete-welcome-header__stat {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .athlete-welcome-header {
    padding: 16px 16px 0;
  }

  .athlete-welcome-header__inner {
    padding: 16px 16px 16px 16px;
  }

  .athlete-welcome-header__title {
    font-size: 22px;
  }

  .athlete-welcome-header__avatar {
    width: 56px;
    height: 56px;
  }

  .athlete-welcome-header__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-items: center;
    align-items: start;
    gap: 12px;
    width: 100%;
    padding-top: 16px;
    border-top: 1px solid #ececec;
  }

  .athlete-welcome-header__stat {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .athlete-welcome-header {
    padding: 16px 12px 0;
  }

  .athlete-welcome-header__inner {
    padding: 14px;
    gap: 14px;
  }

  .athlete-welcome-header__profile {
    gap: 12px;
  }

  .athlete-welcome-header__avatar {
    width: 48px;
    height: 48px;
  }

  .athlete-welcome-header__title {
    font-size: 20px;
  }

  .athlete-welcome-header__badge {
    font-size: 12px;
    line-height: 16px;
  }

  .athlete-welcome-header__stats {
    gap: 8px;
    padding-top: 14px;
  }

  .athlete-welcome-header__stat {
    gap: 6px;
    min-width: 0;
  }

  .athlete-welcome-header__stat-icon,
  .athlete-welcome-header__stat-icon--streak,
  .athlete-welcome-header__stat-icon--programs {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-icon svg,
  .athlete-welcome-header__stat-icon img,
  .athlete-welcome-header__stat-icon--streak svg,
  .athlete-welcome-header__stat-icon--streak img,
  .athlete-welcome-header__stat-icon--programs svg,
  .athlete-welcome-header__stat-icon--programs img {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-icon--training svg {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-value {
    font-size: 16px;
    line-height: 1.25;
  }

  .athlete-welcome-header__stat-value span {
    font-size: 16px;
  }

  .athlete-welcome-header__stat-label {
    font-size: 11px;
    line-height: 1.25;
  }

  .athlete-welcome-header__stat-sublabel {
    font-size: 10px;
    line-height: 1.25;
  }

  .athlete-welcome-header__skeleton-title {
    height: 20px;
    width: 140px;
  }
}

/* ============================================================
   Progress Insights (athlete home)
   ============================================================ */

.progress-insights {
  padding: 16px 24px 0;
}

.progress-insights button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.progress-insights button + button {
  margin-left: 0;
}

.progress-insights__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  height: 145px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.progress-insights__panel:has(.progress-insights__empty) {
  height: auto;
  min-height: 145px;
  padding-top: 16px;
}

.progress-insights__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 20px;
  box-sizing: border-box;
}

.progress-insights__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.progress-insights__link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 14px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.progress-insights__link:hover {
  opacity: 0.85;
}

.progress-insights__link-icon {
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
  color: inherit;
}

.progress-insights__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  padding: 8px 16px 8px;
  text-align: center;
  box-sizing: border-box;
}

.progress-insights__empty-title {
  margin: 0 0 12px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.progress-insights__empty-description {
  margin: 0 0 14px;
  width: 452px;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 18px;
  letter-spacing: 0;
  text-align: center;
  color: #6D6D6D;
}

.progress-insights__empty-cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: 166px;
  min-width: 166px;
  max-width: 166px;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: #9768EB;
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
}

.progress-insights__empty-cta:hover {
  opacity: 0.9;
}

.progress-insights__cards,
.progress-insights__skeleton {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  flex: 0 0 83px;
  height: 83px;
  min-height: 83px;
  border-top: 1px solid #e7e7e7;
  box-sizing: border-box;
}

.progress-insights__card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  padding: 10px 12px;
  box-sizing: border-box;
  background: #FFFFFF;
  border-right: 1px solid #e7e7e7;
}

.progress-insights__card:last-child {
  border-right: 0;
}

.progress-insights__metric {
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #6D6D6D;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.progress-insights__score-block {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.progress-insights__score {
  font-family: 'Nudista', sans-serif;
  font-size: 24px;
  font-weight: 600;
  font-style: normal;
  line-height: 24px;
  letter-spacing: 0;
  color: #000000;
}

.progress-insights__change {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.progress-insights__change--up {
  color: #20b769;
}

.progress-insights__change--down {
  color: #c42a3b;
}

.progress-insights__trend-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .progress-insights {
    padding: 12px 16px 0;
  }
}

@media (max-width: 480px) {
  .progress-insights {
    padding: 12px 12px 0;
  }

  .progress-insights__panel {
    padding: 0;
  }

  .progress-insights__title {
    font-size: 18px;
  }

  .progress-insights__card {
    padding: 10px 12px;
  }

  .progress-insights__header {
    padding: 0 12px;
  }

  .progress-insights__metric {
    white-space: normal;
  }

  .progress-insights__empty-cta {
    width: 100%;
    min-width: 0;
    max-width: none;
  }
}

/* ============================================================
   Today asks (athlete home)
   ============================================================ */

.today-asks {
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 24px 0;
}

.today-asks__panel {
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.today-asks__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 20px 20px 16px;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
}

.today-asks__panel:has(.today-asks__expandable):not(:has(.today-asks__alert-row)) .today-asks__header {
  border-bottom: 1px solid #e1e1e6;
}

.today-asks__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  color: #000000;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-asks__chevron {
  color: #4f4f4f;
  font-size: 14px;
  flex: 0 0 auto;
}

.today-asks__alert-row {
  display: flex;
  align-items: center;
  padding: 0 20px 16px 12px;
}

.today-asks__panel:has(.today-asks__expandable) .today-asks__alert-row {
  border-bottom: 1px solid #e1e1e6;
}

.today-asks__alert {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 0 0 0 16px;
  min-height: 44px;
  min-width: 0;
  height: auto;
  border: 1px solid #fde8be;
  border-radius: 6px;
  background: #fffaf0;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
  color: #d68b00;
  box-shadow: none;
  outline: 0;
}

.today-asks__alert-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  border: 1.5px solid #d68b00;
  border-radius: 50%;
  color: #d68b00;
  font-size: 10px;
  line-height: 1;
}

.today-asks__alert-icon .fa {
  line-height: 1;
}

.today-asks__alert-text {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #d68b00;
  text-transform: none;
}

.today-asks__alert-chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  color: #6d6d6d;
  font-size: 12px;
}

.today-asks__body {
  display: flex;
  min-height: 264px;
  min-width: 0;
}

.today-asks__list {
  flex: 0 1 420px;
  max-width: 420px;
  min-width: 0;
  padding: 0;
  border-right: 1px solid #e7e7e7;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}

.today-asks__item {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  margin: 0;
  padding: 12px 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
  color: #4f4f4f;
  min-width: 0;
  height: auto;
  box-shadow: none;
}

.today-asks__item:hover {
  background: transparent;
}

.today-asks__item--selected {
  background: transparent;
}

.today-asks__item--selected .today-asks__badge:not(.today-asks__badge--done) {
  background: #f2edfc;
  color: #32254f;
}

.today-asks__item--selected .today-asks__item-name {
  color: #000000;
  font-weight: 600;
}

.today-asks__item--completed .today-asks__item-name {
  text-decoration: line-through;
  color: #4f4f4f;
}

.today-asks__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #b0b0b0;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-asks__badge--done {
  background: #e7f5ee;
  color: #12b76a;
  font-size: 11px;
}

.today-asks__item-name {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #4f4f4f;
}

.today-asks__detail {
  flex: 1 1 724px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 56px;
  padding: 20px 20px 20px 32px;
  background-color: #fbf9ff;
  background-image: url(../images/today-background.png), linear-gradient(277.89deg, #fbf9ff 11.99%, #f0e8ff 29.68%, #ece2ff 45.91%, #eee6ff 61.25%, #ffffff 91.86%);
  background-position: center right, center;
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat;
  background-blend-mode: lighten, normal;
  min-width: 0;
}

.today-asks__done {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
  gap: 8px;
  padding: 12px 16px;
}

.today-asks__done-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: #9768eb;
  color: #ffffff;
  font-size: 20px;
}

.today-asks__done-eyebrow {
  font-size: 14px;
  font-weight: 600;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__done-title {
  font-size: 16px;
  font-weight: 600;
  color: #000000;
  line-height: 20px;
}

.today-asks__action {
  display: flex;
  flex: 0 1 212px;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  width: auto;
  max-width: 212px;
  min-width: 0;
}

.today-asks__action-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
}

.today-asks__eyebrow {
  font-size: 14px;
  font-weight: 600;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__action-title {
  font-size: 16px;
  font-weight: 600;
  color: #000000;
  line-height: 20px;
  margin: 0;
  overflow-wrap: anywhere;
}

.today-asks__cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  max-width: 212px;
  min-width: 0;
  height: auto;
  min-height: 44px;
  margin: 0;
  padding: 12px 16px;
  border: 0;
  border-radius: 4px;
  background: #9768eb;
  color: #ffffff;
  font-family: 'Nudista', sans-serif;
  text-transform: none;
  white-space: nowrap;
  box-shadow: none;
  cursor: pointer;
}

.today-asks__cta:hover {
  opacity: 0.92;
}

.today-asks__cta:focus {
  outline: 0;
}

.today-asks__cta-label {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  width: auto;
  height: 16px;
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: center;
  text-transform: none;
  color: #ffffff;
}

.today-asks__cta-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  font-size: 16px;
  line-height: 1;
}

.today-asks__preview {
  flex: 0 1 404px;
  width: auto;
  max-width: 404px;
  min-width: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.02);
}

.today-asks__preview-art {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 156px;
  background: linear-gradient(135deg, #c8e6b8 0%, #7cbc6e 100%);
}

.today-asks__preview-art--photo {
  height: auto;
  aspect-ratio: 808 / 312;
}

.today-asks__preview-photo {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 808 / 312;
  object-fit: cover;
}

.today-asks__preview-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: rgba(46, 125, 50, 0.35);
}

.today-asks__preview-icon img {
  display: block;
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.today-asks__preview-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 12px 12px;
}

.today-asks__preview-name {
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
  line-height: 20px;
  overflow-wrap: anywhere;
}

.today-asks__preview-subtitle {
  font-size: 14px;
  font-weight: 400;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__preview-tags {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.today-asks__preview-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: #f6f6f6;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  color: #6d6d6d;
  text-align: center;
}

.today-asks__preview-tag .fa {
  font-size: 10px;
  line-height: 1;
}

.today-asks__preview-tag-icon {
  display: block;
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  color: inherit;
}

.today-asks__preview-tag-icon--img {
  object-fit: contain;
}

@media (max-width: 1100px) {
  .today-asks__detail {
    gap: 24px;
    padding: 20px;
  }
}

@media (max-width: 900px) {
  .today-asks__body {
    flex-direction: column;
  }

  .today-asks__list {
    flex: none;
    max-width: none;
    border-right: 0;
    border-bottom: 1px solid #e7e7e7;
    padding: 8px 0;
  }

  .today-asks__detail {
    flex: none;
    flex-direction: column;
    align-items: stretch;
    padding: 24px 20px;
    gap: 20px;
  }

  .today-asks__action {
    flex: none;
    width: 100%;
    max-width: none;
  }

  .today-asks__preview {
    flex: none;
    width: 100%;
    max-width: 404px;
    align-self: center;
  }
}

@media (max-width: 768px) {
  .today-asks {
    padding: 12px 16px 0;
  }

  .today-asks__header {
    padding: 14px 16px;
  }

  .today-asks__action,
  .today-asks__action-copy {
    align-items: center;
    text-align: center;
  }

  .today-asks__alert-row {
    padding: 0 16px 12px 8px;
  }

  .today-asks__alert-text {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .today-asks {
    padding: 10px 12px 0;
  }

  .today-asks__header {
    padding: 12px 14px;
  }

  .today-asks__body {
    min-height: 0;
  }

  .today-asks__detail {
    padding: 16px;
    gap: 14px;
  }

  .today-asks__action {
    width: 100%;
    min-width: 0;
  }

  .today-asks__action-copy {
    white-space: normal;
  }

  .today-asks__preview {
    width: 100%;
    max-width: none;
  }
}

/* ============================================================
   My Schedule
   ============================================================ */

.athlete-home-row {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 0 32px;
  box-sizing: border-box;
}

.athlete-home-row__inner {
  display: flex;
  align-items: stretch;
  gap: 20px;
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 0 24px;
  box-sizing: border-box;
}

.athlete-home-row__calendar {
  flex: 1 1 588px;
  max-width: 100%;
  min-width: 0;
}

.athlete-home-row__insights {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 1 492px;
  max-width: 100%;
  min-width: 0;
}

.athlete-home-row .my-schedule-wrap {
  max-width: none;
  margin: 0;
  padding: 0;
  width: 100%;
}

.athlete-home-row .my-schedule {
  max-width: none;
}

.athlete-home-row .progress-insights {
  padding: 0;
}

.athlete-home-row .progress-insights__panel {
  max-width: none;
}

.athlete-home-row .upcoming-session {
  padding: 0;
}

.athlete-home-row .upcoming-session__panel {
  max-width: none;
}

.athlete-home-row .bodymap-card {
  padding: 0;
}

.athlete-home-row .bodymap-card__panel {
  max-width: none;
}

@media (max-width: 900px) {
  .athlete-home-row__inner {
    flex-direction: column;
  }

  .athlete-home-row__calendar,
  .athlete-home-row__insights {
    flex: none;
    width: 100%;
  }

  .my-schedule {
    height: auto;
    min-height: 0;
  }
}

@media (max-width: 768px) {
  .athlete-home-row {
    padding: 12px 16px 28px;
  }

  .athlete-home-row__inner {
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width: 480px) {
  .athlete-home-row {
    padding: 10px 12px 24px;
  }
}

.my-schedule-wrap {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8px 24px 32px;
  box-sizing: border-box;
}

.my-schedule {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  max-width: 640px;
  height: 520px;
  padding: 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
}

.my-schedule button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.my-schedule button + button {
  margin-left: 0;
}

.my-schedule__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex: 0 0 auto;
}

.my-schedule__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #1a1a1a;
}

.my-schedule__edit-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 8px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.my-schedule__edit-link:hover {
  opacity: 0.85;
}

.my-schedule__edit-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.my-schedule__controls {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px 8px;
  flex: 0 0 auto;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
}

.my-schedule__controls--month {
  justify-content: space-between;
}

.my-schedule__week,
.my-schedule__month {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.my-schedule__today-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 12px;
  border: 1px solid #d8d8d8;
  border-radius: 4px;
  background: #f3f3f4;
  color: #000;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__today-btn:hover {
  background: #ebebed;
}

.my-schedule__nav {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1 1 auto;
  min-width: 0;
  height: 36px;
}

.my-schedule__nav--compact {
  flex: 0 0 auto;
}

.my-schedule__nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #1a1a1a;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

.my-schedule__nav-btn .fa {
  font-size: 14px;
}

.my-schedule__nav-btn:hover {
  background: #f3f3f4;
}

.my-schedule__range {
  flex: 0 1 auto;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000;
  white-space: nowrap;
}

.my-schedule__range-emphasis {
  font-weight: 600;
}

.my-schedule__range-icon {
  display: block;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.my-schedule__toggle {
  display: inline-flex;
  flex-direction: row;
  align-items: stretch;
  flex: 0 0 auto;
  width: 133px;
  height: 36px;
  padding: 4px;
  gap: 2px;
  border: 1px solid #e7e7e7;
  border-radius: 4px;
  background: #f6f6f6;
  margin-left: auto;
  box-sizing: border-box;
}

.my-schedule__toggle-btn {
  flex: 1 1 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #8a8a8a;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
}

.my-schedule__toggle-btn.is-active {
  background: #fff;
  color: #1a1a1a;
  box-shadow: none;
}

.my-schedule__month-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex: 1 1 auto;
}

.my-schedule__month-name {
  font-size: 18px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__day-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
  height: 90px;
  min-height: 90px;
  margin-bottom: 20px;
  box-sizing: border-box;
}

.my-schedule__day-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  height: 90px;
  min-height: 90px;
  max-height: 90px;
  padding: 12px 2px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  box-sizing: border-box;
  color: inherit;
  cursor: pointer;
}

.my-schedule__day-cell.is-selected {
  background: #f2edfc;
  border-color: #8a70d6;
}

.my-schedule__day-cell:hover:not(.is-selected) {
  background: rgba(0, 0, 0, 0.03);
}

.my-schedule__day-name {
  font-size: 12px;
  font-weight: 500;
  color: #8a8a8a;
}

.my-schedule__day-number {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.2;
}

.my-schedule__day-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 8px;
  margin-top: 2px;
}

.my-schedule__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #5b3a9e;
}

.my-schedule__day-summary {
  margin-bottom: 16px;
  font-size: 14px;
  color: #8a8a8a;
}

.my-schedule__day-summary-date {
  color: #1a1a1a;
  font-weight: 400;
}

.my-schedule__day-summary-weekday {
  font-weight: 600;
}

.my-schedule__day-summary-rest {
  font-weight: 400;
}

.my-schedule__day-summary-meta {
  font-weight: 400;
  color: #8a8a8a;
}

.my-schedule__trainings {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.my-schedule__training {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 12px 14px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.my-schedule__training:hover {
  border-color: #d4d4d4;
  background: #fafafa;
}

.my-schedule__training-thumb {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 6px;
  background: #f3f3f4;
  overflow: hidden;
}

.my-schedule__training-thumb-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.my-schedule__training-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.my-schedule__training-title {
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__training-name {
  font-size: 13px;
  color: #8a8a8a;
}

.my-schedule__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 36px 16px 20px;
}

.my-schedule__empty--modal {
  padding: 28px 12px;
}

.my-schedule__empty-message {
  margin: 0 0 20px;
  font-size: 15px;
  color: #8a8a8a;
}

.my-schedule__empty-cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 8px 16px 8px 12px;
  border: 0;
  border-radius: 4px;
  background: #9768EB;
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__empty-cta:hover {
  background: #844de7;
}

.my-schedule__empty-cta-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.my-schedule__empty-link {
  margin-top: 14px;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.my-schedule__empty-link:hover {
  opacity: 0.85;
}

.my-schedule__footer-btn {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin-top: 20px;
  padding: 12px 16px 12px 12px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: #fff;
  color: #9768EB;
  font-size: 15px;
  font-weight: 500;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__footer-btn:hover {
  background: #f2edfc;
}

.my-schedule__month-labels,
.my-schedule__month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.my-schedule__month-labels {
  margin-bottom: 8px;
  padding: 8px 0;
  background: #f7f7f8;
  border-radius: 6px;
}

.my-schedule__month-label {
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: #8a8a8a;
}

.my-schedule__month-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 56px;
  max-height: none;
  padding: 8px 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.my-schedule__month-cell.is-empty {
  cursor: default;
  pointer-events: none;
}

.my-schedule__month-cell.is-selected .my-schedule__month-day-number,
.my-schedule__month-cell.is-today .my-schedule__month-day-number {
  background: #f3f3f4;
  color: #1a1a1a;
}

.my-schedule__month-cell.is-selected .my-schedule__month-day-number {
  background: #f2edfc;
  color: #5b3a9e;
}

.my-schedule__month-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.my-schedule__modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.my-schedule__modal-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 648px;
  max-width: 100%;
  height: auto;
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 20px 22px 24px;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  background: #fff;
  box-sizing: border-box;
  box-shadow: 0 4px 6px -2px rgba(16, 24, 40, 0.03), 0 12px 16px -4px rgba(16, 24, 40, 0.08);
}

.my-schedule__modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e8e8e8;
}

.my-schedule__modal-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
}

.my-schedule__modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  min-height: 28px;
  max-height: 28px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #8a8a8a;
  cursor: pointer;
}

.my-schedule__modal-close:hover {
  background: #f3f3f4;
  color: #1a1a1a;
}

@media (max-width: 768px) {
  .my-schedule-wrap {
    padding: 8px 16px 28px;
  }

  .my-schedule {
    padding: 20px;
  }

  .my-schedule__controls {
    flex-wrap: wrap;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .my-schedule__day-name {
    font-size: 11px;
  }

  .my-schedule__day-strip {
    height: auto;
    min-height: 0;
  }

  .my-schedule__day-cell {
    height: auto;
    min-height: 72px;
    max-height: none;
    padding: 10px 1px 8px;
  }

  .my-schedule__training-thumb {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }
}

@media (max-width: 480px) {
  .my-schedule {
    position: relative;
    padding: 12px;
    gap: 16px;
  }

  .my-schedule__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding-right: 108px;
  }

  .my-schedule__controls {
    align-items: center;
    gap: 8px;
  }

  .my-schedule__toggle {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 1;
    width: auto;
    height: 28px;
    margin-left: 0;
    padding: 3px;
  }

  .my-schedule__toggle-btn {
    flex: 0 0 auto;
    padding: 0 8px;
    font-size: 11px;
  }

  .my-schedule__nav {
    flex-wrap: wrap;
    row-gap: 6px;
  }

  .my-schedule__range {
    font-size: 12px;
    white-space: normal;
  }

  .my-schedule__month-nav {
    flex-wrap: wrap;
    row-gap: 6px;
  }

  .my-schedule__day-strip {
    gap: 2px;
    margin-bottom: 14px;
  }

  .my-schedule__day-cell {
    min-height: 60px;
    padding: 8px 0 6px;
    gap: 4px;
  }

  .my-schedule__day-name {
    font-size: 10px;
  }

  .my-schedule__day-number {
    font-size: 13px;
  }

  .my-schedule__month-cell {
    gap: 2px;
    min-height: 44px;
    padding: 4px 0;
  }

  .my-schedule__month-day-number {
    width: 26px;
    height: 26px;
    font-size: 12px;
  }

  .my-schedule__month-label {
    font-size: 10px;
  }

  .my-schedule__training-thumb {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
  }
}

/* Shared first-paint placeholders for home dashboard cards. Pulse, don't
   show empty-state copy — that would read as "nothing scheduled" then jump. */

@keyframes home-skeleton-pulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: 0.45;
  }
}

.home-skeleton-block {
  display: block;
  background: #ececef;
  border-radius: 4px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.home-skeleton-block--badge {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
}

.home-skeleton-block--line {
  flex: 1 1 auto;
  height: 14px;
  max-width: 220px;
}

.home-skeleton-block--line-short {
  height: 12px;
  width: 96px;
}

.home-skeleton-block--preview {
  width: 100%;
  height: 140px;
  border-radius: 6px;
}

.home-skeleton-block--thumb {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 6px;
}

.home-skeleton-block--day {
  flex: 1 1 0;
  height: 64px;
  border-radius: 6px;
}

.home-skeleton-block--card {
  height: 100px;
  width: 100%;
  border-radius: 6px;
}

.today-asks__skeleton-row,
.my-schedule__skeleton-training {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 20px;
}

.today-asks__skeleton-preview {
  flex: 1 1 auto;
  min-width: 0;
  padding: 20px;
}

.my-schedule__skeleton-days {
  display: flex;
  gap: 8px;
}

.my-schedule__skeleton-training {
  padding: 12px 0;
}

.progress-insights__card--skeleton .home-skeleton-block--line {
  max-width: 88px;
  height: 28px;
}

/* ============================================================
   Upcoming session (athlete home — right column under Progress Insights)
   ============================================================ */

.upcoming-session {
  width: 100%;
  max-width: 492px;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  box-sizing: border-box;
}

.upcoming-session button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.upcoming-session button + button {
  margin-left: 0;
}

.upcoming-session__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: visible;
}

.upcoming-session__panel--booked-compact {
  height: 170px;
  min-height: 170px;
  max-height: 170px;
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__body--no-join {
  flex: 1 1 auto;
  justify-content: center;
  min-height: 0;
  gap: 0;
  padding: 0 20px;
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__session,
.upcoming-session__panel--booked-compact .upcoming-session__menu {
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__menu-list {
  z-index: 30;
}

.upcoming-session__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px 0;
  box-sizing: border-box;
}

.upcoming-session__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.upcoming-session__link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 14px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.upcoming-session__link:hover {
  opacity: 0.85;
}

.upcoming-session__link-icon {
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
  color: inherit;
}

.upcoming-session__skeleton {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box;
}

.upcoming-session__skeleton .home-skeleton-block--line {
  max-width: 280px;
}

.upcoming-session__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px 20px 28px;
  text-align: center;
  box-sizing: border-box;
}

.upcoming-session__empty-text {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.upcoming-session__schedule {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 16px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.upcoming-session__schedule:hover {
  opacity: 0.9;
}

.upcoming-session__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px 20px 20px;
  box-sizing: border-box;
}

.upcoming-session__body--no-join {
  gap: 0;
}

.upcoming-session__session {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  box-sizing: border-box;
}

.upcoming-session__accent {
  flex: 0 0 4px;
  width: 4px;
  height: 84px;
  border-radius: 5px;
  background: #9768EB;
}

.upcoming-session__info {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}

.upcoming-session__heading {
  position: relative;
  display: block;
  min-width: 0;
  min-height: 20px;
  padding-right: 36px;
}

.upcoming-session__name {
  display: block;
  min-width: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.upcoming-session__details {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.upcoming-session__detail {
  display: flex;
  align-items: center;
  gap: 8px;
}

.upcoming-session__detail-icon {
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  min-width: 16px;
  max-width: 16px;
  min-height: 16px;
  max-height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

.upcoming-session__detail-value {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  white-space: nowrap;
}

.upcoming-session__detail-label {
  font-size: 12px;
  font-weight: 400;
  color: #1a1a1a;
}

.upcoming-session__divider {
  display: inline-block;
  width: 1px;
  height: 16px;
  background-color: #d1d1d1;
}

.upcoming-session__join {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 16px;
  border: none;
  border-radius: 4px;
  background: #9768EB;
  color: #ffffff;
  font-size: 14px;
  font-weight: 600;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.upcoming-session__join:hover {
  opacity: 0.92;
}

.upcoming-session__menu {
  position: absolute;
  top: -2px;
  right: 0;
  flex: 0 0 auto;
}

.upcoming-session__kebab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  height: 24px;
  min-height: 24px;
  max-height: 24px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: #6d6d6d;
  font-size: 16px;
  cursor: pointer;
}

.upcoming-session__kebab:hover {
  background: #f6f6f7;
}

.upcoming-session__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 20;
  min-width: 200px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.upcoming-session__menu-list.hidden {
  display: none;
}

.upcoming-session__menu-item {
  display: block;
  width: 100%;
  padding: 14px 18px;
  border: none;
  background: transparent;
  text-align: left;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1a1a1a;
  cursor: pointer;
}

.upcoming-session__menu-item + .upcoming-session__menu-item {
  border-top: 1px solid #e0e0e0;
}

.upcoming-session__menu-item:hover {
  background: #f6f6f7;
}

.upcoming-session__menu-item--danger {
  color: #e8503a;
}

@media (max-width: 768px) {
  .upcoming-session {
    max-width: none;
  }

  .upcoming-session__panel {
    max-width: none;
  }

  .upcoming-session__header {
    padding: 14px 16px 0;
  }

  .upcoming-session__body {
    padding: 14px 16px 16px;
  }

  .upcoming-session__empty {
    padding: 20px 16px 24px;
  }
}

@media (max-width: 480px) {
  .upcoming-session__header {
    padding: 12px 12px 0;
  }

  .upcoming-session__title {
    font-size: 18px;
  }

  .upcoming-session__body {
    padding: 12px 12px 14px;
  }

  .upcoming-session__empty {
    padding: 16px 12px 20px;
  }

  .upcoming-session__detail {
    flex-wrap: wrap;
    row-gap: 2px;
  }

  .upcoming-session__detail-value {
    white-space: normal;
  }

  .upcoming-session__menu-list {
    min-width: 0;
    width: max-content;
    max-width: 80vw;
  }

  .upcoming-session__schedule {
    width: 100%;
  }
}

/* ============================================================
   BodyMAP card (athlete home — between Upcoming Session and Progress Insights)
   ============================================================ */

.bodymap-card {
  width: 100%;
  max-width: 492px;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  box-sizing: border-box;
}

.bodymap-card button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.bodymap-card button + button {
  margin-left: 0;
}

.bodymap-card__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  height: 310px;
  min-height: 310px;
  max-height: 310px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.bodymap-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px 0;
  box-sizing: border-box;
}

.bodymap-card__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.bodymap-card__skeleton {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box;
}

.bodymap-card__skeleton .home-skeleton-block--line {
  max-width: 280px;
}

.bodymap-card__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  gap: 12px;
  padding: 28px 24px 32px;
  text-align: center;
  box-sizing: border-box;
}

.bodymap-card__empty-title {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.bodymap-card__empty-description {
  margin: 0;
  max-width: 340px;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.bodymap-card__start {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  margin-top: 4px;
  padding: 0 16px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.bodymap-card__start:hover {
  opacity: 0.9;
}

.bodymap-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  gap: 16px;
  padding: 12px 20px 16px;
  box-sizing: border-box;
}

.bodymap-card__content {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 1 1 auto;
  min-height: 0;
  gap: 65px;
  padding-left: 0;
  padding-right: 0;
  min-width: 0;
  box-sizing: border-box;
}

.bodymap-card__ring {
  position: relative;
  flex: 0 0 auto;
  width: 180px;
  height: 180px;
}

.bodymap-card__ring-svg {
  display: block;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.bodymap-card__ring-track {
  stroke: #e8e8e8;
}

.bodymap-card__ring-progress {
  transition: stroke-dashoffset 0.35s ease;
}

.bodymap-card__ring-label {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  pointer-events: none;
  text-align: center;
}

.bodymap-card__ring-total {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6d6d6d;
  margin-bottom: 16px;
}

.bodymap-card__ring-score {
  font-family: 'Nudista', sans-serif;
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
  color: #000000;
  margin-bottom: 10px;
}

.bodymap-card__ring-band {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: #6d6d6d;
}

.bodymap-card__legend {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 0 0 auto;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  min-width: 0;
}

.bodymap-card__legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.bodymap-card__legend-dot {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.bodymap-card__legend-dot--poor {
  background: #F04438;
}

.bodymap-card__legend-dot--moderate {
  background: #E5A633;
}

.bodymap-card__legend-dot--good {
  background: #12B76A;
}

.bodymap-card__legend-name {
  flex: 0 0 auto;
  min-width: 72px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  color: #6d6d6d;
}

.bodymap-card__legend-range {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  color: #000000;
}

.bodymap-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
}

.bodymap-card__hint {
  margin: 0;
  min-width: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #6d6d6d;
}

.bodymap-card__update {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  cursor: pointer;
  white-space: nowrap;
}

.bodymap-card__update:hover {
  opacity: 0.85;
}

@media (max-width: 768px) {
  .bodymap-card {
    max-width: none;
  }

  .bodymap-card__panel {
    max-width: none;
  }

  .bodymap-card__header {
    padding: 14px 16px 0;
  }

  .bodymap-card__body {
    padding: 12px 16px 14px;
  }

  .bodymap-card__empty {
    padding: 24px 16px 28px;
  }

  .bodymap-card__content {
    gap: 16px;
    justify-content: center;
  }

  .bodymap-card__legend {
    display: none;
  }

  .bodymap-card__ring {
    width: 160px;
    height: 160px;
  }

  .bodymap-card__ring-score {
    font-size: 32px;
  }
}

@media (max-width: 480px) {
  .bodymap-card__header {
    padding: 12px 12px 0;
  }

  .bodymap-card__title {
    font-size: 18px;
  }

  .bodymap-card__body {
    padding: 10px 12px 12px;
  }

  .bodymap-card__empty {
    padding: 20px 12px 24px;
  }

  .bodymap-card__content {
    flex-direction: column;
    align-items: center;
  }

  .bodymap-card__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    text-align: center;
  }

  .bodymap-card__update {
    justify-content: center;
  }

  .bodymap-card__start {
    width: 100%;
  }
}

/* Schedule / reschedule / cancel modals for the upcoming session card */

@keyframes upcoming-reschedule-spin {
  to {
    transform: rotate(360deg);
  }
}

.upcoming-reschedule {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 640px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  overflow: hidden;
  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(16, 24, 40, 0.18);
  font-family: 'Nudista', sans-serif;
}

.upcoming-reschedule *,
.upcoming-reschedule *::before,
.upcoming-reschedule *::after {
  box-sizing: border-box;
}

.upcoming-reschedule__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-reschedule__close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #6d6d6d;
}

.upcoming-reschedule__title {
  flex-shrink: 0;
  margin: 0 40px 0 0;
  padding: 24px 24px 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.upcoming-reschedule__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  flex-shrink: 0;
  padding: 16px 24px 0;
}

.upcoming-reschedule__meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: -0.14px;
}

.upcoming-reschedule__meta-label {
  color: #6d6d6d;
}

.upcoming-reschedule__meta-value {
  font-weight: 600;
  color: #120d1c;
}

.upcoming-reschedule__meta-sep {
  display: none;
  width: 1px;
  height: 14px;
  background: #e7e7e7;
}

.upcoming-reschedule__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 20px 24px 0;
}

.upcoming-reschedule__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.upcoming-reschedule__summary-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.upcoming-reschedule__summary-icon {
  flex-shrink: 0;
  color: #6d6d6d;
}

.upcoming-reschedule__summary-text {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: -0.14px;
  color: #6d6d6d;
}

.upcoming-reschedule__divider {
  flex-shrink: 0;
  height: 1px;
  margin: 0 -24px;
  background: #e7e7e7;
}

.upcoming-reschedule__section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.upcoming-reschedule__section-title {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.16px;
  color: #000000;
}

.upcoming-reschedule__tz {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: -0.14px;
  color: #6d6d6d;
}

.upcoming-reschedule__tz-icon {
  flex-shrink: 0;
}

.upcoming-reschedule__picker {
  display: flex;
  flex-shrink: 0;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  overflow: hidden;
}

.upcoming-reschedule__collapsed {
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px 12px;
}

.upcoming-reschedule__collapsed-date {
  font-size: 16px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__collapsed-change {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #9768eb;
  cursor: pointer;
}

.upcoming-reschedule__cal {
  flex: 0 0 280px;
  padding: 16px 20px 20px;
}

.upcoming-reschedule__cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.upcoming-reschedule__cal-month {
  font-size: 16px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__cal-nav {
  display: flex;
}

.upcoming-reschedule__cal-arrow {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-reschedule__cal-arrow:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.06);
}

.upcoming-reschedule__cal-arrow:disabled {
  border-color: transparent;
  background: transparent;
  color: #d1d1d1;
  cursor: default;
}

.upcoming-reschedule__dow {
  display: flex;
}

.upcoming-reschedule__dow-cell {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  font-size: 14px;
  font-weight: 500;
  color: #344054;
}

.upcoming-reschedule__weeks {
  display: flex;
  flex-direction: column;
}

.upcoming-reschedule__week {
  display: flex;
}

.upcoming-reschedule__day {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}

.upcoming-reschedule__day.is-past {
  cursor: default;
}

.upcoming-reschedule__day:disabled {
  border-color: transparent;
  background: transparent;
  cursor: default;
}

.upcoming-reschedule__day.is-available {
  border-color: #e0d5f5;
  background: #f2edfc;
}

.upcoming-reschedule__day.is-selected {
  border-color: transparent;
  background: #9768eb;
}

.upcoming-reschedule__day.is-selected .upcoming-reschedule__day-num {
  color: #ffffff;
}

.upcoming-reschedule__day-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__day-num.is-other {
  color: #d1d1d1;
}

.upcoming-reschedule__day-num.is-past {
  color: #d1d1d1;
}

.upcoming-reschedule__day-num.is-weekend {
  color: #888888;
}

.upcoming-reschedule__day-num.is-today {
  background: #f6f6f6;
  color: #888888;
}

.upcoming-reschedule__vdivider {
  flex-shrink: 0;
  width: 1px;
  align-self: stretch;
  background: #eaecf0;
}

.upcoming-reschedule__slots {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  padding: 16px 20px 20px;
}

.upcoming-reschedule__slots-day {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__spinner-wrap {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  padding: 32px 0;
}

.upcoming-reschedule__spinner {
  display: block;
  width: 24px;
  height: 24px;
  border: 2.5px solid #f2edfc;
  border-top-color: #9768eb;
  border-radius: 50%;
  animation: upcoming-reschedule-spin 0.6s linear infinite;
}

.upcoming-reschedule__slots-empty {
  margin: auto;
  padding: 24px 0;
  text-align: center;
  font-size: 14px;
  line-height: 20px;
  color: #667085;
}

.upcoming-reschedule__slots-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 340px;
  overflow-y: auto;
}

.upcoming-reschedule__slot {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 8px;
  height: auto;
  flex-shrink: 0;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: none;
  color: #101828;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-align: left;
  cursor: pointer;
}

.upcoming-reschedule__slot.is-selected {
  border-color: #9768eb;
  background: #f2edfc;
  color: #9768eb;
}

.upcoming-reschedule__slot-check {
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.upcoming-reschedule__error {
  flex-shrink: 0;
  margin: 0;
  padding: 12px 24px 0;
  font-size: 14px;
  line-height: 20px;
  color: #f04438;
}

.upcoming-reschedule__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-shrink: 0;
  padding: 12px 24px 24px;
}

.upcoming-reschedule__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  margin: 0;
  padding: 11px 20px;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.32px;
  white-space: nowrap;
}

.upcoming-reschedule__btn--ghost {
  border: 1px solid #d1d1d1;
  background-color: #f6f6f6;
  color: #000000;
}

.upcoming-reschedule__btn--ghost:hover:not(:disabled) {
  background-color: #ebebeb;
}

.upcoming-reschedule__btn--ghost:disabled {
  border-color: #d1d1d1;
  color: #000000;
  cursor: not-allowed;
  opacity: 0.5;
}

.upcoming-reschedule__btn--primary {
  border: 0;
  background-color: #9768eb;
  color: #ffffff;
}

.upcoming-reschedule__btn--primary:hover:not(:disabled) {
  background-color: #7355b5;
}

.upcoming-reschedule__btn--primary:disabled {
  border-color: transparent;
  background-color: #c3adf2;
  color: #ffffff;
  cursor: not-allowed;
}

.upcoming-reschedule__btn-spinner {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: upcoming-reschedule-spin 0.6s linear infinite;
}

@media (hover: hover) {
  .upcoming-reschedule__slot:not(.is-selected):hover {
    border-color: #9768eb;
  }
}

@media (min-width: 641px) {
  .upcoming-reschedule__meta {
    flex-direction: row;
    align-items: center;
    gap: 16px;
  }

  .upcoming-reschedule__meta-sep {
    display: block;
  }

  .upcoming-reschedule__section {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (max-width: 640px) {
  .upcoming-reschedule__picker {
    flex-direction: column;
  }

  .upcoming-reschedule__cal {
    flex: 0 0 auto;
  }

  .upcoming-reschedule__vdivider {
    width: auto;
    height: 1px;
  }

  .upcoming-reschedule__slots-list {
    max-height: 220px;
  }

  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__collapsed {
    display: flex;
  }

  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__cal,
  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__vdivider,
  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__slots-day {
    display: none;
  }
}

@media (max-width: 480px) {
  .upcoming-reschedule__title {
    padding: 20px 20px 0;
  }

  .upcoming-reschedule__meta {
    padding: 16px 20px 0;
  }

  .upcoming-reschedule__body {
    padding: 16px 20px 0;
  }

  .upcoming-reschedule__divider {
    margin: 0 -20px;
  }

  .upcoming-reschedule__error {
    padding: 12px 20px 0;
  }

  .upcoming-reschedule__actions {
    padding: 12px 20px 20px;
  }
}

.upcoming-cancel {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 512px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  overflow: hidden;
  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(16, 24, 40, 0.18);
  font-family: 'Nudista', sans-serif;
}

.upcoming-cancel *,
.upcoming-cancel *::before,
.upcoming-cancel *::after {
  box-sizing: border-box;
}

.upcoming-cancel__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-cancel__close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #6d6d6d;
}

.upcoming-cancel__title {
  flex-shrink: 0;
  margin: 0 40px 0 0;
  padding: 24px 24px 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.upcoming-cancel__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 24px;
}

.upcoming-cancel__prompt {
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  color: #4f4f4f;
}

.upcoming-cancel__prompt b {
  font-weight: 600;
}

.upcoming-cancel__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.upcoming-cancel__label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #4f4f4f;
}

.upcoming-cancel__optional {
  font-weight: 400;
  color: #6d6d6d;
}

.upcoming-cancel__hint {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: #888888;
  cursor: pointer;
}

.upcoming-cancel__hint:hover .upcoming-cancel__tooltip,
.upcoming-cancel__hint:focus-within .upcoming-cancel__tooltip {
  opacity: 1;
}

.upcoming-cancel__tooltip {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  z-index: 50;
  width: 220px;
  margin-left: -110px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #1c1b3a;
  color: #ffffff;
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
  text-align: left;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.upcoming-cancel__tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border: 5px solid transparent;
  border-top-color: #1c1b3a;
}

.upcoming-cancel__reason {
  width: 100%;
  height: 110px;
  padding: 10px 14px;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: none;
  color: #000000;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  line-height: 22px;
  outline: none;
  resize: vertical;
}

.upcoming-cancel__reason:focus {
  border-color: #9768eb;
}

.upcoming-cancel__reason::placeholder {
  color: #888888;
}

.upcoming-cancel__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-shrink: 0;
  padding: 12px 24px 24px;
}

.upcoming-cancel__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  margin: 0;
  padding: 11px 20px;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.32px;
  white-space: nowrap;
}

.upcoming-cancel__btn--ghost {
  border: 1px solid #d1d1d1;
  background-color: #f6f6f6;
  color: #000000;
}

.upcoming-cancel__btn--ghost:hover {
  background-color: #ebebeb;
}

.upcoming-cancel__btn--danger {
  border: 0;
  background-color: #f04438;
  color: #ffffff;
}

.upcoming-cancel__btn--danger:hover {
  background-color: #c0392b;
}

@media (max-width: 768px) {
  .upcoming-cancel__reason {
    font-size: 16px;
  }
}

@media (max-width: 480px) {
  .upcoming-cancel__title {
    padding: 20px 20px 0;
  }

  .upcoming-cancel__body {
    padding: 12px 20px;
  }

  .upcoming-cancel__actions {
    padding: 12px 20px 20px;
  }
}

.view-flex.athlete-profile-page {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
  -moz-box-flex: 1;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  background-color: #f6f6f7;
}

.athlete-profile-page .athlete-profile {
  box-sizing: border-box;
  font-family: 'Nudista', sans-serif;
  margin: 0 auto;
  max-width: 688px;
  padding: 32px 24px 48px;
  position: relative;
  width: 100%;
}

.athlete-profile-page .athlete-profile *,
.athlete-profile-page .athlete-profile *::before,
.athlete-profile-page .athlete-profile *::after {
  box-sizing: border-box;
}

.athlete-profile__back {
  align-items: center;
  background: none;
  border: 0;
  color: #9768EB;
  cursor: pointer;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  gap: 8px;
  letter-spacing: -0.02em;
  line-height: 100%;
  margin: 0 0 30px;
  padding: 0;
  text-align: right;
  text-decoration: none;
  vertical-align: middle;
}

.athlete-profile__back:hover {
  color: #5f4499;
}

.athlete-profile__back-arrow {
  display: block;
  flex-shrink: 0;
  height: 20px;
  width: 20px;
}

.athlete-profile__back-label {
  display: block;
  line-height: 20px;
  position: relative;
  top: 1px;
}

.athlete-profile__title {
  color: #000000;
  font-family: 'Nudista', sans-serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 100%;
  margin: 0 0 20px;
}

.athlete-profile__tabs {
  border-bottom: 1px solid #e5e5e5;
  display: flex;
  gap: 24px;
  margin-bottom: 28px;
  max-width: 640px;
}

.athlete-profile__tab {
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: #6d6d6d;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 20px;
  margin-bottom: -1px;
  min-width: 0;
  padding: 12px 4px 4px;
  text-transform: none;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.athlete-profile__tab--active {
  border-bottom-color: #7355b5;
  color: #7355b5;
}

.athlete-profile__tab:hover {
  color: #7355b5;
}

.athlete-profile__error {
  background: #fdecec;
  border-radius: 6px;
  color: #f04438;
  font-size: 14px;
  margin-bottom: 16px;
  padding: 10px 14px;
}

.athlete-profile__toast {
  align-items: center;
  background: #35354B;
  border-radius: 4px;
  bottom: 32px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.24);
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  gap: 32px;
  height: 44px;
  justify-content: flex-start;
  left: 50%;
  max-width: calc(100vw - 32px);
  min-width: 0;
  padding: 8px 8px 8px 16px;
  pointer-events: auto;
  position: fixed;
  transform: translateX(-50%);
  width: max-content;
  z-index: 900;
}

.athlete-profile__toast-check {
  display: block;
  flex-shrink: 0;
  height: 20px;
  object-fit: contain;
  width: 20px;
}

.athlete-profile__toast-message {
  color: #ffffff;
  flex: 0 1 auto;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  white-space: nowrap;
}

.athlete-profile__toast-close {
  -webkit-appearance: none;
  appearance: none;
  align-items: center;
  background: none;
  border: 0;
  box-shadow: none;
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  flex-shrink: 0;
  height: 28px !important;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  margin: 0;
  min-height: 0 !important;
  min-width: 0 !important;
  padding: 0;
  text-transform: none;
  width: 28px !important;
}

.athlete-profile__toast-close img {
  display: block;
  height: 16px;
  object-fit: contain;
  width: 16px;
}

.athlete-profile__photo {
  align-items: center;
  display: flex;
  gap: 20px;
  margin-bottom: 24px;
}

.athlete-profile__avatar {
  background: #f0f0f0;
  border-radius: 50%;
  flex-shrink: 0;
  height: 96px;
  object-fit: cover;
  width: 96px;
}

.athlete-profile__photo-actions {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: flex-start;
}

.athlete-profile__upload-btn {
  align-items: center;
  background: #f6f6f7;
  border: 1px solid #b0b0b0;
  border-radius: 4px;
  color: #000000;
  cursor: pointer;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  gap: 8px;
  height: 36px;
  justify-content: flex-end;
  letter-spacing: -0.02em;
  line-height: 100%;
  max-height: 36px;
  min-height: 36px;
  opacity: 1;
  padding: 8px 16px;
  text-align: right;
  text-transform: none;
  vertical-align: middle;
  white-space: nowrap;
  width: 125px;
}

.athlete-profile__upload-btn:hover:not(:disabled) {
  border-color: #909090;
}

.athlete-profile__upload-btn:disabled {
  cursor: default;
  opacity: 0.65;
}

.athlete-profile__delete-btn {
  background: none;
  border: 0;
  color: #f04438;
  cursor: pointer;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  margin-left: 16px;
  padding: 8px 2px;
  text-align: left;
  text-transform: none;
  vertical-align: middle;
}

.athlete-profile__photo-hint {
  color: #6d6d6d;
  flex-basis: 100%;
  font-size: 12px;
  margin: 0;
}

.athlete-profile__file-input {
  display: none;
}

.athlete-profile__card {
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  max-width: 640px;
  padding: 24px;
}

.athlete-profile__card--spaced {
  margin-top: 16px;
}

.athlete-profile__card--physical {
  min-height: 204px;
}

.athlete-profile__row {
  display: flex;
  gap: 16px;
  margin-bottom: 18px;
}

.athlete-profile__row:last-child {
  margin-bottom: 0;
}

.athlete-profile__row--full .athlete-profile__field {
  flex: 1 1 100%;
}

.athlete-profile__field {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  min-width: 0;
}

.athlete-profile__field--full {
  flex: 1 1 100%;
}

.athlete-profile__group-select {
  position: relative;
  width: 100%;
}

.athlete-profile__group-select--open .athlete-profile__group-select-trigger {
  border-color: #7355b5;
}

.athlete-profile__group-select--open .athlete-profile__group-caret {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237355B5' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  transform: translateY(-50%) rotate(180deg);
}

.athlete-profile__group-select-trigger {
  align-items: center;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  gap: 8px;
  min-height: 40px;
  padding: 6px 36px 6px 12px;
  position: relative;
  text-align: left;
  text-transform: none;
  transition: border-color 0.15s ease;
  width: 100%;
}

.athlete-profile__group-tags {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.athlete-profile__group-tag {
  align-items: center;
  background: #F2EDFC;
  border-radius: 16px;
  color: #7355b5;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  height: 24px;
  justify-content: center;
  letter-spacing: normal;
  line-height: 18px;
  padding: 2px 8px;
  text-align: center;
  white-space: nowrap;
}

.athlete-profile__group-placeholder {
  color: #6d6d6d;
  flex: 1 1 auto;
  font-size: 14px;
}

.athlete-profile__group-caret {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236d6d6d' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  height: 8px;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.15s ease;
  width: 12px;
}

.athlete-profile__group-dropdown {
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
  max-height: 280px;
  overflow-y: auto;
  padding: 6px;
  position: static;
  width: 100%;
}

.athlete-profile__group-option {
  align-items: center;
  background: none;
  border: 0;
  border-radius: 4px;
  color: #000000;
  cursor: pointer;
  display: flex;
  flex-shrink: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 400;
  gap: 8px;
  height: 36px;
  letter-spacing: normal;
  margin: 0;
  max-height: 36px;
  min-height: 36px;
  min-width: 0;
  padding: 8px 10px;
  text-align: left;
  text-transform: none;
  width: 100%;
}

.athlete-profile__group-option + .athlete-profile__group-option {
  margin-left: 0;
}

.athlete-profile__group-option > span:last-child {
  min-width: 0;
  text-align: left;
}

.athlete-profile__group-option:hover,
.athlete-profile__group-option--selected {
  background: rgba(115, 85, 181, 0.08);
}

.athlete-profile__group-checkbox {
  border: 1.5px solid #7355b5;
  border-radius: 4px;
  flex-shrink: 0;
  height: 18px;
  position: relative;
  width: 18px;
}

.athlete-profile__group-checkbox--checked::after {
  border: solid #7355b5;
  border-width: 0 2px 2px 0;
  content: '';
  height: 9px;
  left: 5px;
  position: absolute;
  top: 1px;
  transform: rotate(45deg);
  width: 5px;
}

.athlete-profile__label {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 6px;
}

.athlete-profile__input {
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  color: #000000;
  font-size: 16px;
  height: 40px;
  padding: 0 12px;
  width: 100%;
}

.athlete-profile__input::-webkit-input-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:-moz-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input::-moz-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:-ms-input-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input::placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:focus {
  border-color: #7355b5;
  outline: none;
}

.athlete-profile__input:disabled {
  background: #f6f6f7;
  color: #6d6d6d;
  cursor: not-allowed;
}

.athlete-profile__input[readonly] {
  cursor: pointer;
}

.athlete-profile__input--invalid {
  border-color: #f04438;
}

.athlete-profile__input--unit {
  flex: 0 1 259px;
  max-width: 259px;
  width: 259px;
}

.athlete-profile input.athlete-profile__input,
.athlete-profile input.athlete-profile__input[type='text'],
.athlete-profile input.athlete-profile__input[type='email'],
.athlete-profile input.athlete-profile__input[type='number'],
.athlete-profile select.athlete-profile__input {
  border-radius: 6px;
}

.athlete-profile input.athlete-profile__input[type='text'],
.athlete-profile input.athlete-profile__input[type='email'],
.athlete-profile input.athlete-profile__input[type='number'] {
  border: 1px solid #d1d1d1;
  padding: 0 12px;
}

.athlete-profile input.athlete-profile__input[type='text']:focus,
.athlete-profile input.athlete-profile__input[type='email']:focus,
.athlete-profile input.athlete-profile__input[type='number']:focus {
  border-color: #7355b5;
}

.athlete-profile input.athlete-profile__input[type='text'].athlete-profile__input--invalid,
.athlete-profile input.athlete-profile__input[type='email'].athlete-profile__input--invalid,
.athlete-profile input.athlete-profile__input[type='number'].athlete-profile__input--invalid {
  border-color: #f04438;
}

.athlete-profile input.athlete-profile__input[type='number'] {
  -moz-appearance: textfield;
  appearance: textfield;
}

.athlete-profile input.athlete-profile__input[type='number']::-webkit-outer-spin-button,
.athlete-profile input.athlete-profile__input[type='number']::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.athlete-profile__select-wrap {
  position: relative;
  width: 100%;
}

.athlete-profile__select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236d6d6d' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-position: right 12px center;
  background-repeat: no-repeat;
  padding-right: 36px;
}

.athlete-profile__select:disabled {
  background-color: #f6f6f7;
  color: #6d6d6d;
  cursor: not-allowed;
}

.athlete-profile__select.ng-empty {
  color: #b0b0b0;
}

.athlete-profile__select option {
  color: #000000;
}

.athlete-profile__unit-group {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.athlete-profile__unit-field {
  align-items: center;
  display: flex;
  gap: 8px;
}

.athlete-profile__unit {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 500;
}

.athlete-profile__choice-group {
  display: flex;
  gap: 8px;
}

.athlete-profile__choice {
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  color: #6d6d6d;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  height: 40px;
  letter-spacing: -0.02em;
  line-height: 100%;
  max-height: 40px;
  min-height: 40px;
  min-width: 72px;
  padding: 0 16px;
  text-transform: none;
}

.athlete-profile__choice:hover:not(.athlete-profile__choice--selected) {
  border-color: #909090;
}

.athlete-profile__choice--selected {
  background: #f3eeff;
  border-color: #5f4499;
  color: #000000;
}

.athlete-profile__account-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.athlete-profile__account-btn {
  justify-content: center;
  text-align: center;
  width: auto;
}

.athlete-profile__field-error {
  color: #f04438;
  font-size: 12px;
  margin-top: 4px;
}

.athlete-profile__field-hint {
  color: #6d6d6d;
  font-size: 12px;
  margin-top: 4px;
}

.athlete-profile__actions {
  display: flex;
  justify-content: flex-end;
  max-width: 640px;
  margin-top: 24px;
  position: relative;
}

.athlete-profile__save {
  background: #C3ADF2;
  border: 0;
  border-radius: 4px;
  color: #ffffff;
  cursor: pointer;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  min-width: 148px;
  padding: 12px 22px;
  text-transform: none;
  transition: background 0.15s ease;
}

.athlete-profile__save:hover:not(:disabled) {
  background: #b19ae6;
}

.athlete-profile__save:disabled {
  cursor: default;
  opacity: 0.7;
}

@media (max-width: 768px) {
  .athlete-profile-page .athlete-profile {
    padding: 24px 16px 40px;
  }

  .athlete-profile__title {
    font-size: 28px;
  }

  .athlete-profile__photo {
    align-items: flex-start;
    flex-direction: column;
  }

  .athlete-profile__row {
    flex-direction: column;
  }

  .athlete-profile__input--unit {
    max-width: 259px;
    width: 259px;
  }
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) .athlete-profile__toast {
  left: calc(50% + 240px / 2);
  max-width: calc(100vw - 240px - 32px);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .athlete-profile__toast {
  left: calc(50% + 70px / 2);
  max-width: calc(100vw - 70px - 32px);
}

@media (max-width: 768px) {
  .athlete-profile__toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .athlete-profile__toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .athlete-profile__toast {
    bottom: 16px;
    gap: 16px;
    left: 50%;
    max-width: calc(100vw - 24px);
  }
}

.catalog-feature {
  position: relative;
  background-color: #cfcfcf;
  height: 400px;
}

.catalog-feature .feature-container {
  background-size: cover;
  background-position-x: center;
  background-position-y: top;
  min-height: 400px;
  position: relative;
}

.catalog-feature .feature-container.running-man {
  background-image: url("/images/program_catalog_background.png");
}

.catalog-feature .feature-container.running-man .feature-content {
  line-height: 0.9;
  width: 400px;
}

.catalog-feature .feature-container.running-man .message-text {
  font-size: 24px;
  margin-top: 15px;
}

.catalog-feature .feature-container .feature-content {
  position: absolute;
  top: 40px;
  left: 80px;
  width: 400px;
  color: #efefef;
  font-weight: 300;
  line-height: 0.95;
}

.catalog-feature .feature-container .feature-content h2 {
  margin: 0;
  padding: 0;
  font-weight: 300;
}

.catalog-feature .feature-container .feature-content p {
  margin: 0;
  padding: 0;
}

.catalog-feature .feature-container .feature-content h2,
.catalog-feature .feature-container .feature-content .title-text {
  font-size: 55px;
  text-transform: uppercase;
}

.catalog-feature .feature-container .feature-content p,
.catalog-feature .feature-container .feature-content .message-text {
  margin-top: 2px;
  font-size: 18px;
  line-height: 1.3;
}

.catalog-feature .feature-container .feature-button {
  position: absolute;
  bottom: 35px;
  left: 80px;
  color: #efefef;
  font-weight: 300;
}

.catalog-feature .markers {
  position: absolute;
  bottom: 0;
  height: 40px;
  width: 100%;
}

.catalog-feature .markers .marker {
  background-color: #fff;
  border-radius: 50%;
  margin: 6px;
  height: 10px;
  width: 10px;
}

.catalog-feature .markers .marker.active {
  background-color: #41baed;
}

.catalog-selected {
  padding: 35px;
}

@media (max-width: 768px) {
  .catalog-selected {
    padding: 20px;
  }
}

.catalog-selected .title-container {
  height: 100px;
}

@media (max-width: 768px) {
  .catalog-selected .title-container {
    height: auto;
    margin-bottom: 10px;
    flex-direction: column-reverse;
  }
}

.catalog-selected .title-container .title {
  font-size: 26px;
  line-height: 26px;
}

.catalog-selected .title-container .name {
  font-size: 26px;
}

.catalog-selected .title-container .return-link {
  margin-top: 20px;
  width: 120px;
  cursor: pointer;
}

@media (max-width: 768px) {
  .catalog-selected .title-container .return-link {
    margin-top: 0px;
    margin-bottom: 0px;
  }
}

.catalog-selected .title-container .return-link > div {
  min-height: 30px;
  line-height: 20px;
}

.catalog-selected .title-container .return-link > div:hover {
  text-decoration: underline;
}

.catalog-selected .title-container .return-link > div > i {
  margin-left: 5px;
  line-height: 30px;
}

.catalog-selected .detail-container {
  margin-top: 20px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container {
    flex-direction: column;
  }
}

.catalog-selected .detail-container .info-row-header {
  font-size: 12px;
  font-weight: 600;
  max-width: 260px;
}

.catalog-selected .detail-container .info-row-header > div {
  height: 20px;
  width: 130px;
  text-align: center;
  text-transform: uppercase;
}

.catalog-selected .detail-container .info-row {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  max-width: 260px;
}

.catalog-selected .detail-container .info-row > div {
  height: 90px;
  width: 130px;
}

.catalog-selected .detail-container .info-row > div > div {
  text-align: center;
}

.catalog-selected .detail-container .info-row > div + div {
  border-left: 1px solid #ccc;
}

.catalog-selected .detail-container .info-row .info {
  font-size: 26px;
}

.catalog-selected .detail-container .info-row .label {
  font-size: 16px;
}

.catalog-selected .detail-container .description-row {
  font-size: 12px;
  margin: 20px 0;
  max-width: 400px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .description-row {
    max-width: 100%;
    margin-bottom: 5px;
  }
}

.catalog-selected .detail-container .description-row .label {
  font-weight: 600;
  margin: 10px 0;
  text-transform: uppercase;
}

.catalog-selected .detail-container .button-container {
  margin: 20px 0;
  width: 200px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .button-container {
    width: 100%;
  }
}

.catalog-selected .detail-container .button-container button {
  width: 100%;
}

.catalog-selected .detail-container .button-container button + button {
  margin-top: 20px;
  margin-left: 0;
}

.catalog-selected .detail-container .sample-container {
  margin-left: 10px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .sample-container {
    margin-left: 0;
  }
}

.catalog-selected .detail-container .sample-container .video-label {
  font-size: 12px;
  font-weight: 600;
  max-width: 300px;
}

.catalog-selected .detail-container .sample-container .video-label > div {
  height: 20px;
  text-transform: uppercase;
}

.catalog-selected .detail-container .sample-container .video-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  max-height: 239px;
  max-width: 425px;
  min-height: 239px;
}

.catalog-selected .detail-container .sample-container .video-container > div {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.catalog-selected .detail-container .sample-container .video-container .missing-media {
  border: 1px solid #ccc;
  color: #ccc;
  font-size: 24px;
  font-weight: 300;
  width: 99%;
}

.exercise-selected {
  padding: 35px;
}

.exercise-selected .title-container {
  height: 100px;
}

@media (max-width: 768px) {
  .exercise-selected .title-container {
    height: auto;
    margin-bottom: 10px;
    flex-direction: column-reverse;
  }
}

.exercise-selected .title-container .title {
  font-size: 26px;
  line-height: 26px;
}

.exercise-selected .title-container .name {
  font-size: 18px;
}

.exercise-selected .title-container .return-link {
  margin-top: 20px;
  width: 120px;
  cursor: pointer;
}

@media (max-width: 768px) {
  .exercise-selected .title-container .return-link {
    margin-top: 0px;
    margin-bottom: 10px;
  }
}

.exercise-selected .title-container .return-link > div {
  min-height: 30px;
  line-height: 20px;
}

.exercise-selected .title-container .return-link > div:hover {
  text-decoration: underline;
}

.exercise-selected .title-container .return-link > div > i {
  margin-left: 5px;
  line-height: 30px;
}

.exercise-selected .detail-container {
  margin-top: 20px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container {
    flex-direction: column;
  }
}

.exercise-selected .detail-container .info-row-header {
  font-size: 12px;
  font-weight: 600;
  max-width: 400px;
}

.exercise-selected .detail-container .info-row-header > div {
  min-height: 20px;
  min-width: 130px;
  text-align: center;
  text-transform: uppercase;
}

.exercise-selected .detail-container .info-row {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  max-width: 400px;
}

.exercise-selected .detail-container .info-row > div {
  min-height: 90px;
  min-width: 130px;
}

.exercise-selected .detail-container .info-row > div > div {
  text-align: center;
}

.exercise-selected .detail-container .info-row > div + div {
  border-left: 1px solid #ccc;
}

.exercise-selected .detail-container .info-row .info {
  font-size: 26px;
}

.exercise-selected .detail-container .info-row .label {
  font-size: 14px;
}

.exercise-selected .detail-container .description-row {
  font-size: 12px;
  margin: 20px 0;
  max-width: 400px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .description-row {
    max-width: 100%;
    margin-bottom: 5px;
  }
}

.exercise-selected .detail-container .description-row .label {
  font-weight: 600;
  margin: 10px 0;
  text-transform: uppercase;
}

.exercise-selected .detail-container .button-container {
  margin: 20px 0;
  width: 200px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .button-container {
    width: 100%;
  }
}

.exercise-selected .detail-container .button-container button {
  width: 100%;
}

.exercise-selected .detail-container .button-container button + button {
  margin-top: 20px;
  margin-left: 0;
}

.exercise-selected .detail-container .sample-container {
  margin-left: 10px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .sample-container {
    margin-left: 0;
  }
}

.exercise-selected .detail-container .sample-container .video-label {
  font-size: 12px;
  font-weight: 600;
  max-width: 300px;
}

.exercise-selected .detail-container .sample-container .video-label > div {
  height: 20px;
  text-transform: uppercase;
}

.exercise-selected .detail-container .sample-container .video-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  max-height: 239px;
  max-width: 425px;
  min-height: 239px;
}

.exercise-selected .detail-container .sample-container .video-container > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.exercise-selected .detail-container .sample-container .video-container .missing-media {
  border: 1px solid #ccc;
  color: #ccc;
  font-size: 24px;
  font-weight: 300;
  width: 99%;
}

.exercise-selected .exercise-info-container {
  -webkit-flex: 0 0 400px;
  -ms-flex: 0 0 400px;
  flex: 0 0 400px;
}

.exercise-selected .sample-container {
  -webkit-flex: 1 0 350px;
  -ms-flex: 1 0 350px;
  flex: 1 0 350px;
}

.exercise-selected .sample-container .file-input-wrapper {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 5px;
}

.exercise-selected .sample-container .file-input-wrapper > button {
  min-height: 35px;
  max-height: 35px;
}

.exercise-selected .sample-container .file-input-wrapper > input[type="file"] {
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
}

.exercise-selected .form-fields .week-selection {
  min-height: 60px;
  margin-bottom: 25px;
  cursor: default;
}

.exercise-selected .form-fields .week-selection > div {
  min-width: 80px;
  line-height: 50px;
  font-size: 14px;
  border-bottom: 2px solid #9768EB;
  border-top: 2px solid #9768EB;
  text-align: center;
  text-transform: uppercase;
  color: #9768EB;
}

.exercise-selected .form-fields .week-selection > div:first-child {
  border-left: 2px solid #9768EB;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.exercise-selected .form-fields .week-selection > div:last-child {
  border-right: 2px solid #9768EB;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.exercise-selected .form-fields .week-selection > div:hover:not(.active) {
  color: #efefef;
  cursor: pointer;
  background-color: #9bd7ea;
}

.exercise-selected .form-fields .week-selection > div.active {
  color: #fefefe;
  cursor: default;
  background-color: #9768EB;
}

.exercise-selected .form-fields label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
  min-height: 50px;
  padding: 2px;
}

.exercise-selected .form-fields label span {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 120px;
  font-size: 18px;
  letter-spacing: 0.32px;
  line-height: 27px;
}

.exercise-selected .form-fields label input {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  font-size: 21px;
  letter-spacing: 0.4px;
}

.exercise-selected .form-fields label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  border-radius: 0;
  outline: 0;
  font-size: 21px;
  text-indent: 3px;
}

.exercise-selected .form-fields label select:focus {
  outline: 0;
}

.exercise-selected .form-fields label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.exercise-selected .form-fields label select + i.icon-caret-down {
  position: absolute;
  top: 25px;
  right: 20px;
  color: #D9DBDC;
  font-size: 8px;
}

.program-header-container {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-edit-header {
  min-height: 85px;
  margin-bottom: 30px !important;
}

.program-type-selection {
  min-height: 50px;
}

.program-type-selection > .type-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border-bottom: 2px solid transparent;
  font-size: 18px;
  color: #ddd;
  cursor: pointer;
}

.program-type-selection > .type-item .pill {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 1px;
  line-height: 14px;
  font-weight: bold;
  display: inline-block;
  line-height: 25px;
  vertical-align: top;
  margin-left: 3px;
  padding: 0 10px;
  white-space: nowrap;
  background: #AFB1B4;
  color: #FFFFFF;
  border-radius: 5px;
  text-transform: uppercase;
}

.program-type-selection > .type-item.active {
  border-color: #9768EB;
  color: #75787b;
  cursor: default;
}

.program-type-selection > .type-item:hover:not(.active) {
  border-color: #9768EB;
}

.program-type-selection > .type-item + .type-item {
  margin-left: 30px;
}

.program-type-selection > .copy-controls {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-top: 8px;
}

.program-schedule-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-right: 5px;
  margin-bottom: 5px;
}

.program-schedule-container button {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  max-width: 130px;
  min-width: 130px;
  width: 130px;
}

.program-edit {
  margin-top: 20px;
  margin-bottom: 0px;
}

.program-edit .program-strategy-container {
  margin-bottom: 20px;
}

.program-edit .program-strategy-container .program-strategy {
  font-size: 24px;
  margin-bottom: 20px;
}

.program-edit .program-strategy-container .program-strategy i {
  -webkit-flex: 0 30px;
  -ms-flex: 0 30px;
  flex: 0 30px;
  width: 20px;
  text-align: center;
}

.program-edit .program-strategy-container .program-strategy .strategy-name {
  -webkit-flex: 1 auto;
  -ms-flex: 1 auto;
  flex: 1 auto;
  margin-left: 15px;
}

.program-edit .program-strategy-container .program-strategy .strategy-action {
  -webkit-flex: 0 180px;
  -ms-flex: 0 180px;
  flex: 0 180px;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  font-size: 12px;
  text-align: center;
  text-transform: uppercase;
  line-height: 30px;
  padding: 0px;
}

.program-edit .program-strategy-container + .program-strategy-container {
  margin-top: 20px;
}

.program-edit .program-technique {
  font-size: 20px;
  color: #efefef;
}

.program-edit .program-technique .counter {
  height: 100%;
  width: 40px;
  line-height: 45px;
  flex: 0 0 auto;
}

.program-edit .program-technique .name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.program-edit .program-technique .name > span {
  margin-left: 15px;
  line-height: 24px;
  padding: 4px 0;
}

.program-edit .program-technique .action {
  margin-right: 30px;
  font-size: 12px;
  font-weight: 600;
  color: #9768EB;
  cursor: pointer;
}

.program-edit .program-technique .action .icon-plus {
  font-size: 8px;
}

.program-edit .program-technique .action > span {
  margin-left: 5px;
  text-transform: uppercase;
}

.program-edit .program-exercise-container {
  min-height: 80px;
}

.program-edit .program-exercise-container > div {
  background-color: #f9f9f9;
  border-radius: 0px;
  margin: 1px 0;
  min-height: 80px;
  width: 100%;
}

.program-edit .program-exercise-container > div.active-item {
  z-index: 1;
}

.program-edit .program-exercise-container > div.active-item .program-exercise .drag-icon {
  visibility: hidden;
}

.program-edit .program-exercise-container > div.active-item .program-exercise .actions {
  visibility: hidden;
}

.program-edit .program-exercise-container > div:first-child .sort-icons .icon:first-child {
  visibility: hidden;
}

.program-edit .program-exercise-container > div:last-child .sort-icons .icon:last-child {
  visibility: hidden;
}

.program-edit .program-exercise-container .program-note {
  margin-bottom: 20px;
  margin-left: 90px;
  max-width: 400px;
}

.program-edit .program-exercise-container .program-exercise {
  min-height: 80px;
  min-width: 600px;
  width: 100%;
}

@media (max-width: 768px) {
  .program-edit .program-exercise-container .program-exercise {
    min-width: 0;
  }
}

.program-edit .program-exercise-container .program-exercise .drag-icon {
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  cursor: pointer;
  font-size: 19px;
  text-align: center;
}

.program-edit .program-exercise-container .program-exercise .sort-icons {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  text-align: center;
}

.program-edit .program-exercise-container .program-exercise .sort-icons .icon {
  color: #dedede;
  font-size: 14px;
  cursor: pointer;
}

.program-edit .program-exercise-container .program-exercise .sort-icons .icon:hover {
  color: #9768EB;
}

.program-edit .program-exercise-container .program-exercise .info {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-edit .program-exercise-container .program-exercise .info .title {
  font-size: 19px;
  font-weight: 400;
}

.program-edit .program-exercise-container .program-exercise .info .attributes {
  gap: 5px 25px;
}

.program-edit .program-exercise-container .program-exercise .info .attributes > div {
  margin-top: 0;
  width: auto;
}

.program-edit .program-exercise-container .program-exercise .info .attributes > div span:first-child {
  margin-right: 5px;
  font-weight: 600;
}

.program-edit .program-exercise-container .program-exercise .actions {
  max-height: 38px;
  min-height: 38px;
  height: 38px;
  max-width: 180px;
  min-width: 180px;
  width: 180px;
  color: #ddd;
  font-size: 19px;
}

.program-edit-footer {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin: 15px 30px;
}

.whiteboard {
  min-width: 640px;
  width: 100%;
}

.whiteboard > section {
  margin: 15px 30px;
}

.whiteboard-schedule {
  width: 100%;
}

.whiteboard-schedule .whiteboard-program {
  background-color: #ffffff;
  padding: 30px 0 15px;
}

.whiteboard-program {
  max-height: 140px;
  min-height: 140px;
  height: 140px;
  background-color: #f9f9f9;
  padding: 30px 30px 15px;
}

.whiteboard-program .name {
  font-size: 30px;
  line-height: 30px;
  min-height: 30px;
}

.whiteboard-program .origin {
  font-size: 26px;
  line-height: 30px;
  min-height: 30px;
}

.whiteboard-program .edit {
  margin-top: 5px;
  min-height: 25px;
}

.whiteboard-program .edit span {
  font-size: 10px;
  margin-left: 8px;
  text-transform: uppercase;
}

.whiteboard-date span {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
}

.whiteboard-date .date-input {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  max-width: 130px;
  min-width: 130px;
  width: 130px;
  margin-bottom: 15px;
}

.whiteboard-date .date-input input {
  border: 1px solid #bbb;
  border-right: none;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
  width: 100px;
  height: 30px;
  line-height: 30px;
  text-indent: 5px;
  outline: 0;
}

.whiteboard-date .date-input .input-icon {
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  background-color: #9768EB;
  border: 1px solid #9768EB;
  border-left: none;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.whiteboard-date .date-input .input-icon i.fa {
  font-size: 16px;
}

.whiteboard-date .date-disabled .input-icon {
  background-color: #cdcdcd;
  border: 1px solid #cdcdcd;
}

.week-list {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: #f9f9f9;
  padding: 10px 30px;
}

.week-list .week-item {
  font-size: 16px;
  margin-right: 20px;
  min-height: 28px;
}

.week-list .week-item.active {
  border-bottom: 2px solid #9768EB;
}

.week-list .week-item:hover:not(.active) {
  cursor: pointer;
}

.week-list .week-copy {
  -webkit-flex: 1 1 0%;
  -ms-flex: 1 1 0%;
  flex: 1 1 0%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.day-list {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  margin: 20px 0;
}

.day-list .day-item {
  -webkit-justify-content: center;
  justify-content: center;
  border-top: 1px solid #9768EB;
  border-bottom: 1px solid #9768EB;
  color: #9768EB;
  font-size: 12px;
  min-height: 45px;
  min-width: 80px;
  text-transform: uppercase;
}

.day-list .day-item.active {
  background-color: #9768EB;
  color: #fefefe;
}

.day-list .day-item:hover:not(.active) {
  background-color: rgba(65, 187, 231, 0.5);
  color: #ffffff;
  cursor: pointer;
}

.day-list .day-item:first-child {
  border-left: 1px solid #9768EB;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.day-list .day-item:last-child {
  border-right: 1px solid #9768EB;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.day-list-schedule .day-item {
  background-color: #bbb;
  border-radius: 6px;
}

.day-list-schedule .day-item .drag-icon {
  max-height: 20px;
  min-height: 20px;
  height: 20px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  cursor: move;
  font-size: 12px;
  text-align: center;
}

.day-list-schedule .day-item .name {
  text-transform: uppercase;
}

.day-list-schedule .day-item + .day-item {
  margin-left: 10px;
}

.program-section {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
}

.program-section.accept-drop {
  background-color: #fff;
  border: 1px solid #999;
  border-radius: 6px;
  padding: 10px;
}

.program-section.accept-drop .action-with-icon {
  display: none;
}

.program-section.accept-drop .name > i {
  display: none;
}

.program-section .name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 18px;
}

.program-section .name span {
  margin-right: 8px;
}

.program-section .action {
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 110px;
  min-width: 110px;
  width: 110px;
  font-size: 12px;
}

.program-section .action span {
  margin-right: 8px;
  text-transform: uppercase;
}

.program-section .action i.fa {
  font-size: 15px;
}

.program-section-placeholder > div {
  -webkit-justify-content: center;
  justify-content: center;
  border: 1px dashed #bbb;
  border-radius: 6px;
  margin: 4px;
  width: 100%;
}

.program-section-placeholder > div span.text {
  color: #bbb;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
}

.program-exercise-container {
  min-height: 86px;
}

.program-exercise-container > div {
  background-color: #f9f9f9;
  border-radius: 6px;
  margin: 2px;
  min-height: 80px;
  width: 100%;
}

.program-exercise-container > div.active-item {
  z-index: 1;
}

.program-exercise-container > div.active-item .program-exercise .drag-icon {
  visibility: hidden;
}

.program-exercise-container > div.active-item .program-exercise .actions {
  visibility: hidden;
}

.program-exercise-container .add-exercise {
  -webkit-justify-content: center;
  justify-content: center;
  color: #aaa;
  font-size: 16px;
  border: 2px dashed #CDD3D7;
  background-color: #EFEFEF;
}

.program-exercise-container .add-exercise span {
  font-weight: 600;
  letter-spacing: 1px;
  font-size: 13px;
  color: #CDD3D7;
  text-transform: uppercase;
}

.program-exercise-container .program-note {
  margin-bottom: 20px;
  margin-left: 90px;
  max-width: 400px;
}

.program-exercise-container .program-exercise {
  min-height: 80px;
  min-width: 600px;
  width: 100%;
}

@media (max-width: 768px) {
  .program-exercise-container .program-exercise {
    min-width: 0;
  }
}

.program-exercise-container .program-exercise .drag-icon {
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  cursor: pointer;
  font-size: 19px;
  text-align: center;
}

.program-exercise-container .program-exercise .info {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-exercise-container .program-exercise .info .title {
  font-size: 19px;
  font-weight: 600;
}

.program-exercise-container .program-exercise .info .attributes {
  gap: 5px 25px;
}

.program-exercise-container .program-exercise .info .attributes > div span:first-child {
  margin-right: 5px;
  font-weight: 600;
}

.program-exercise-container .program-exercise .actions {
  color: #ddd;
  font-size: 19px;
}

.accept-drop-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background-color: #cdcdcd;
  background-color: rgba(225, 225, 225, 0.5);
  border-radius: 6px;
  color: #fff;
  font-size: 24px;
}

.accept-drop-container > span {
  text-align: center;
}

.accept-drop-container.hidden {
  display: none;
}

.sort-order-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background-color: #cdcdcd;
  background-color: rgba(225, 225, 225, 0.5);
  border-radius: 6px;
  color: #fff;
  font-size: 24px;
}

.sort-order-container > span {
  text-align: center;
}

.sort-order-container.hidden {
  display: none;
}

.schedule-selected-athletes {
  margin-left: 50px;
  margin-bottom: auto;
}

.schedule-selected-athletes span {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
  margin-bottom: 8px;
  margin-top: 12px;
}

.schedule-selected-athletes .athlete-names {
  max-width: 600px;
}

.schedule-selected-athletes .athlete-names .athlete-names-more {
  color: #9768EB;
  cursor: pointer;
  margin-left: 5px;
}

.bulk-schedule-divider {
  margin-top: 50px;
  text-align: center;
  width: 47px;
}

.bulk-schedule-divider i {
  color: #D7D9DA;
  font-size: 20px;
}

.whiteboard-footer {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.calendar-menu {
  margin: 20px 0;
}

.calendar-menu > div {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  font-size: 20px;
  line-height: 1;
  font-weight: 500;
}

@media only screen and (max-width: 1053px) {
  .calendar-menu > div {
    font-size: 16px;
  }
}

.calendar-menu > div.active {
  border-bottom: 2px solid #9768EB;
  cursor: default;
}

.calendar-menu > div:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.calendar-menu > div + div {
  margin-left: 40px;
}

.calendar-parent {
  position: relative;
}

.calendar-month {
  -webkit-flex: 1 0 690px;
  -ms-flex: 1 0 690px;
  flex: 1 0 690px;
  max-width: 690px;
  min-width: 690px;
  width: 690px;
  margin: 1px 0 0;
}

.calendar-month .calendar-header {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border: 1px solid #ccc;
  border-top: 0;
  font-size: 18px;
  margin: -1px 0 0 -1px;
}

.calendar-month .calendar-header .fa {
  font-size: 24px;
  padding: 10px;
  box-sizing: content-box;
}

.calendar-month .calendar-header > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.calendar-month .calendar-header > div:first-child {
  margin-right: auto;
  max-width: 20px;
  min-width: 20px;
  width: 20px;
  cursor: pointer;
}

.calendar-month .calendar-header > div:last-child {
  margin-left: auto;
  max-width: 20px;
  min-width: 20px;
  width: 20px;
  cursor: pointer;
}

.calendar-month .calendar-header .year-container {
  position: relative;
}

.calendar-month .calendar-header .year-container select.year-select {
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  appearance: menulist;
  -webkit-flex: 0.1 0 0;
  -ms-flex: 0.1 0 0;
  flex: 0.1 0 0;
  background-color: transparent;
  border: none;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  color: #808080;
  text-indent: 0px;
}

.calendar-month .calendar-header .year-container select.year-select:focus {
  outline: 0;
}

.calendar-month .calendar-header .year-container select.year-select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.calendar-month .calendar-header .year-container select.year-select::-ms-expand {
  display: none;
}

.calendar-month .calendar-header .year-container select.year-select + i.icon-caret-down {
  position: absolute;
  top: 10px;
  right: -12px;
  color: #D9DBDC;
  font-size: 6px;
  pointer-events: none;
}

.calendar-month .week-day-labels {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  background-color: #dfdfdf;
  color: #c0c0c0;
}

.calendar-month .week-day-labels.left > div {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding-left: 6px;
}

.calendar-month .week-day-labels > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 99.5px;
  min-width: 99.5px;
  width: 99.5px;
  border: 1px solid transparent;
  color: #999;
  font-size: 13px;
  margin: -1px 0 0 -1px;
}

.calendar-month .week-day-labels > div .accept-drop-container {
  max-width: 97.5px;
  min-width: 97.5px;
  width: 97.5px;
  right: initial;
  left: initial;
}

.calendar-month .week-day-labels div:first-child {
  border-left-color: #ccc;
}

.calendar-month .week-day-labels div:last-child {
  border-right-color: #ccc;
}

.calendar-month .calendar-days {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.calendar-month .calendar-days .calendar-day {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  max-width: 99.5px;
  min-width: 99.5px;
  width: 99.5px;
  border: 1px solid #ccc;
  font-size: 18px;
  margin: -1px 0 0 -1px;
  padding: 8px 12px;
}

.calendar-month .calendar-days .calendar-day.day-activities {
  background: #00B96D;
  color: #fff;
}

.calendar-month .calendar-days .calendar-day.current-day {
  background-color: #ffffff;
  border-bottom: 6px solid #9768EB;
}

.calendar-month .calendar-days .calendar-day.program-range {
  background-color: #ffffff;
}

.calendar-month .calendar-days .calendar-day.empty {
  background-color: #efefef;
}

.calendar-month .calendar-days .calendar-day .calendar-day-number {
  margin-bottom: 5px;
  font-size: 16px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-number > .month-abbrev {
  font-size: 15px;
  line-height: 28px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern,
.calendar-month .calendar-days .calendar-day .calendar-day-existing {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  min-height: 15px;
  font-size: 11px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern i,
.calendar-month .calendar-days .calendar-day .calendar-day-existing i {
  margin: 2px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern {
  margin-top: 10px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-scheduled {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  font-size: 9px;
}

@media (max-width: 768px) {
  .calendar-month .calendar-days .calendar-day .calendar-day-scheduled {
    max-width: 100%;
    min-width: unset;
  }
}

.calendar-month .calendar-days .calendar-day .calendar-day-scheduled i {
  margin: 2px;
}

.calendar-month.input-ctl {
  -webkit-flex: 1 0 280px;
  -ms-flex: 1 0 280px;
  flex: 1 0 280px;
  max-width: 280px;
  min-width: 280px;
  width: 280px;
  box-shadow: 6px 6px 18px 0px #4a4a4a;
  background-color: #fff;
  position: absolute;
  top: 40px;
  left: 0;
  z-index: 10;
  margin: 1px 0;
  font-weight: 500;
}

.calendar-month.input-ctl.right {
  left: inherit;
  right: 0;
}

.calendar-month.input-ctl .calendar-header {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  border-top: 1px solid #ccc;
  font-size: 14px;
  cursor: default;
}

.calendar-month.input-ctl .calendar-header .icon {
  cursor: pointer;
}

.calendar-month.input-ctl .calendar-week-header {
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  background-color: #aaa;
}

.calendar-month.input-ctl .calendar-week-header > div {
  max-width: 35px;
  min-width: 35px;
  width: 35px;
  color: #dfdfdf;
  cursor: default;
  font-weight: 600;
  text-align: center;
  border: 2.1275px solid transparent;
  margin: 2px;
}

.calendar-month.input-ctl .calendar-days {
  margin-bottom: 5px;
}

.calendar-month.input-ctl .calendar-days .calendar-day {
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  max-width: 35px;
  min-width: 35px;
  width: 35px;
  margin: 2px;
  border: 2.1275px solid transparent;
  border-radius: 100%;
  padding: 0;
}

.calendar-month.input-ctl .calendar-days .calendar-day.empty {
  border-radius: 0;
  background-color: transparent;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-day {
  border: 2.1275px solid #9768EB;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range {
  background-color: #def5fd;
  border-radius: 0;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range:hover {
  border-radius: 100%;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range .calendar-day-number {
  color: #8d8d8d;
}

.calendar-month.input-ctl .calendar-days .calendar-day:not(.empty) {
  cursor: pointer;
}

.calendar-month.input-ctl .calendar-days .calendar-day:not(.empty):hover {
  background-color: #eee;
}

.calendar-month.input-ctl .calendar-days .calendar-day .calendar-day-number {
  padding: 1px;
  text-align: center;
  margin-bottom: 0;
}

.calendar-day-info {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 300px;
  min-width: 300px;
  width: 300px;
}

.calendar-day-info .day-date {
  border-bottom: 1px solid #ccc;
  font-size: 13px;
  font-weight: 600;
  margin: 35px 0 20px;
  min-height: 40px;
  text-transform: uppercase;
}

.calendar-day-info .day-date > .icon-calendar {
  background-color: #9768EB;
  border: 1px solid #9768EB;
  border-radius: 3px;
  padding: 5px;
  margin-left: 7px;
  line-height: 28px;
  font-size: 15px;
  color: #efefef;
}

.calendar-day-info .day-program {
  max-width: 295px;
  min-width: 295px;
  width: 295px;
  letter-spacing: 0.75px;
  margin-bottom: 25px;
  font-size: 16px;
  font-weight: 500;
}

.calendar-day-info .day-program .light-grey-text {
  color: #A7A8A7;
}

.calendar-day-info .day-program.action {
  cursor: pointer;
}

.week-main-wrapper {
  padding: 0 !important;
}

.week-wrapper {
  padding: 0 !important;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  min-height: 425px;
  /* height: 425; */
}

.week-wrapper.small {
  min-height: 225px;
  /* height: 225px; */
}

.week-wrapper .week-button-column {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 36px;
  font-weight: 700;
  min-width: 20px;
}

.week-wrapper .week-button-column > div {
  cursor: pointer;
}

@media only screen and (min-width: 1054px) {
  .week-wrapper .week-button-column .fa-angle-left {
    margin-left: -25px;
  }

  .week-wrapper .week-button-column .fa-angle-right {
    margin-right: -25px;
  }
}

.week-wrapper .week-day-column {
  border-left: 1px solid #ddd;
  min-width: 140px;
}

.week-wrapper .week-day-column .day-number {
  -webkit-align-self: flex-start;
  align-self: flex-start;
  color: #aaa;
  font-size: 16px;
  margin: 10px 15px;
}

.week-wrapper .week-day-column .week-day-info-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 100%;
  padding-bottom: 5px;
}

.week-wrapper .week-day-column .week-day-info-container:not(:empty) {
  border-bottom: 4px solid #aaa;
}

.week-wrapper .week-day-column .week-day-info-container .week-day-program {
  width: 130px;
  max-width: 100%;
  background-color: #fefefe;
  border-radius: 6px;
  color: #bbb;
  font-size: 13px;
  font-weight: 200;
  margin: 4px 0;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row-reverse;
}

@media (max-width: 768px) {
  .week-wrapper .week-day-column .week-day-info-container .week-day-program {
    flex-direction: column;
    gap: 4px;
  }
}

.week-wrapper .week-day-column .week-day-info-container .week-day-program.action {
  cursor: pointer;
}

.week-wrapper .week-day-column:nth-last-child(2) {
  border-right: 1px solid #ddd;
}

.week-wrapper .week-day-column.current-day {
  background-color: #ffffff;
}

.week-wrapper .week-day-column.current-day .day-number {
  color: #808080;
}

.week-wrapper .week-day-column.current-day .week-day-info-container:not(:empty) {
  border-bottom: 4px solid #9768EB;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program {
  background-color: #f4f4f4;
  color: inherit;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program .week-day-program-title:not(.light-grey-text) {
  color: #9768EB;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program .week-day-program-name:not(.light-grey-text) {
  color: #888888;
}

.chart-menu {
  margin: 50px 0 30px 0;
}

.chart-menu .chart-menu-item {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  font-size: 20px;
  line-height: 1;
  font-weight: 500;
  color: #a0a4a8;
  margin-right: 40px;
}

@media only screen and (max-width: 1053px) {
  .chart-menu .chart-menu-item {
    font-size: 16px;
  }
}

.chart-menu .chart-menu-item.active {
  border-bottom: 2px solid #9768EB;
  color: #333;
  cursor: default;
}

.chart-menu .chart-menu-item:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.line-chart {
  margin: 25px 0 0 0;
}

.line-chart .line-chart-canvas {
  max-height: 350px;
  min-height: 350px;
  height: 350px;
  max-width: 700px;
  min-width: 700px;
  width: 700px;
}

.line-chart .line-chart-canvas.small {
  max-height: 275px;
  min-height: 275px;
  height: 275px;
  max-width: 550px;
  min-width: 550px;
  width: 550px;
}

.line-chart .line-chart-menu {
  font-size: 14px;
  margin: 25px 0;
}

.program-chart {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 700px;
  min-width: 700px;
  width: 700px;
  margin: 25px 0 0 0;
  min-height: 350px;
}

.program-chart .program-complete {
  margin: 5px 15px;
}

.program-chart .program-complete .program-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 11px;
  margin-bottom: 6px;
}

.program-chart .program-complete .program-info .program-title {
  font-weight: 600;
  text-transform: uppercase;
}

.program-chart .program-complete .program-info .program-name {
  text-transform: uppercase;
}

.program-chart .program-complete .program-info .icon {
  color: #cdcdcd;
  font-size: 10px;
}

.program-chart .program-complete canvas {
  height: 60px;
  width: 310px;
}

.selection-component {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  position: relative;
}

.selection-component:after {
  color: #ffffff;
  content: '>';
  font: 600 12px 'Consolas', monospace;
  position: absolute;
  top: 6px;
  right: 12px;
  padding: 0 0 3px;
  pointer-events: none;
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}

.selection-component:before {
  background-color: #9768EB;
  content: '';
  display: block;
  position: absolute;
  top: 0px;
  right: 6px;
  width: 20px;
  height: inherit;
  pointer-events: none;
}

.selection-component select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #9768EB;
  border: none;
  color: #ffffff;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  height: 30px;
  margin: 0;
  outline: none;
  padding-left: 10px;
  text-transform: uppercase;
  width: 100%;
}

.chart-legend {
  font-size: 14px;
  margin: 0 20px;
}

.chart-legend > .fa {
  margin-right: 5px;
}

.chart-legend > .fa.average {
  color: rgba(207, 218, 220, 0.5);
}

.chart-legend > .fa.score {
  color: rgba(0, 182, 235, 0.9);
}

.chart-legend > .fa.score-line {
  color: rgba(151, 104, 235, 0.9);
}

.chart-legend > .fa.team-average {
  color: rgba(125, 125, 125, 0.75);
}

.chart-legend > .fa.completed {
  color: rgba(32, 183, 105, 0.8);
}

.chart-legend > .fa.scheduled {
  color: #dfdfdf;
}

.chart-details {
  max-width: 300px;
  min-width: 300px;
  width: 300px;
  margin-top: 16px;
}

.chart-details .chart-date-header {
  border-bottom: 1px solid #ccc;
  padding-bottom: 4px;
  margin-bottom: 4px;
  -webkit-align-items: center;
  align-items: center;
}

.chart-details .chart-date-header i {
  font-size: 18px;
  display: none;
}

.chart-details .chart-date {
  max-height: 22px;
  min-height: 22px;
  height: 22px;
  color: #75777A;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}

.chart-details .main-score {
  margin-top: 5px;
}

.chart-details .value-badge {
  color: #9768EB;
  font-size: 48px;
  font-weight: 100;
  margin-bottom: -6px;
}

.chart-details .value-label {
  text-align: center;
  max-width: 120px;
}

.chart-details .value-large {
  font-size: 56px;
  font-weight: 100;
  line-height: 56px;
  margin-right: 20px;
}

.chart-details .value-change-icon.fa-sort-asc {
  font-weight: 100;
  margin-top: 4px;
}

.chart-details .value-change-icon.fa-sort-desc {
  font-weight: 100;
  margin-bottom: 6px;
}

.chart-details .value-change-icon.unchanged {
  color: #808080;
}

.chart-details .value-change-icon.increase {
  color: #20b769;
}

.chart-details .value-change-icon.decrease {
  color: #c42a3b;
}

.chart-details .value-change {
  font-size: 14px;
  font-weight: 500;
  margin-left: 6px;
}

.chart-details .value-change.unchanged {
  color: #808080;
}

.chart-details .value-change.increase {
  color: #20b769;
}

.chart-details .value-change.decrease {
  color: #c42a3b;
}

.chart-details .info-label {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.chart-details .chart-stats-container {
  margin-top: 20px;
}

.chart-details .test-results-button-container {
  flex: 1;
  padding: 15px 0px;
}

.chart-details .chart-stats {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  border-bottom: 1px solid #ccc;
  border-top: 1px solid #ccc;
  padding: 15px 0;
}

.chart-details .chart-stats .name {
  font-size: 12px;
}

.chart-details .chart-stats .value {
  font-size: 26px;
  font-weight: 100;
  line-height: 34px;
}

.chart-details .chart-stats-grid .chart-stats {
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  border-top: none;
}

.chart-details .chart-stats-grid .chart-stats:nth-child(-n+2) {
  border-top: 1px solid #ccc;
}

.chart-details .chart-stats-grid .chart-stats:nth-child(odd) {
  border-right: 1px solid #ccc;
}

.chart-details .pie-chart-container {
  margin-top: 20px;
  margin-bottom: -20px;
}

.chart-details .pie-chart {
  color: #aaa;
  font-size: 13px;
  margin-bottom: 20px;
}

.chart-details .pie-chart > div {
  margin-top: 10px;
}

.chart-details .pie-chart .pie-chart-canvas {
  max-height: 70px;
  min-height: 70px;
  height: 70px;
  max-width: 70px;
  min-width: 70px;
  width: 70px;
}

.chart-details .rpe-container {
  margin-top: 10px;
}

.chart-details .rpe-container .red-text,
.chart-details .rpe-container .green-text {
  font-weight: 500;
  margin-left: 3px;
}

.chart-details .rpe-container div + div {
  margin-left: 20px;
}

.chart-details .program-week {
  margin-top: 20px;
  padding: 18px 0;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}

.chart-details .trophies {
  margin-top: 20px;
}

.chart-details .trophies .trophy-image {
  margin-right: 6px;
  display: inline-block;
  width: 28px;
  position: relative;
  margin-top: -13px;
}

.chart-details .trophies .trophy-image.trophy-image--badge {
  margin-top: 0;
  width: 24px;
}

.chart-details .trophies .trophy-icon {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  max-width: 28px;
  min-width: 28px;
  width: 28px;
  margin-top: -11px;
  margin-right: 5px;
}

.chart-details .trophies .trophy-icon img {
  display: block;
}

.chart-details .trophies .trophy-place {
  padding: 0 6px;
  font-size: 30px;
  font-weight: 100;
}

.chart-details .trophies .trophy-name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  margin-left: 13px;
  font-size: 14px;
  line-height: 16px;
}

.chart-details .no-details {
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  max-width: 300px;
  min-width: 300px;
  width: 300px;
  padding-bottom: 100px;
}

.notes-menu {
  margin: 15px 0;
}

.notes-menu .notes-menu-item {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  font-size: 18px;
  line-height: 20px;
}

.notes-menu .notes-menu-item.active {
  border-bottom: 2px solid #9768EB;
  color: #333;
  cursor: default;
}

.notes-menu .notes-menu-item:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.notes-menu .notes-menu-item + .notes-menu-item {
  margin-left: 45px;
}

.notes-calendar {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 492px;
  min-width: 492px;
  width: 492px;
}

.notes-calendar .calendar-header {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  margin: 1px 1px 0 -1px;
  background-color: #efefef;
  border: 1px solid #ccc;
  font-size: 16px;
  cursor: default;
}

.notes-calendar .calendar-header .icon {
  cursor: pointer;
}

.notes-calendar .week-day-labels {
  margin: 0 1px 0 0;
}

.notes-calendar .week-day-labels > div {
  min-width: 0;
  max-width: none;
  width: 14.28571%;
  font-size: 12px;
  color: #999;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding-left: 3px;
  align-items: center;
  justify-content: center;
}

.notes-calendar .calendar-days {
  margin: 0 1px 5px 0;
  background-color: #efefef;
}

.notes-calendar .calendar-days .calendar-day {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 0;
  max-width: none;
  width: 14.28571%;
  min-height: 0;
  max-height: none;
  height: 62px;
  margin: -1px 0px 0px -1px;
  border: 1px solid #cdcdcd;
  font-size: 16px;
  padding: 0;
  color: #cdcdcd;
}

.notes-calendar .calendar-days .calendar-day.current-day {
  color: #9768EB;
}

.notes-calendar .calendar-days .calendar-day.day-activities {
  background-color: #2d8b00;
}

.notes-calendar .calendar-days .calendar-day:not(.empty):not(.day-activities) {
  cursor: pointer;
}

.notes-calendar .calendar-days .calendar-day:not(.empty):not(.day-activities):hover {
  opacity: 0.8;
}

.notes-calendar .calendar-days .calendar-day .calendar-day-number {
  padding: 1px;
  line-height: 32px;
  text-align: left;
  padding: 8px 12px;
  font-size: 18px;
  font-size: 16px;
}

.bc-section,
.tl-section,
.soap-section {
  margin-top: 20px;
}

.soap-label.fields-header.high-level-field-label {
  margin-top: 20px;
  margin-bottom: 0px;
}

.bc-bodyfat {
  position: relative;
}

.bc-bodyfat > .basic-input.small {
  width: 80px;
}

.bc-bodyfat:after {
  content: '%';
  position: absolute;
  top: 0;
  left: 60px;
  line-height: 38px;
  font-size: 18px;
  color: #bbb;
}

.bc-alert {
  width: 75%;
  margin-bottom: 10px;
}

@media (max-width: 768px) {
  .bc-alert {
    width: 100%;
  }
}

.tl-total-load {
  margin-left: 15px;
}

.tl-total-load > .basic-input.small {
  width: 70px;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid #cdcdcd;
  color: #9768EB;
}

.bc-entry-header > .field-label + .field-label,
.bc-entry > .field-label + .field-label {
  margin-left: 20px;
}

@media (max-width: 568px) {
  .bc-entry-header > .field-label + .field-label,
  .bc-entry > .field-label + .field-label {
    margin-left: 10px;
  }
}

.bc-entry-header .bc-input,
.bc-entry .bc-input {
  min-width: 160px;
  max-width: 160px;
}

.bc-entry-header .bc-filler,
.bc-entry .bc-filler {
  min-width: 10px;
  max-width: 10px;
}

@media (max-width: 568px) {
  .bc-filler-resp {
    min-width: 0 !important;
    max-width: 0 !important;
    margin-left: 0 !important;
  }
}

.tl-entry-header > .field-label + .field-label,
.tl-entry > .field-label + .field-label {
  margin-left: 20px;
}

.tl-entry-header .tl-select,
.tl-entry .tl-select {
  min-width: 215px;
  max-width: 215px;
}

.tl-entry-header .tl-input,
.tl-entry .tl-input {
  min-width: 100px;
  max-width: 100px;
}

.tl-entry-header .tl-filler,
.tl-entry .tl-filler {
  min-width: 10px;
  max-width: 10px;
}

.resp-notes-column {
  overflow: auto;
}

.bc-entry .bc-input {
  display: inline-flex;
  align-items: center;
  position: relative;
}

.bc-entry .bc-input > .basic-input.small {
  width: 130px;
  height: 38px;
  line-height: 38px;
  padding: 0 28px 0 13px;
  box-sizing: border-box;
}

.bc-entry .bc-input-bf {
  display: inline-flex;
  align-items: center;
  position: relative;
  margin-left: 0 !important;
}

.bc-entry .bc-input-bf > .basic-input.small {
  width: 80px;
  height: 38px;
  line-height: 38px;
  padding: 0 28px 0 13px;
  box-sizing: border-box;
}

.bc-entry .bc-unit {
  margin-left: -34px;
  pointer-events: none;
  font-size: 18px;
  line-height: 38px;
  color: #bbb;
  white-space: nowrap;
}

.bc-entry .bc-unit-bf {
  margin-left: -24px;
  pointer-events: none;
  font-size: 18px;
  line-height: 38px;
  color: #bbb;
  white-space: nowrap;
}

.tl-entry .tl-select-input {
  position: relative;
  border: 2px solid #d8d8d8;
  border-radius: 4px;
  padding: 5px 13px;
  font-size: 16px;
}

.tl-entry .tl-select-input .select-toggle {
  min-width: 185px;
  max-width: 185px;
}

.tl-entry .tl-select-input .select-toggle i {
  position: absolute;
  top: 14px;
  right: 10px;
  font-size: 6px;
}

.tl-entry .tl-select-input .options {
  position: absolute;
  top: 37px;
  left: 0px;
  overflow-y: auto;
  background-color: #dfdfdf;
  min-width: 220px;
  max-height: 180px;
  z-index: 2;
}

.tl-entry .tl-select-input .options > div {
  margin-top: 1px;
  margin-bottom: 3px;
  padding-left: 12px;
  min-height: 28px;
  line-height: 28px;
  cursor: pointer;
}

.tl-entry .tl-select-input .options > div:hover {
  background-color: #efefef;
}

.tl-entry .tl-input > .basic-input.small {
  width: 100px;
}

.tl-entry .tl-calculated-load > .basic-input.small {
  width: 100px;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid #cdcdcd;
}

.tl-entry .tl-delete {
  font-size: 20px;
  color: #9768EB;
  cursor: pointer;
}

.bc-free-form,
.tl-free-form {
  width: 75%;
  font-size: 16px;
}

@media (max-width: 768px) {
  .bc-free-form,
  .tl-free-form {
    width: 100%;
  }
}

.soap-date > * {
  width: 170px;
}

.soap-date .date-input > .input-icon {
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 35px;
  min-width: 40px;
  max-width: 40px;
  margin-right: 3px;
  background-color: #9768EB;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  font-size: 20px;
  color: #ffffff;
}

.soap-text-container {
  page-break-inside: avoid;
}

.soap-treatments .checkbox-input {
  margin-bottom: 8px;
}

.soap-treatments .soap-treatment-options {
  padding-left: 24px;
}

.soap-treatments .soap-treatment-options .checkbox-input {
  margin-bottom: 8px;
}

.soap-treatments .soap-treatment-text {
  padding-left: 24px;
}

.soap-treatments .soap-treatment-text .basic-input {
  width: 180px;
  margin-bottom: 8px;
}

.soap-objective.field div textarea {
  height: 85px;
  margin-bottom: 10px;
}

.fa-notes {
  margin: -10px 0px 0px 12px;
  color: #9768EB;
  font-size: 7px;
}

@media (max-width: 568px) {
  .resp-form-post-buttons {
    -webkit-flex-direction: column;
    flex-direction: column;
    margin: 20px 0 60px 0 !important;
    gap: 8px;
    width: 100%;
  }

  .resp-form-post-buttons > button {
    width: 100% !important;
    margin: 0 !important;
  }
}

.tooltipHidden {
  display: none;
}

.tooltip,
.tooltip-right,
.tooltip-bottom,
.tooltip-left,
.tooltip-right:after,
.tooltip-bottom:after,
.tooltip-left:after {
  position: absolute;
  min-width: 300px;
  max-width: 360px;
  width: max-content;
  width: -webkit-max-content;
  min-height: 72px;
  top: -130%;
  left: 65px;
  z-index: 10;
  border-radius: 6px;
  padding: 20px 25px;
  font-size: 16px;
  font-family: Nudista-web;
  background-color: #2e2e2e;
  color: white;
  line-height: 24px;
  text-align: left;
  letter-spacing: .35px;
}

.tooltip .ttContent,
.tooltip-right .ttContent,
.tooltip-bottom .ttContent,
.tooltip-left .ttContent,
.tooltip-right:after .ttContent,
.tooltip-bottom:after .ttContent,
.tooltip-left:after .ttContent {
  color: #929392;
  font-weight: 400;
  text-transform: none;
}

.tooltip .ttTitle,
.tooltip-right .ttTitle,
.tooltip-bottom .ttTitle,
.tooltip-left .ttTitle,
.tooltip-right:after .ttTitle,
.tooltip-bottom:after .ttTitle,
.tooltip-left:after .ttTitle {
  height: 40px;
  text-transform: none;
}

@media (max-width: 768px) {
  .tooltip,
  .tooltip-right,
  .tooltip-bottom,
  .tooltip-left,
  .tooltip-right:after,
  .tooltip-bottom:after,
  .tooltip-left:after {
    font-size: 14px;
    padding: 15px 18px;
  }
}

.tooltip-bottom {
  top: 55px;
  left: -125px;
}

.tooltip-left {
  left: inherit;
  right: 45px;
}

.tooltip:after,
.tooltip-right:after,
.tooltip-bottom:after,
.tooltip-left:after {
  position: absolute;
  left: -20px;
  top: 15px;
  border-color: transparent #2e2e2e;
  border-style: solid;
  border-width: 20px 20px 20px 0px;
  height: 0px;
  width: 0px;
  content: " ";
}

@media (max-width: 768px) {
  .tooltip:after,
  .tooltip-right:after,
  .tooltip-bottom:after,
  .tooltip-left:after {
    display: none;
  }
}

.tooltip-bottom:after {
  left: 130px;
  top: -20px;
  border-color: #2e2e2e transparent;
  border-width: 0px 20px 20px 20px;
}

.tooltip-left:after {
  left: inherit;
  right: -20px;
  border-width: 20px 0px 20px 20px;
}

.tooltipClose {
  float: right;
  padding: 0px 10px 3px 0px;
  color: lightblue;
  cursor: default;
  font-size: 24px;
}

.chart-tooltip {
  position: absolute;
  min-width: 255px;
  max-width: 300px;
  min-height: 100px;
  padding: 10px;
  background-color: #2e2e2e;
  z-index: 1;
  cursor: default;
  pointer-events: none;
}

.chart-tooltip .header {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
  color: #efefef;
}

.chart-tooltip .content {
  font-size: 13px;
  margin-top: 6px;
  margin-bottom: 6px;
}

.chart-tooltip .content > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 20px;
  max-height: 20px;
}

.chart-tooltip .content > div > i {
  min-width: 16px;
}

.chart-tooltip .content > div > div {
  margin-left: 6px;
}

.chart-tooltip .content > div.completed {
  color: #16884e;
}

.chart-tooltip.hidden {
  visiblity: hidden;
}

.chart-tooltip.bottom:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 0;
  right: 0;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.bottom-left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 10px;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.bottom-right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  right: 10px;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.top:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 0;
  right: 0;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.top-left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 10px;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.top-right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  right: 10px;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  top: 0;
  bottom: 0;
  left: -8px;
  border-color: transparent #2e2e2e;
  border-width: 10px 10px 10px 0;
}

.chart-tooltip.right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  top: 0;
  bottom: 0;
  right: -8px;
  border-color: transparent #2e2e2e;
  border-width: 10px 0 10px 10px;
}

.fa {
  transform: none !important;
}

.upload-container .upload-section {
  max-height: 200px;
  min-height: 200px;
  height: 200px;
  max-width: 400px;
  min-width: 400px;
  width: 400px;
  border: 2px dashed #ddd;
  font-size: 20px;
  color: #bbb;
  cursor: pointer;
  position: relative;
}

.upload-container .upload-section > .upload-message {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  text-align: center;
}

.upload-container .upload-section > .upload-preview {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  background-color: #fefefe;
}

.upload-container > input[type='file'] {
  opacity: 0;
}

div.image-control {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-height: 280px;
  min-height: 280px;
  height: 280px;
  margin-top: 40px;
}

div.image-control .image-label {
  padding-top: 40px;
}

div.image-control .silent-file-input {
  width: 240px;
}

.image-buttons button {
  max-height: 25px;
  min-height: 25px;
  height: 25px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  font-size: 11px;
}

.active-upload {
  max-width: 350px;
  min-width: 350px;
  width: 350px;
}

.active-upload .file-info {
  margin-bottom: 10px;
  font-size: 14px;
}

.active-upload .file-info .file-info-size {
  font-size: 12px;
}

.active-upload .progress-bar-container {
  max-height: 18px;
  min-height: 18px;
  height: 18px;
  border-radius: 6px;
  background-color: #dedede;
}

.active-upload .progress-bar-container > .progress-bar {
  max-height: 18px;
  min-height: 18px;
  height: 18px;
  border-radius: 6px;
  background-color: #9768EB;
  font-size: 12px;
  font-weight: 600;
  color: #efefef;
  text-indent: 6px;
}

.active-upload .progress-bar-container > .progress-bar.success {
  background-color: #9768EB;
}

.active-upload .progress-bar-container > .progress-bar.error {
  background-color: #af0a2f;
}

.active-upload .message {
  margin-top: 10px;
}

.exercise_container {
  -webkit-flex: 1 0 400px;
  -ms-flex: 1 0 400px;
  flex: 1 0 400px;
  position: relative;
}

.exercise_nav {
  -webkit-flex: 1 0 400px;
  -ms-flex: 1 0 400px;
  flex: 1 0 400px;
  max-width: 400px;
  min-width: 400px;
  width: 400px;
  background-color: #ffffff;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.exercise_nav .search {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-bottom: 1px solid #bbb;
  border-right: 1px solid #bbb;
}

.exercise_nav .search input[type='text'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  border: none;
  font-size: 20px;
  font-weight: 200;
  height: 49px;
  line-height: 20px;
  text-indent: 15px;
  outline: none;
}

.exercise_nav .search button[type='reset'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  max-width: 60px;
  min-width: 60px;
  width: 60px;
  background-color: #bbb;
  border: none;
  color: #fefefe;
  font-size: 12px;
  margin: 0 10px;
  min-height: 30px;
}

.exercise_nav .search button[type='submit'] {
  -webkit-flex: 0;
  -ms-flex: 0;
  flex: 0;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  background-color: transparent;
  border: none;
  color: #fefefe;
  margin: 0px;
  min-height: 30px;
}

.exercise_nav .search i.fa {
  font-size: 20px;
  color: #bbb;
}

.exercise_nav .add {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
  padding: 10px;
}

.exercise_nav .add i.fa {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.exercise_nav .add strong {
  -webkit-flex: 0.975;
  -ms-flex: 0.975;
  flex: 0.975;
}

.exercise_nav .list {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  border-right: 1px solid #bbb;
  min-height: 10px;
  overflow-y: auto;
}

.exercise_nav .list > div:not(.filler) {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  border-bottom: 1px solid #bbb;
}

.exercise_nav .list > div:not(.filler) .detail {
  margin-left: 30px;
  margin-right: 20px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail {
  border: 1px solid #bbb;
  padding: 4px 8px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail .icon {
  color: #9768EB;
  font-size: 17px;
  margin: 0 6px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail .icon.inactive {
  color: #ccc;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides {
  margin: 20px 0;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides > div label span {
  margin-right: 9px;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides > div + div {
  margin-left: 25px;
}

.exercise_nav .list > div:not(.filler) .detail.hidden {
  display: none;
}

.exercise_nav .list > div.filler {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
}

@-moz-document url-prefix()  {
  .exercise_nav .list {
    height: 0;
  }
}

.exercise_select {
  -webkit-flex: 1 0 300px;
  -ms-flex: 1 0 300px;
  flex: 1 0 300px;
  background-color: #ffffff;
  overflow-y: auto;
}

.exercise_select .list {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-height: 10px;
  overflow-y: auto;
}

.exercise_select .list > div:not(.filler) {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  border-bottom: 1px solid #ddd;
}

.exercise_select .list > div:not(.filler) .exercise-item > div {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.exercise_select .list > div:not(.filler) .exercise-item .name {
  font-size: 18px;
}

.exercise_select .list > div:not(.filler) .exercise-item .circled-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 14px;
  width: 40px;
  height: 40px;
  line-height: 36px;
  text-align: center;
  margin: 0 12px;
}

.exercise_select .list > div:not(.filler) .exercise-item .circled-icon:hover {
  color: #9768EB;
  border-color: #9768EB;
}

.exercise_select .list > div:not(.filler) .detail {
  margin-left: 30px;
  margin-right: 20px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail {
  border: 1px solid #bbb;
  padding: 4px 8px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail .icon {
  color: #9768EB;
  font-size: 17px;
  margin: 0 6px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail .icon.inactive {
  color: #ccc;
}

.exercise_select .list > div:not(.filler) .detail .body-sides {
  margin: 20px 0;
}

.exercise_select .list > div:not(.filler) .detail .body-sides > div label span {
  margin-right: 9px;
}

.exercise_select .list > div:not(.filler) .detail .body-sides > div + div {
  margin-left: 25px;
}

.exercise_select .list > div:not(.filler) .detail.hidden {
  display: none;
}

.exercise_select .list > div.filler {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
}

@-moz-document url-prefix()  {
  .exercise_select .list {
    height: 0;
  }
}

.filters {
  max-height: 100px;
  min-height: 100px;
  height: 100px;
}

.filters > fusion-drop-down,
.filters > fusion-ordered-drop-down,
.filters > div {
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  /***** NOTE ******
    since the height is being recalculated
    only set the min-height
    @include lock-height(50px);
    ***** EBD NOTE ******/
  max-width: 50%;
  min-height: 50px;
  position: relative;
  border-bottom: 1px solid #bbb;
  border-right: 1px solid #bbb;
  padding-left: 20px;
  padding-right: 10px;
}

.filters > fusion-drop-down .select-toggle,
.filters > fusion-ordered-drop-down .select-toggle,
.filters > div .select-toggle {
  width: 100%;
  cursor: pointer;
}

.filters > fusion-drop-down .select-toggle.disabled,
.filters > fusion-ordered-drop-down .select-toggle.disabled,
.filters > div .select-toggle.disabled {
  cursor: default;
}

.filters > fusion-drop-down .select-toggle.disabled span,
.filters > fusion-ordered-drop-down .select-toggle.disabled span,
.filters > div .select-toggle.disabled span {
  font-style: italic;
}

.filters > fusion-drop-down .select-toggle.disabled i,
.filters > fusion-ordered-drop-down .select-toggle.disabled i,
.filters > div .select-toggle.disabled i {
  display: none;
}

.filters > fusion-drop-down .select-toggle span,
.filters > fusion-ordered-drop-down .select-toggle span,
.filters > div .select-toggle span {
  -webkit-flex: 0.9;
  -ms-flex: 0.9;
  flex: 0.9;
}

.filters > fusion-drop-down .select-toggle i.fa,
.filters > fusion-ordered-drop-down .select-toggle i.fa,
.filters > div .select-toggle i.fa {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.filters > fusion-drop-down .options,
.filters > fusion-ordered-drop-down .options,
.filters > div .options {
  position: absolute;
  top: 50px;
  left: 0;
  background-color: #ffffff;
  border-color: #999;
  box-shadow: 0 6px 10px 0 #999;
  max-height: 215px;
  min-width: 100%;
  overflow-y: scroll;
  z-index: 3;
}

.filters > fusion-drop-down .options > div,
.filters > fusion-ordered-drop-down .options > div,
.filters > div .options > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  white-space: nowrap;
}

.filters > fusion-drop-down .options > div:hover,
.filters > fusion-ordered-drop-down .options > div:hover,
.filters > div .options > div:hover {
  background-color: #ccc;
}

.filters > fusion-drop-down > div,
.filters > fusion-ordered-drop-down > div {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 48px;
  min-height: 48px;
  height: 48px;
}

.filters > fusion-drop-down.required .select-toggle > span,
.filters > fusion-ordered-drop-down.required .select-toggle > span {
  color: #ff0000;
}

.exercise-item {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  background-color: #ffffff;
  margin: 10px;
}

.exercise-item .icon {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.exercise-item .icon.toggle {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  font-size: 6px;
}

.exercise-item .icon.toggle.down {
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  padding-top: 24px;
}

.exercise-item .icon.toggle.right {
  -webkit-transform: rotate(-90deg);
  transform: rotate(-90deg);
}

.exercise-item .name {
  -webkit-flex: 0.9;
  -ms-flex: 0.9;
  flex: 0.9;
}

.exercise-item .name .no-wrap-ellipse {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.exercise-item.active-item {
  z-index: 1;
}

.exercise-item.active-item .icon {
  visibility: hidden;
}

.exercise-item.dragging-element {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
  transform: scale(1.1, 1.1) !important;
  transform-origin: right center !important;
}

.exercise-item.dragging-element .icon {
  visibility: hidden;
}

.no-match {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  font-size: 16px;
  font-weight: 600;
  margin: 10px;
}

/* modal junk */

.modal-container.modal-exercise-detail header {
  /* @include lock-height(75px); */
  border: none;
}

.modal-container.modal-exercise-detail header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-exercise-detail footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-exercise-detail section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-exercise-detail section:first-of-type {
  margin-top: 10px;
}

.modal-container.modal-exercise-detail section:last-of-type {
  margin-top: 20px;
  margin-bottom: 40px;
}

.modal-container.modal-exercise-detail section.video-view {
  max-width: 600px;
  min-width: 600px;
}

.modal-container.modal-exercise-detail section.image-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.modal-container.modal-exercise-detail section.image-view > img {
  max-width: 360px;
  min-width: 360px;
}

.modal-container.modal-exercise-detail .missing-media {
  width: 100%;
  border: 1px solid #efefef;
  color: #dedede;
  font-size: 24px;
  font-weight: 300;
}

.modal-container.modal-exercise-form header {
  border: none;
}

.modal-container.modal-exercise-form header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-exercise-form footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-exercise-form footer.smaller {
  margin-top: 5px;
}

.modal-container.modal-exercise-form form label button[type='reset'] {
  background-color: #dedede;
  border: none;
  border-radius: 4px;
  color: #fefefe;
  font-size: 13px;
  font-weight: bold;
  height: 33px;
  line-height: 33px;
  margin: 0px 10px;
  margin-left: 7px;
  min-height: 30px;
  min-width: auto;
  width: auto;
}

.modal-container.modal-exercise-form section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-exercise-form section:first-of-type {
  margin-top: 10px;
}

.modal-container.modal-exercise-form section:last-of-type {
  margin-top: 20px;
  margin-bottom: 40px;
}

.modal-container.modal-exercise-form section .filters {
  background-color: #f9f9f9;
  width: 100%;
}

.modal-container.modal-exercise-form section span {
  font-size: 16px;
}

.modal-container.modal-exercise-form section > span {
  margin: 10px;
  margin-left: 40px;
}

.modal-container.modal-exercise-form section > span.modal-error {
  margin-left: 230px;
  color: red;
}

.modal-container.modal-exercise-form section textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #bbb;
  font-size: 16px;
  font-weight: normal;
  margin: 10px 40px 10px 0;
  height: 140px;
  outline: 0;
  padding-top: 4px;
  padding-left: 4px;
}

.modal-container.modal-exercise-form section textarea.large {
  min-height: 300px;
}

.modal-container.modal-exercise-form section textarea.larger {
  min-height: 450px;
}

.modal-container.modal-exercise-form section label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  position: relative;
  border-top: 1px solid #bbb;
  min-height: 25px;
}

.modal-container.modal-exercise-form section label:last-of-type {
  border-bottom: 1px solid #bbb;
}

.modal-container.modal-exercise-form section label span {
  margin: 10px;
  margin-left: 40px;
  min-width: 150px;
}

.modal-container.modal-exercise-form section label input {
  -webkit-flex: 1 1 50%;
  -ms-flex: 1 1 50%;
  flex: 1 1 50%;
  border: none;
  font-size: 16px;
  line-height: 30px;
  margin: 1px;
  outline: 0;
}

.modal-container.modal-exercise-form section label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  background-color: transparent;
  border: none;
  border-left: 1px solid #bbb;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  text-indent: 10px;
}

.modal-container.modal-exercise-form section label select:focus {
  outline: 0;
}

.modal-container.modal-exercise-form section label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.modal-container.modal-exercise-form section label select::-ms-expand {
  display: none;
}

.modal-container.modal-exercise-form section label select + i.fa {
  position: absolute;
  top: 0;
  right: 20px;
  bottom: 0;
  color: #ccc;
  font-size: 16px;
  width: 20px;
  height: 20px;
  margin: auto 0;
  pointer-events: none;
  text-align: center;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div label {
  border: none;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div span {
  font-size: 18px;
  margin: 0;
  min-width: 0;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div i {
  font-size: 18px;
  margin-left: 10px;
  cursor: pointer;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div + div {
  margin-left: 25px;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label {
  border-top: none;
  border-bottom: none;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label > select {
  border-left: none;
  text-indent: 40px;
  font-size: 18px;
  color: #75777a;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label + label > select {
  border-left: 1px solid #ebebeb;
}

.modal-container.modal-exercise-form .week-selection {
  padding: 5px 15px;
  cursor: default;
}

.modal-container.modal-exercise-form .week-selection > div {
  margin: 0 10px;
  min-height: 28px;
  font-size: 18px;
  color: #a0a4a8;
  border-bottom: 2px solid transparent;
  cursor: pointer;
}

.modal-container.modal-exercise-form .week-selection > div.active {
  color: #75777a;
  border-bottom-color: #9768EB;
}

/* drag-n-drop junk */

/* should be moved to own file (clearly) */

.drag-hidden {
  visibility: hidden;
}

.drag-move-scroll-anchor {
  position: fixed;
  left: 0;
  right: 0;
  background-color: rgba(155, 155, 155, 0.275);
  height: 20px;
  z-index: 1;
}

.drag-move-scroll-anchor.top {
  top: 0;
}

.drag-move-scroll-anchor.bottom {
  bottom: 0;
}

.drop-hidden {
  display: none;
}

.drop-target:not(.drop-empty) {
  border: 2px dashed #cdd3d7;
}

.drop-target.drop-target-over:not(.add-section) {
  border: 2px dashed #4cbb17 !important;
}

.drop-target.drop-target-over.add-section > div {
  border-color: #4cbb17 !important;
}

.drop-target.drop-target-over .add-exercise {
  display: none;
}

.dragging-element {
  position: absolute;
  border: 2px solid #888;
  transform: scale(0.9, 0.9) !important;
  transform-origin: left center !important;
  z-index: 10;
  pointer-events: none;
}

@media (max-width: 768px) {
  .resp-program-menu {
    flex-direction: column;
    justify-content: flex-start;
  }

  .resp-program-menu .catalog_container > div {
    position: static;
    overflow: visible;
  }

  .resp-program-menu .opened-container,
  .resp-program-menu .closed-container {
    flex: none;
    height: auto;
    max-height: none;
  }

  .resp-program-menu .catalog-banner,
  .resp-program-menu .catalog-search,
  .resp-program-menu .catalog_nav_wrapper {
    height: auto;
  }

  .resp-program-menu .catalog_container {
    flex: none;
    min-height: auto;
    height: auto;
    position: static;
  }

  .resp-program-menu ul.catalog_nav {
    margin-bottom: 20px;
  }
}

.catalog_container {
  -webkit-flex: 1 0 350px;
  -ms-flex: 1 0 350px;
  flex: 1 0 350px;
  min-height: 500px;
  position: relative;
}

.catalog_container > div.catalog-scrollable {
  overflow-y: auto;
}

.catalog_container > div {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
}

.catalog_container > div > div.opened-container {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  height: 100%;
}

.catalog_container > div > div.closed-container {
  -webkit-flex: 1 1 52px;
  -ms-flex: 1 1 52px;
  flex: 1 1 52px;
  max-height: 52px;
}

.catalog-banner {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #ebebeb;
  background-color: #9768EB;
  margin: 1px 0;
}

.catalog-banner i.circled-icon {
  margin: 0 15px;
  border: 2px solid #9768EB;
  color: #9768EB;
}

.catalog-banner span {
  color: #efefef;
  font-size: 16px;
}

.catalog-search {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #ebebeb;
}

.catalog-search form {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background-color: #fefefe;
}

.catalog-search form input[type='text'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background-color: transparent;
  border: none;
  font-size: 20px;
  font-weight: 500;
  height: 49px;
  letter-spacing: 0.39px;
  text-indent: 15px;
  outline: none;
}

.catalog-search form button[type='reset'] {
  background-color: #dedede;
  border: none;
  border-radius: 4px;
  color: #fefefe;
  font-size: 13px;
  font-weight: bold;
  height: 33px;
  line-height: 33px;
  margin: 0px 10px;
  margin-left: 7px;
  min-height: 30px;
  min-width: auto;
  width: auto;
}

.catalog_nav_wrapper {
  height: 100%;
}

.catalog_nav {
  max-width: 350px;
  min-width: 350px;
  width: 350px;
  background-color: #ffffff;
  border-right: 1px solid #ebebeb;
  overflow-y: auto;
  height: auto;
}

.catalog_nav .category-icon {
  margin: 0 18px;
  min-width: 20px;
  font-size: 24px;
}

.catalog_nav .add-icon {
  font-size: 12px;
  margin: 0 15px;
  min-width: 12px;
}

ul.catalog_nav {
  list-style: none;
  margin: 0;
  padding: 0;
}

ul.catalog_nav li {
  background-color: #f0f0f0;
  font-size: 18px;
  font-weight: 400;
  margin: 5px 0;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  cursor: pointer;
}

ul.catalog_nav li > span {
  min-height: 45px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

ul.catalog_nav li .category-state {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  font-size: 12px;
  margin: 0 20px;
  min-width: 12px;
}

ul.catalog_nav li .category-open .category-state:before {
  content: "\E620";
}

ul.catalog_nav li .category-close .category-state:before {
  content: "\E62F";
}

ul.catalog_nav li.exercise-technique > span {
  text-indent: 20px;
  font-size: 16px;
}

ul.catalog_nav li.exercise-technique > ul {
  padding: 0;
}

ul.catalog_nav li.exercise-technique > ul li {
  font-weight: normal;
  min-height: 24px;
}

ul.catalog_nav li.exercise-technique > ul li:hover {
  text-decoration: underline;
}

ul.catalog_nav li.exercise-technique > ul li > span {
  min-height: 24px;
  text-indent: 30px;
  text-transform: none;
}

ul.catalog_nav li > ul {
  background-color: #fff;
  margin: 0;
  padding: 10px 0 0 0;
}

ul.catalog_nav li > ul li {
  background-color: #fff;
  font-size: 12px;
  font-weight: 600;
}

ul.catalog_nav li > ul li > span {
  min-height: 30px;
  text-indent: 30px;
  text-transform: uppercase;
}

ul.catalog_nav li > ul li > ul {
  padding: 0;
}

ul.catalog_nav li > ul li > ul li {
  font-weight: normal;
  min-height: 30px;
  text-indent: 50px;
}

ul.catalog_nav li > ul li > ul li:hover {
  text-decoration: underline;
}

.login-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #efefef;
}

.login-container .login-modal {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 476px;
  min-width: 476px;
  width: 476px;
  background-color: #FCFCFC;
  border: 1px solid #efefef;
  border-radius: 6px;
  padding: 47px 0 22px;
}

.login-container .login-modal > img {
  -webkit-align-self: center;
  align-self: center;
}

.login-container .login-modal .login-banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 32px;
  margin: 28px 15px 30px;
  color: #9768EB;
}

.login-container .login-modal .login-form {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.login-container .login-modal .login-form > input::-ms-clear {
  display: none;
}

.login-container .login-modal .login-form > input {
  max-height: 51px;
  min-height: 51px;
  height: 51px;
  border-top: 1px solid #ddd;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  text-align: center;
}

.login-container .login-modal .login-form > input::-webkit-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input:-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input::-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input:-ms-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input + input {
  border-top: 0;
}

.login-container .login-modal .login-form .login-buttons {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-evenly;
  justify-content: space-evenly;
  margin: 0px 30px;
}

.login-container .login-modal .login-form .login-buttons > button {
  -webkit-align-self: center;
  align-self: center;
  max-height: 57px;
  min-height: 57px;
  height: 57px;
  width: 100%;
}

.login-container .login-modal .reset-form {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.login-container .login-modal .reset-form > input::-ms-clear {
  display: none;
}

.login-container .login-modal .reset-form > input {
  margin: 28px 0 0;
  max-height: 51px;
  min-height: 51px;
  height: 51px;
  border-top: 1px solid #ddd;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  text-align: center;
}

.login-container .login-modal .reset-form > input::-webkit-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input:-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input::-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input:-ms-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input + input {
  border-top: 0;
}

.login-container .login-modal .reset-form .secondPassword {
  margin: 0 0 0;
}

.login-container .login-modal .reset-form .button-collection {
  -webkit-align-self: center;
  align-self: center;
  margin: 28px 0 0;
}

.login-container .login-modal .reset-form .button-collection > button {
  max-height: 57px;
  min-height: 57px;
  height: 57px;
  width: 200px;
}

.login-container .login-modal .message {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 11px 15px;
}

.login-container .login-modal .description {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 70px;
  min-height: 70px;
  height: 70px;
  margin: 11px 15px;
}

.login-container .login-modal .login-link {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 12px;
}

.login-container .login-modal .login-link > a {
  color: #aaa;
  word-spacing: 2px;
}

.loginRememberMe {
  margin: 28px 0 0;
  -webkit-align-self: center;
  align-self: center;
  display: block;
}

.loginRememberMe .checkbox-input {
  -webkit-align-items: center;
  align-items: center;
}

.loginRememberMe .checkbox-input i {
  font-size: 25px;
}

.loginRememberMe .checkbox-input span {
  color: #75777A;
}

.loginForgotPassLink {
  margin: 31px 0 0;
  -webkit-align-self: center;
  align-self: center;
  cursor: pointer;
  color: #AAB0B7;
  text-decoration-line: underline;
  font-size: 14px;
}

.loginForgotPassLink a {
  color: inherit;
}

.modal-container section.profile-form {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 10px;
  min-width: 400px;
}

.modal-container section.profile-form label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  margin: 5px 9px;
  max-width: 325px;
}

.modal-container section.profile-form label span {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-right: 6px;
  min-width: 100px;
}

.modal-container section.profile-form label input {
  width: 100%;
}

.modal-container.modal-athlete-form {
  overflow: auto;
  width: 740px;
}

.modal-container.modal-athlete-form header {
  border: none;
}

.modal-container.modal-athlete-form header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-athlete-form footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-athlete-form footer.smaller {
  margin-top: 5px;
}

.modal-container.modal-athlete-form section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-athlete-form section:first-of-type {
  margin-top: 10px;
  border-bottom: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section:not(:first-of-type) {
  margin-top: 20px;
}

.modal-container.modal-athlete-form section div.section-label {
  margin-left: 40px;
  margin-bottom: 10px;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: bold;
  text-transform: uppercase;
}

.modal-container.modal-athlete-form section div.options-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
}

.modal-container.modal-athlete-form section div.option-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-left: 40px;
  padding-bottom: 35px;
}

.modal-container.modal-athlete-form section div.option-container div.option-label {
  font-size: 13px;
  max-width: 115px;
  min-width: 115px;
  width: 115px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .radio-input {
  margin-right: 20px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .radio-input > span {
  font-size: 13px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input {
  position: relative;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border: 1px solid #ebebeb;
  border-radius: 3px;
  color: inherit;
  font-size: 13px;
  line-height: 25px;
  min-width: 160px;
  outline: 0;
  padding: 0 28px 0 10px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input select::-ms-expand {
  display: none;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input i.icon-caret-down {
  position: absolute;
  top: 50%;
  right: 10px;
  margin-top: -6px;
  color: #D9DBDC;
  pointer-events: none;
}

.modal-container.modal-athlete-form section .row-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section .row-container:not(:first-of-type) {
  border-top: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section .row-container .space-between {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.modal-container.modal-athlete-form section > span {
  margin: 10px;
  margin-left: 40px;
}

.modal-container.modal-athlete-form section > span.modal-error {
  margin-left: 230px;
  color: red;
}

.modal-container.modal-athlete-form section .dob-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  border-right: 1px solid #ebebeb;
  width: 50%;
}

.modal-container.modal-athlete-form section .dob-field span {
  margin: 10px 10px 10px 40px;
}

.modal-container.modal-athlete-form section .dob-field input {
  border: none;
}

.modal-container.modal-athlete-form section label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  -webkit-flex: 1 1 0%;
  -ms-flex: 1 1 0%;
  flex: 1 1 0%;
  position: relative;
  min-height: 25px;
}

.modal-container.modal-athlete-form section label:not(:first-of-type) {
  border-left: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section label.feet-field {
  -webkit-flex: 0.6 1 0%;
  -ms-flex: 0.6 1 0%;
  flex: 0.6 1 0%;
}

.modal-container.modal-athlete-form section label.inches-field {
  -webkit-flex: 0.395 1 0%;
  -ms-flex: 0.395 1 0%;
  flex: 0.395 1 0%;
}

.modal-container.modal-athlete-form section label span {
  margin: 10px;
  margin-left: 40px;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: 500;
}

.modal-container.modal-athlete-form section label .invalid-input {
  border: 1px solid red;
}

.modal-container.modal-athlete-form section label .validation-container {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section label .validation-container .validation-message {
  position: absolute;
  z-index: 10;
  top: 55px;
  padding: 3px 6px;
  border-radius: 5px;
  background-color: #2e2e2e;
  color: white;
  border: 1px solid #2e2e2e;
}

.modal-container.modal-athlete-form section label .validation-container .validation-message:after {
  position: absolute;
  left: 45%;
  top: -10px;
  border-color: #2e2e2e transparent;
  border-style: solid;
  border-width: 0px 10px 10px 10px;
  height: 0px;
  width: 0px;
  content: " ";
}

.modal-container.modal-athlete-form section label .validation-container .validation-message span {
  margin: 0px;
  color: inherit;
  font-weight: inherit;
}

.modal-container.modal-athlete-form section label input {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  border-radius: 0px;
  padding: 0px;
  font-size: 13px;
  line-height: 27px;
  outline: 0;
  margin: 1px;
  text-indent: 10px;
}

.modal-container.modal-athlete-form section label input.measurement {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  max-width: 55px;
  min-width: 55px;
  width: 55px;
}

.modal-container.modal-athlete-form section label .date-input {
  width: 220px;
}

.modal-container.modal-athlete-form section label .imperial-height {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 45%;
  position: relative;
}

.modal-container.modal-athlete-form section label .imperial-height.inches {
  min-width: 80%;
}

.modal-container.modal-athlete-form section label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  background-color: transparent;
  border: none;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  text-indent: 10px;
}

.modal-container.modal-athlete-form section label select:focus {
  outline: 0;
}

.modal-container.modal-athlete-form section label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.modal-container.modal-athlete-form section label select::-ms-expand {
  display: none;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down {
  position: absolute;
  top: 25px;
  right: 20px;
  color: #D9DBDC;
  font-size: 6px;
  pointer-events: none;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down.feet {
  top: 10px;
  right: 35px;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down.inches {
  top: 10px;
  right: 50px;
}

.modal-container.modal-athlete-form section label select.imperial {
  text-indent: 30px;
}

@media (max-width: 768px) {
  .modal-container.modal-athlete-form {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
  }

  .modal-container.modal-athlete-form footer {
    position: sticky;
    bottom: 0;
    background-color: #fff;
    border-top: 1px solid #ebebeb;
    z-index: 1;
  }

  .modal-container.modal-athlete-form section {
    min-width: 0;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) {
    flex-direction: column;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) label {
    flex: 1 1 auto;
    min-height: 44px;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) label:not(:first-of-type) {
    border-left: none;
    border-top: 1px solid #ebebeb;
  }

  .modal-container.modal-athlete-form section .dob-field {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #ebebeb;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between {
    padding-top: 10px;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .options-container {
    width: 100%;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .options-container .option-container {
    margin-left: 40px;
    padding-bottom: 20px;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .image-control {
    width: 100%;
    padding: 10px 20px 20px 40px;
    border-top: 1px solid #ebebeb;
    margin-top: 0;
  }
}

.select-all {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 25px;
}

.select-athlete-list {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 45px 65px 45px 65px;
  padding: 15px 0px;
  min-height: 80px;
  max-height: 400px;
  min-width: 300px;
  overflow-x: auto;
}

.select-athlete-list .athletes {
  height: 300px;
}

.select-athlete-list .athletes .athlete-name {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: 500;
  margin-right: 15px;
}

.select-athlete-list .athletes .athlete-name.all {
  font-size: 14px;
}

.modal-container.modal-terms {
  overflow: auto;
  width: 740px;
  padding: 20px 40px;
}

.modal-container.modal-terms footer {
  margin-top: 25px;
}

.modal-container.modal-terms footer button {
  width: auto;
}

.admin-menu {
  -webkit-align-items: flex-end;
  align-items: flex-end;
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.admin-menu > div {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 1px;
}

.admin-menu > div.active {
  border-bottom: 4px solid #9768EB;
  color: #efefef;
}

.admin-menu > div:not(.active):hover {
  border-bottom: 4px solid #a0a4a8;
  cursor: pointer;
}

.admin-menu > div a {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border: none;
  color: inherit;
  display: inline-block;
  outline: none;
  text-decoration: none;
}

.admin-menu > div span.marker {
  position: absolute;
  top: 0;
  right: -30px;
  width: 23px;
  height: 22px;
  background-color: #ff0000;
  border-radius: 50%;
  text-align: center;
}

.admin-menu > div + div {
  margin-left: 35px;
}

.admin-sub-menu {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: normal;
  position: relative;
  letter-spacing: 1px;
  margin-top: 10px;
}

.admin-sub-menu > div {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
}

.admin-sub-menu > div.active {
  border-bottom: 2px solid #9768EB;
  color: #efefef;
}

.admin-sub-menu > div:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.admin-sub-menu > div + div {
  margin-left: 20px;
}

.tab-menu {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  border-top: 1px solid #ddd;
  border-right: 1px solid #ddd;
  padding: 0 10px;
}

.tab-menu span {
  font-weight: 600;
}

.tab-menu.selected {
  background-color: #9768EB;
}

.tab-menu.selected span {
  color: #fefefe;
}

.tab-menu:first-child {
  border-left: 1px solid #ddd;
}

.tab-view {
  border: 1px solid #ccc;
  padding: 5px;
}

.tab-view-list {
  list-style-type: none;
  padding-left: 0;
}

.test-container-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-top: 25px;
}

@media (max-width: 768px) {
  .test-container-header {
    -webkit-flex-direction: column;
    flex-direction: column;
  }
}

.test-container-header .title {
  margin: 0;
  font-weight: 500;
  font-size: 34.5px;
  color: #75787B;
  line-height: 40px;
  letter-spacing: -0.6px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 46px;
}

.test-container-header .main-col {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  padding-right: 20px;
}

.test-container-header .side-col {
  text-align: right;
}

@media (max-width: 768px) {
  .test-container-header .side-col {
    text-align: left;
  }
}

.test-container-header .side-col > div:not([class]) {
  font-size: 16.59px;
  letter-spacing: 0.31px;
  line-height: 22px;
}

.test-result-container {
  margin-bottom: 30px;
}

.test-result-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 0 0 10px;
}

.test-result-header .title {
  font-weight: 500;
  font-size: 34.5px;
  color: #9768EB;
  line-height: 40px;
  margin-bottom: 6px;
  letter-spacing: -0.6px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 46px;
  margin: 0 0 6px;
}

.input-results {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.results-column-container {
  -webkit-column-count: 2;
  -moz-column-count: 2;
  column-count: 2;
  -webkit-column-gap: 4em;
  -moz-column-gap: 4em;
  column-gap: 4em;
}

@media (max-width: 768px) {
  .results-column-container {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1;
  }
}

.exercise-details {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid-column;
  -moz-column-break-inside: avoid;
  -o-column-break-inside: avoid;
  -ms-column-break-inside: avoid;
  break-inside: avoid-column;
}

.linked-results-header {
  font-weight: 500;
  font-size: 34.5px;
  color: #75787B;
  line-height: 40px;
  letter-spacing: -0.6px;
}

.tested-by {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
}

.perform-additional-results {
  background-color: #efefef;
}

.performance-results {
  padding: 80px 0 80px;
  max-width: 778px;
  margin: 0 auto;
}

.performance-results .h2 {
  margin: 0 0 20px;
}

.performance-results section {
  page-break-inside: avoid;
  padding-bottom: 32px;
}

.performance-results section + section {
  padding-top: 32px;
}

.perform-notes-section {
  max-width: 778px;
  margin: 0 auto;
  padding: 0 0 120px 0;
}

.perform-notes-section .header {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
  padding: 0 0 12px;
}

.perform-notes-section .prose {
  font-size: 14px;
  font-weight: 500;
  color: #929392;
  line-height: 1.5;
}

.stress-index-block {
  margin-top: 45px;
}

.stress-index-block canvas {
  width: 1124px;
  height: 80px;
}

@media (max-width: 768px) {
  .stress-index-block canvas {
    width: 100%;
    height: auto;
  }
}

.stress-index-block img {
  max-width: 100%;
}

.stress-index-block > .header {
  margin-bottom: 6px;
}

.stress-index-block > .header .title {
  font-weight: 400;
  font-size: 18px;
  color: #75787B;
  letter-spacing: 1px;
  line-height: 1;
  text-transform: uppercase;
  margin: 0 0 18px;
}

.cat-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-weight: 400;
  font-size: 18px;
  color: #75787B;
  letter-spacing: 1px;
  line-height: 1;
  margin: 40px 0 18px;
}

.cat-score {
  color: #fff;
  padding: 3px 5px;
  margin-left: 20px;
}

.cat-score.green {
  background: #00B96D;
}

.cat-score.green + .dot {
  background: #00B96D;
}

.cat-score.yellow {
  background: #D7BB43;
}

.cat-score.yellow + .dot {
  background: #D7BB43;
}

.cat-score.red {
  background: #D1404B;
}

.cat-score.red + .dot {
  background: #D1404B;
}

.clinical-field {
  min-height: inherit;
  height: inherit;
}

textarea.clinical-notes {
  height: 70px;
  resize: none;
  margin-top: 10px;
}

.clinical-sub-note {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  margin-left: 25px;
}

.tree-line {
  height: 35px;
  width: 25px;
  border-left: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
}

.clinical-notes-section {
  margin: 38px 0 60px;
  max-width: 560px;
}

label.clinical-form-field {
  display: block;
  border: none;
  margin: 0 40px;
}

hr.clinical-report-line {
  border: none;
  padding: 0;
  height: 1px;
  background: #D8D8D8;
  margin: 40px 0;
  clear: both;
}

span.clinical-label {
  display: block;
  padding: 10px 0px;
  min-width: 0;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
}

fusion-ordered-drop-down.clinical-drop-down {
  border: 1px solid #bbb;
  max-width: 626px;
  width: 626px;
  padding-left: 20px !important;
  max-height: 100px !important;
}

fusion-ordered-drop-down.clinical-drop-down > div.column-container {
  line-height: 20px;
  max-height: 100px;
  height: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .select-toggle span.filtered {
  white-space: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .options {
  position: absolute;
  top: 50px;
  left: 0;
  background-color: #ffffff;
  border-color: #999;
  box-shadow: 0 6px 10px 0 #999;
  max-height: 600px;
  min-width: 100%;
  overflow-y: scroll;
  z-index: 3;
}

fusion-ordered-drop-down.clinical-drop-down .options > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  white-space: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .options > div:hover {
  background-color: #ccc;
}

.clinical-signature {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-top: 30px;
  font-size: 14px;
  font-weight: 500;
  color: #929392;
  line-height: 1.5;
}

.clinical-signature > div {
  padding: 0px 15px 0px 15px;
}

.print-only {
  display: none;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.test-athlete-name {
  color: #75777A;
  font-size: 18px;
  letter-spacing: 0.32px;
  font-weight: 400;
  line-height: 1.62;
  letter-spacing: 0.32px;
}

.perform-select {
  min-width: 133px;
  font-size: 18px;
  color: #75777A;
  border: 2px solid #D8D8D8;
  border-radius: 4px;
  height: 38px;
}

.recommended {
  margin-left: 10px;
  font-weight: bold;
  font-size: 13px;
  color: #c42a3b;
  text-transform: uppercase;
  display: inline-block;
  position: relative;
  top: -2px;
}

.recommended label {
  margin-left: 3px;
  position: relative;
  top: -2px;
}

/* --------------------------------------------
R+R Daily Test v2
----------------------------------------------*/

h3 span {
  color: #9768EB;
}

.rr-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  max-width: 700px;
  height: 55px;
  border: 1px solid #cdcdcd;
  border-radius: 5px;
  background: #fff;
  overflow: hidden;
}

.rr-menu .custom {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.rr-menu .custom:not(:first-child) {
  border-left: 1px solid #cdcdcd;
}

.rr-menu .custom input {
  position: absolute;
  opacity: 0;
}

.rr-menu .custom input:checked ~ label {
  color: #fff;
  background: #9768EB;
}

.rr-menu .custom label {
  display: block;
  height: 55px;
  line-height: 55px;
  text-align: center;
  cursor: pointer;
  font-weight: bold;
}

.rr-menu .custom label:hover {
  background: #eee;
}

.rr-key {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  max-width: 700px;
  margin-top: 10px;
  color: #9768EB;
}

.rr-key label {
  width: 33.3%;
}

.rr-key label:nth-child(2) {
  text-align: center;
}

.rr-key label:nth-child(3) {
  text-align: right;
}

.repeated-shift-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.repeated-shift-layout .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.repeated-shift-layout .test-row:first-of-type {
  margin-bottom: 5px;
}

.repeated-shift-layout .test-row:last-of-type {
  margin-bottom: 5px;
}

.repeated-shift-layout .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 15px;
}

.repeated-shift-layout .test-row .drop-off {
  color: #9768EB;
  font-size: 18px;
  line-height: 1.62;
}

.repeated-shift-layout .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.repeated-shift-layout .test-row .measurement-field:first-of-type {
  margin-left: 289px;
}

.repeated-shift-layout .test-row .measurement-field:not(:first-of-type) {
  margin-left: 23px;
}

.repeated-shift-layout .measurement-label {
  color: #75777A;
  margin-right: 3px;
  padding-right: 18px;
  width: 10px;
}

.y-balance-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.y-balance-layout .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 5px;
}

.y-balance-layout .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 20px;
}

.y-balance-layout .test-row .sub-label {
  padding-left: 35px;
}

.y-balance-layout .test-row .diff {
  margin-left: 51px;
  color: #9768EB;
  font-size: 18px;
  line-height: 1.92;
}

.y-balance-layout .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-right: 10px;
}

.y-balance-layout .test-row .measurement-field:first-of-type {
  margin-left: 275px;
}

.y-balance-layout .test-row .measurement-field .measurement-label {
  color: #75777A;
  margin-right: 3px;
  width: 10px;
}

.measurement-group {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.measurement-group .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 5px;
}

.measurement-group .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 20px;
}

.measurement-group .test-row .sub-label {
  padding-left: 35px;
}

.measurement-group .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-right: 23px;
}

.measurement-group .test-row .measurement-field:first-of-type {
  margin-left: 275px;
}

.measurement-group .test-row .measurement-field .measurement-label {
  color: #75777A;
  margin-right: 3px;
  width: 10px;
}

.test-results-button {
  width: 100%;
  width: -webkit-fill-available;
}

@media (max-width: 768px) {
  .reports-resp-header {
    -webkit-flex-direction: column !important;
    flex-direction: column !important;
  }

  .reports-resp-header .resp-header-actions {
    justify-content: flex-start;
  }
}

.progress-report-options {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 30px 0 5px;
  gap: 10px;
  flex-wrap: wrap;
}

.progress-report-options .date-ranges {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin-left: 30px;
  gap: 20px;
}

@media (max-width: 768px) {
  .progress-report-options .date-ranges {
    margin-left: 0;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }
}

.progress-report-nodata {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 250px;
  font-size: 20px;
}

.report-chart-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.report-chart-container .report-chart-details {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin-top: 30px;
  margin-left: 20px;
}

.report-chart-container .report-chart-details .report-chart-detail {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.report-chart-container .report-chart-details .report-chart-detail.team,
.report-chart-container .report-chart-details .report-chart-detail.total {
  margin-top: 15px;
}

.report-chart-container .report-chart-details .report-chart-detail > div {
  min-width: 130px;
  min-height: 90px;
  margin: 0 10px;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail > div {
    min-width: calc(33% - 18px);
    max-width: calc(33% - 18px);
  }
}

.report-chart-container .report-chart-details .report-chart-detail .report-detail-chart-line > canvas {
  width: 130px;
  height: 20px;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail .report-detail-chart-line > canvas {
    width: 100% !important;
    height: 20px !important;
  }
}

.report-chart-container .report-chart-details .report-chart-detail .score-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  line-height: 30px;
  padding-top: 15px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .score {
  font-size: 30px;
  font-weight: 100;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail .score-container .score {
    font-size: 24px;
  }
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin: 0 10px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.increase {
  color: #20b769;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.increase i.fa {
  margin-top: 8px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.decrease {
  color: #c42a3b;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.decrease i.fa {
  margin-bottom: 4px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.perform-increase i.fa {
  margin-top: 8px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.perform-decrease i.fa {
  margin-bottom: 4px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change i.fa {
  min-width: 12px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies {
  padding-top: 0px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-top: 10px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies .trophy-place {
  font-size: 30px;
  font-weight: 100;
  margin-left: 10px;
}

.report-details-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  margin-top: 30px;
  background-color: #ffffff;
}

.report-details-container .title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-self: center;
  align-self: center;
  max-width: 1024px;
  min-width: 1024px;
  width: 1024px;
  margin-bottom: 30px;
  font-size: 20px;
}

.report-details {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-bottom: 50px;
}

@media (max-width: 768px) {
  .report-details {
    overflow: auto;
  }
}

.report-details > div {
  padding-bottom: 10px;
}

.report-details .change {
  position: absolute;
  top: 0;
  right: -8px;
  min-width: 70px;
  line-height: 20px;
}

.report-details .change > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin: 0 10px;
  font-size: 12px;
}

.report-details .change > div.increase {
  color: #20b769;
}

.report-details .change > div.increase i.fa {
  margin-top: 8px;
}

.report-details .change > div.decrease {
  color: #c42a3b;
}

.report-details .change > div.decrease i.fa {
  margin-bottom: 4px;
}

.report-details .change > div.perform-increase i.fa {
  margin-top: 8px;
}

.report-details .change > div.perform-decrease i.fa {
  margin-bottom: 4px;
}

.report-details .change > div i.fa {
  min-width: 12px;
}

.report-details .names-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  min-width: 250px;
}

.report-details .names-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
  min-width: 180px;
  padding-left: 30px;
}

.report-details .names-container .header-row {
  background-color: #dfdfdf;
}

.report-details .names-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .names-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .names-container .detail-row > div {
  min-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.report-details .names-container .detail-row:nth-child(odd) {
  background-color: #242424;
  color: #f7f7f7;
}

.report-details .names-container .detail-row:nth-child(even) {
  background-color: #2e2e2e;
  color: #f7f7f7;
}

.report-details .names-container .detail-row.sub-total {
  background-color: #d4d4d4;
  color: #75787b;
  font-size: 12px;
  text-transform: uppercase;
}

.report-details .names-container .detail-row.sub-total + .sub-total {
  background-color: #dfdfdf;
}

.report-details .names-container .detail-row.total {
  background-color: #9768EB;
  color: #f7f7f7;
  font-size: 12px;
  text-transform: uppercase;
}

.report-details .names-container .detail-row .detail-row-position {
  margin-left: 15px;
}

.report-details .info-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.report-details .info-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 40px;
  min-width: 110px;
}

.report-details .info-container .header-row {
  background-color: #dfdfdf;
}

.report-details .info-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .info-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .info-container .detail-row:nth-child(odd) {
  background-color: #efefef;
}

.report-details .info-container .detail-row:nth-child(even) {
  background-color: #fefefe;
}

.report-details .scores-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  width: auto;
  white-space: nowrap;
  overflow-y: hidden;
  overflow-x: scroll;
  padding-right: 10px;
}

@media (max-width: 768px) {
  .report-details .scores-container {
    overflow-y: unset;
    overflow-x: unset;
  }
}

.report-details .scores-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.report-details .scores-container > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 40px;
  min-width: 210px;
}

.report-details .scores-container > div:first-child .header-row {
  border-left: 1px solid #ccc;
}

.report-details .scores-container > div:first-child .detail-row {
  border-left: 1px solid #ccc;
}

.report-details .scores-container .header-row {
  background-color: #dfdfdf;
  border-right: 1px solid #ccc;
}

.report-details .scores-container .header-row.right-left > span {
  min-width: 55px;
  text-align: center;
}

.report-details .scores-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .scores-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .scores-container .detail-row {
  border-right: 1px solid #ccc;
}

.report-details .scores-container .detail-row:nth-child(odd) {
  background-color: #efefef;
}

.report-details .scores-container .detail-row:nth-child(even) {
  background-color: #fefefe;
}

.report-details .scores-container .detail-row > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.report-details .scores-container .detail-row > div.right-left > span {
  min-width: 55px;
  font-size: 14px;
  text-align: center;
}

.report-details .scores-container .detail-row > div.change-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  position: relative;
}

.progress-report-bodymap {
  max-height: 213px;
  max-width: 100px;
}

.progress-report-hidden {
  visibility: hidden;
}

/* .program-group-dropdown-container and .report-programs-container lived here.
   Both were markup on the Programs tab only (progressreport.html), which now
   renders .programs-details instead - see _programs_details.scss. Nothing else
   in either bundle referenced them. */

/* Tab bar + header actions for the progress report page (/reports/:athleteId).

   The underline tabs are the same pattern as the athlete profile page
   (_profile_athlete.scss). Tokens are restated locally rather than reaching
   for $athlete-profile-*, which is file-local to that partial by convention.

   Everything here lives inside .print-node's .noprint header, so none of it
   reaches the jsPDF capture in test_results_pdf.js:generateProgressReport.

   Traps this build has: no global border-box reset (fold borders into fixed
   sizes by hand), no autoprefixer, and a global `button` rule that forces
   min-width 110px + uppercase + a lock-height - see unstyle-button. */

.progress-report-layout {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding: 6px 20px 0 20px;
  background-color: #f6f6f7;
}

.progress-report-layout > .view-container {
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
  width: auto;
}

.progress-report-tabs {
  border-bottom: 1px solid #e7e7e7;
  display: flex;
  font-family: 'Nudista', sans-serif;
  gap: 24px;
  margin: 0;
}

.progress-report-tabs__tab {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: #6d6d6d;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 15px;
  margin-bottom: -1px;
  padding: 8px 4px 0;
  text-transform: none;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.progress-report-tabs__tab:hover {
  color: #7355b5;
}

.progress-report-tabs__tab:focus {
  outline: none;
}

.progress-report-tabs__tab--active {
  border-bottom-color: #9768eb;
  color: #6941c6;
}

.progress-report-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 28px 0 0;
}

.progress-report-head__title {
  color: #120d1c;
  font-family: 'Nudista', sans-serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 100%;
  margin: 0;
  min-height: 0;
}

.progress-report-head__actions {
  display: flex;
  flex-shrink: 0;
  gap: 8px;
}

.progress-report-head__action {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  align-items: center;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  box-sizing: border-box;
  color: #4f4f4f;
  cursor: pointer;
  display: inline-flex;
  height: 40px;
  justify-content: center;
  padding: 0;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  width: 40px;
}

.progress-report-head__action:hover:not([disabled]) {
  background: #f2edfc;
  border-color: #9768eb;
  color: #9768eb;
}

.progress-report-head__action:focus {
  border-color: #9768eb;
  box-shadow: 0 0 0 2px #e0d5f5;
  outline: none;
}

.progress-report-head__action[disabled] {
  background: #ffffff;
  border-color: #e7e7e7;
  color: #b0b0b0;
  cursor: default;
}

.progress-report-head__action svg {
  display: block;
  height: 20px;
  width: 20px;
}

.progress-report-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 96px 24px;
  text-align: center;
  min-height: calc(100vh - 250px);
}

.progress-report-empty__title {
  margin: 0;
  color: #4f4f4f;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 20px;
  text-align: center;
}

.progress-report-empty__description {
  margin: 0;
  color: #4f4f4f;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 20px;
  text-align: center;
}

.progress-report-empty__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 8px;
  box-sizing: border-box;
  width: 180px;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin: 24px 0 0;
  padding: 12px 16px;
  background: #ffffff;
  border: 1px solid #9768eb;
  border-radius: 4px;
  box-shadow: none;
  color: #9768eb;
  cursor: pointer;
  font-family: 'Nudista-web', 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 100%;
  text-align: center;
  text-transform: none;
  white-space: nowrap;
}

.progress-report-empty__cta:hover:not([disabled]) {
  background: #f2edfc;
  box-shadow: none;
}

.progress-report-empty__cta[disabled] {
  background: #d9dbdc;
  border-color: #d9dbdc;
  color: #ffffff;
  cursor: default;
}

.progress-report-archives {
  margin-top: 8px;
}

@media (max-width: 900px) {
  .progress-report-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .progress-report-tabs {
    gap: 16px;
    overflow-x: auto;
  }

  .progress-report-empty {
    min-height: 320px;
  }
}

/* The "Detailed Test Results" card at the bottom of the progress report
   (/reports/:athleteId, views/progressreport.html).

   Deliberately NOT a restyle of .report-details-container / .report-details in
   _progress_report.scss: teamreport.html:392 renders that same markup against
   those same rules, so editing them in place would drag the team report along
   with it. This block is applied to the progress view only; the team report
   keeps the legacy dark/zebra grid.

   The grid is three parallel flex columns (names / info / scores), not a
   <table>, and stays that way: the names column holds still while
   .progress-details__scores scrolls horizontally, and the ng-repeats are
   transposed (vm.detailNames drives rows, vm.detailDates drives columns, each
   column carrying its own entries array). Turning it into a table would need
   row-major data, which is a controller change, not a restyle.

   Because the columns are independent flex stacks, rows only line up because
   every row in every column agrees on $ptd-row-h. Row separators are therefore
   drawn with an inset box-shadow rather than a border - a border would add 1px
   of layout height per row and walk the columns out of register down the table.

   Score colours come from .red-text / .yellow-text / .green-text
   (_base.scss:316-323), interpolated from the API's riskColor. Those are 0,1,0
   selectors, so nothing here may set `color` on a descendant span of a cell: an
   0,1,1 rule would silently win and flatten the colour coding.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-details {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  align-self: flex-start;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 50px;
  padding: 20px;
}

.progress-details .red-text {
  color: #F04438;
}

.progress-details .yellow-text {
  color: #E5A633;
}

.progress-details .green-text {
  color: #12B76A;
}

.progress-details__title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #120d1c;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  margin: 0 0 20px;
}

.progress-details__type-filter {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.progress-details__type-label {
  color: #4F4F4F;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
}

.progress-details__type-filter .select-pill .dropdown-wrapper .trigger.pill {
  height: 32px;
}

.progress-details__grid {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  display: inline-flex;
  max-width: 100%;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.progress-details__columns {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  overflow: hidden;
}

.progress-details__names {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin-bottom: -1px;
  min-width: 250px;
}

.progress-details__info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin-bottom: -1px;
}

.progress-details__scores {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: -1px;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  width: auto;
}

.progress-details__column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

.progress-details__head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  min-height: 34px;
  text-transform: none;
}

.progress-details__row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  min-height: 44px;
}

.progress-details__names .progress-details__head,
.progress-details__names .progress-details__row {
  min-width: 180px;
  padding-left: 20px;
}

.progress-details__names .progress-details__head,
.progress-details__info--unit .progress-details__head {
  font-weight: 500;
}

.progress-details__names .progress-details__row {
  color: #1f1f28;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.progress-details__names .progress-details__row > div {
  min-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.progress-details__names .progress-details__row--subtotal {
  color: #120d1c;
  font-style: italic;
  font-weight: 600;
}

.progress-details__names .progress-details__row--total {
  font-weight: 600;
}

.progress-details--perform .progress-details__names .progress-details__row {
  font-weight: 600;
}

.progress-details--perform .progress-details__names .progress-details__row--subtotal {
  font-style: normal;
}

.progress-details--perform .progress-details__names .progress-details__row--difference {
  font-style: italic;
  font-weight: 500;
}

.progress-details__info .progress-details__head,
.progress-details__info .progress-details__row {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 110px;
  padding: 0 12px;
}

.progress-details__info--unit .progress-details__head,
.progress-details__info--unit .progress-details__row {
  min-width: 90px;
}

.progress-details__unit-pill {
  align-items: center;
  border-radius: 16px;
  box-sizing: border-box;
  display: inline-flex;
  font-size: 12px;
  font-weight: 600;
  height: 22px;
  justify-content: center;
  line-height: 16px;
  mix-blend-mode: multiply;
  padding: 2px 8px;
}

.progress-details__unit-pill--percent {
  width: 26px;
}

.progress-details__unit-pill--cm,
.progress-details__unit-pill--ft,
.progress-details__unit-pill--in,
.progress-details__unit-pill--kg,
.progress-details__unit-pill--lb {
  width: 34px;
}

.progress-details__unit-pill--sec {
  width: 37px;
}

.progress-details__unit-pill--cm,
.progress-details__unit-pill--ft,
.progress-details__unit-pill--in {
  background: #FDEAD7;
  color: #B93815;
}

.progress-details__unit-pill--kg,
.progress-details__unit-pill--lb {
  background: #ECE9FE;
  color: #5925DC;
}

.progress-details__unit-pill--percent {
  background: #FCE7F6;
  color: #C11574;
}

.progress-details__unit-pill--sec {
  background: #D1E9FF;
  color: #175CD3;
}

.progress-details__unit-pill--reps {
  background: #D3F8DF;
  color: #17803D;
}

.progress-details__unit-pill--score {
  background: #E9EAEB;
  color: #414651;
}

.progress-details__scores .progress-details__head,
.progress-details__scores .progress-details__row {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 210px;
  padding: 0 12px;
}

.progress-details__date {
  color: #7355B5;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  text-decoration: underline;
}

.progress-details__head--sides > span {
  min-width: 55px;
  text-align: center;
}

.progress-details__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 500;
}

.progress-details__sides > span {
  font-size: 14px;
  min-width: 55px;
  text-align: center;
}

.progress-details__row--total {
  background-color: #f7f7f8;
  color: #120d1c;
  font-weight: 600;
  text-transform: none;
}

.progress-details__row--group-header {
  background-color: #F6F6F6;
  min-height: 24px;
}

.progress-details__group-label {
  color: #6D6D6D;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  text-transform: uppercase;
}

.progress-details__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  box-shadow: inset 0 1px 0 #ececec;
  box-sizing: border-box;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  min-height: 36px;
  padding-left: 20px;
}

.progress-details__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.progress-details__legend-item + .progress-details__legend-item {
  margin-left: 24px;
}

.progress-details__legend-dot {
  border-radius: 50%;
  display: inline-block;
  height: 8px;
  margin-right: 8px;
  width: 8px;
}

.progress-details__legend-dot--poor {
  background-color: #F04438;
}

.progress-details__legend-dot--moderate {
  background-color: #E5A633;
}

.progress-details__legend-dot--good {
  background-color: #12B76A;
}

@media (max-width: 768px) {
  .progress-details {
    padding: 16px;
  }

  .progress-details__columns {
    overflow-x: auto;
    overflow-y: hidden;
  }

  .progress-details__scores {
    overflow-x: unset;
    overflow-y: unset;
  }

  .progress-details__legend {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    padding: 8px 0 8px 20px;
  }
}

/* The "Detailed Programs Results" card at the bottom of the progress report's
   Programs tab (/reports/:athleteId, views/progressreport.html).

   Sibling of _progress_details.scss and deliberately its own block rather than
   a modifier of it. The two cards share a shell - same border, radius, shadow,
   title bar, header/row heights and hairline treatment - but nothing else:
   .progress-details is three parallel flex columns because its data arrives
   transposed, while vm.detailPrograms is one object per row, so this one is a
   plain row-major table. Sharing a class would mean carrying that column
   machinery for a table that has no use for it.

   The shell constants below are restated rather than imported from
   _progress_details.scss, because SCSS variables are file-local unless hoisted
   to _design_tokens.scss. If you change a row height in one card, change it in
   the other or the two stop reading as one family.

   Replaces .report-programs-container / .program-group-dropdown-container,
   which were removed from _progress_report.scss - teamreport.html never
   rendered them, so nothing else was on those rules.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-details {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  align-self: flex-start;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 50px;
  padding: 20px;
}

.programs-details__title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #120d1c;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  margin: 0 0 20px;
}

.programs-details__type-filter {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.programs-details__type-label {
  color: #4f4f4f;
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
}

.programs-details__type-filter .select-pill .dropdown-wrapper .trigger.pill {
  height: 32px;
}

.programs-details__grid {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  display: inline-flex;
  max-width: 100%;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
  overflow-x: auto;
}

.programs-details__row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  min-height: 44px;
  min-width: max-content;
}

.programs-details__row:last-child {
  margin-bottom: -1px;
}

.programs-details__row--head {
  min-height: 34px;
}

.programs-details__row--head .programs-details__cell {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 18px;
}

.programs-details__row--total {
  background-color: #f7f7f8;
  font-weight: 600;
}

.programs-details__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  box-sizing: border-box;
  color: #120d1c;
  font-size: 14px;
  font-weight: 500;
  padding: 0 8px;
}

.programs-details__cell--name {
  -webkit-flex: 0 0 220px;
  -ms-flex: 0 0 220px;
  flex: 0 0 220px;
  font-weight: 600;
  overflow: hidden;
  padding-left: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 220px;
}

.programs-details__cell--type {
  -webkit-flex: 0 0 160px;
  -ms-flex: 0 0 160px;
  flex: 0 0 160px;
  gap: 4px;
  width: 160px;
}

.programs-details__cell--count {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  -webkit-justify-content: center;
  justify-content: center;
  width: 144px;
}

.programs-details__cell--percent {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  gap: 8px;
  width: 144px;
}

.programs-details__cell--date {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  -webkit-justify-content: center;
  justify-content: center;
  width: 144px;
}

.programs-details__cell--date:last-child {
  padding-right: 20px;
}

.programs-details__type-pill {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #f2f2f4;
  border-radius: 4px;
  box-sizing: border-box;
  color: #6d6d6d;
  flex: 0 1 auto;
  font-size: 12px;
  font-weight: 600;
  gap: 4px;
  height: 20px;
  line-height: 20px;
  max-width: 100%;
  min-width: 0;
  padding: 0 8px;
  text-align: center;
}

.programs-details__type-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  display: block;
  height: 12px;
  object-fit: contain;
  width: 12px;
}

.programs-details__type-pill-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.programs-details__bar {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  background-color: #ececec;
  border-radius: 999px;
  box-sizing: border-box;
  height: 6px;
  overflow: hidden;
  width: 75px;
}

.programs-details__bar-fill {
  background-color: #12b76a;
  border-radius: 999px;
  height: 100%;
}

.programs-details__percent-value {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.programs-details__tip {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  border: 1px solid #b0b0b0;
  border-radius: 50%;
  color: #9d9d9d;
  cursor: pointer;
  display: inline-flex;
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  height: 14px;
  line-height: 1;
  width: 14px;
}

.programs-details__tip:before {
  content: '?';
}

.programs-details__tip:hover {
  border-color: #9768eb;
  color: #9768eb;
}

.programs-details__tip .tooltip-bottom {
  background-color: #1a1a33;
  width: 312px;
  height: 152px;
  box-sizing: border-box;
  padding: 8px 20px;
  left: -16px;
  top: 16px;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: normal;
}

.programs-details__tip .tooltip-bottom .ttContent {
  color: #ffffff;
  font-weight: 500;
}

.programs-details__tip .tooltip-bottom:after {
  border-width: 0 6px 6px 6px;
  border-color: #1a1a33 transparent;
  top: -3px;
  left: 15px;
  background-color: transparent;
  min-width: 0;
  min-height: 0;
  padding: 0;
}

.programs-details__tip-row {
  margin: 0 0 12px;
}

.programs-details__tip-row:last-child {
  margin-bottom: 0;
}

.programs-details__tip-label {
  font-weight: 700;
}

.programs-details__tip-text {
  font-weight: 500;
}

@media (max-width: 768px) {
  .programs-details {
    padding: 16px;
  }

  .programs-details__title {
    -webkit-align-items: flex-start;
    align-items: flex-start;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: 12px;
  }
}

/* The "Progress Summary" card on the progress report
   (/reports/:athleteId, views/progressreport.html).

   Replaces the legacy .report-summary-container / .report-summary block that
   used to live in _progress_report.scss. Unlike the detail table below it, this
   markup was never shared - teamreport.html does not render it - so the old
   rules were deleted outright rather than left standing beside these.

   Companion to _progress_details.scss: same card recipe (white ground, hairline
   border, 12px radius, the same faint shadow) so the two blocks read as one
   page. Tokens are restated here rather than reaching for $ptd-*, which is
   file-local to that partial by convention.

   The per-test cards are a CSS grid of flexible tracks, so a card's width is
   whatever its column gets. That is the whole reason the sparkline is rendered
   with `chart-responsive`: progressInsightChart sizes its canvas from the
   element's laid-out width, and Chart.js 1.x then pins that width inline, so a
   `width: 100%` here would otherwise be overwritten on first paint. The
   measurement only works while the card stays `min-width: 0` - an `auto`
   minimum would let the canvas it is measuring contribute to the track size it
   is being measured against.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-summary {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 0;
  padding: 20px;
}

.progress-summary__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.progress-summary__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(263px, 1fr));
  gap: 12px;
}

.progress-summary__card {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-sizing: border-box;
  min-height: 132px;
  min-width: 0;
  padding: 12px 16px;
}

.progress-summary__name {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  margin-bottom: 4px;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

.progress-summary__value {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.progress-summary__score {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-summary__change {
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  gap: 3px;
  line-height: 1;
}

.progress-summary__change--up {
  color: #20b769;
}

.progress-summary__change--down {
  color: #c42a3b;
}

.progress-summary__trend-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 14px;
  width: 14px;
}

.progress-summary__spark {
  display: block;
  height: 42px;
  margin-top: 8px;
  max-width: 100%;
  width: 100%;
}

/* The "Overview" card at the top of the progress report
   (/reports/:athleteId, views/progressreport.html): the score chart, the
   Average / Min / Max / Team Average / Team Rank tiles, and the tip banner.

   Deliberately NOT a restyle of .report-chart-container / .report-chart-details
   / .report-chart-detail in _progress_report.scss: teamreport.html:65,88,95,242
   renders that same markup against those same rules, so editing them in place
   would drag the team report along with it. This block is applied to the
   progress view only; the team report keeps the legacy layout.

   That rename is also what buys the card its responsiveness for free. Three
   separate sheets ship mobile overrides keyed to the legacy names -
   _responsiveness_tweaks.scss:195-215 and :471-487, and
   fusionetics-mark-additions.scss:5820-5839, the last of those with !important
   from a bundle that loads after this one. None of them match .progress-overview,
   so the block gets to state its own breakpoints instead of fighting them.

   Progress tab only. This card used to serve the Programs tab as well, through
   a second chartType === 'bar' branch that kept the legacy `column-container
   line-chart` classes (scoreBarChart had no responsive path, so
   _charting.scss:29-36 sized it) plus a --legacy modifier at 0,2,0 to beat
   _responsiveness_tweaks.scss's `.line-chart { flex(2) }` on source order. The
   Programs tab has its own pair of cards now - see _programs_overview.scss and
   _programs_completion.scss - so that branch, its modifier and the
   chartInfo.type === 3 tiles are all gone, and nothing in this file has to
   share specificity with _charting.scss any more.

   The values are deliberately neutral. The legacy block interpolated
   .red-text / .yellow-text / .green-text (_base.scss:317-323) onto every score
   from the API's riskColor; here the bar underneath carries the band instead
   and the number stays $black-800. That is why the bar modifiers restate the
   palette as background-color rather than reusing those text classes - the
   colour coding moved, it did not go away. Tiles whose value has no 0-100
   scale therefore have no colour cue at all, which is correct: they never had
   a meaningful one.

   Consequence worth knowing if you re-add a text class here: those selectors
   are 0,1,0 and _base.scss imports first, so an 0,1,0 `color` in this file
   wins and would silently flatten them again.

   The chart canvas is measured, not sized. scoreLineChart reads __chart-box's
   clientWidth/clientHeight and writes the result onto the canvas, so the box
   needs an explicit height (reading the canvas's own laid-out height would be
   circular) and __chart must stay min-width: 0 - an `auto` minimum would let
   the canvas be part of what sizes the track it is being measured against.
   Same contract _progress_summary.scss:14-22 documents for the sparklines.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-overview {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-family: 'Nudista', sans-serif;
  margin: 20px 0 0;
  padding: 20px;
}

.progress-overview__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.progress-overview__body {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  gap: 32px;
}

.progress-overview__chart {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  min-width: 0;
}

.progress-overview__chart-box {
  height: 300px;
}

.progress-overview__chart-canvas {
  display: block;
}

.progress-overview__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-top: 12px;
}

.progress-overview__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.progress-overview__legend-item + .progress-overview__legend-item {
  margin-left: 24px;
}

.progress-overview__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  margin-right: 8px;
  width: 8px;
}

.progress-overview__legend-dot--score {
  background-color: rgba(151, 104, 235, 0.9);
}

.progress-overview__legend-dot--average {
  background-color: rgba(207, 218, 220, 0.9);
}

.progress-overview__legend-dot--team {
  background-color: rgba(125, 125, 125, 0.75);
}

.progress-overview__legend-label {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
}

.progress-overview__tiles {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  display: grid;
  gap: 20px 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
}

.progress-overview__tile {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 0;
}

.progress-overview__tile-head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 4px;
}

.progress-overview__tile-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.progress-overview__value-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 12px;
}

.progress-overview__value {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-overview__change {
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 600;
  gap: 3px;
  line-height: 1;
}

.progress-overview__change--up {
  color: #20b769;
}

.progress-overview__change--down {
  color: #c42a3b;
}

.progress-overview__trend-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 14px;
  width: 14px;
}

.progress-overview__bar {
  background-color: #ececec;
  border-radius: 999px;
  box-sizing: border-box;
  height: 5px;
  margin-top: auto;
  max-width: 100%;
  overflow: hidden;
  width: 160px;
}

.progress-overview__bar-fill {
  background-color: #929292;
  border-radius: 999px;
  height: 100%;
}

.progress-overview__bar-fill--red {
  background-color: #c42a3b;
}

.progress-overview__bar-fill--yellow {
  background-color: #dfc03f;
}

.progress-overview__bar-fill--green {
  background-color: #20b769;
}

.progress-overview__bar-fill--purple {
  background-color: #9768eb;
}

.progress-overview__trophy {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 10px;
  margin: 4px 0 12px;
}

.progress-overview__trophy-icon {
  color: #9768eb;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 24px;
  width: 24px;
}

.progress-overview__trophy-place {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-overview__banner {
  background-color: #f8f5ff;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  box-sizing: border-box;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  gap: 10px;
  margin-top: 20px;
  padding: 16px;
}

.progress-overview__banner-icon {
  color: #9768eb;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 20px;
  width: 20px;
}

.progress-overview__banner-text {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 0;
}

.progress-overview__banner-title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  color: #533d82;
  font-size: 16px;
  font-weight: 600;
  gap: 8px;
  line-height: 16px;
}

.progress-overview__banner-body {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  margin-top: 4px;
  white-space: pre-line;
}

.progress-overview__cta {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 8px;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  margin-left: auto;
  padding: 8px 16px;
  background: #f8f5ff;
  border: 1px solid #b0b0b0;
  border-radius: 4px;
  box-shadow: none;
  color: #000000;
  cursor: pointer;
  font-family: 'Nudista-web', 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 100%;
  text-align: right;
  text-transform: none;
  white-space: nowrap;
}

.progress-overview__cta:hover {
  background: #f2edfc;
  box-shadow: none;
}

.progress-overview__cta-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 16px;
  width: 16px;
}

@media (max-width: 900px) {
  .progress-overview__body {
    gap: 20px;
  }

  .progress-overview__tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .progress-overview {
    padding: 16px;
  }

  .progress-overview__body {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
  }

  .progress-overview__chart {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
  }

  .progress-overview__chart-box {
    height: 220px;
  }

  .progress-overview__tiles {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    margin-top: 24px;
    width: 100%;
  }

  .progress-overview__banner {
    -webkit-align-items: flex-start;
    align-items: flex-start;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }

  .progress-overview__banner-text {
    -webkit-flex: 1 1 100%;
    -ms-flex: 1 1 100%;
    flex: 1 1 100%;
  }

  .progress-overview__cta {
    margin: 12px 0 0 auto;
  }
}

/* The Programs tab's "Overview" card, and the row that holds it beside
   "Program Completion" (/reports/:athleteId, views/progressreport.html, under
   vm.activeTab === 'programs').

   Its own block rather than a modifier of .progress-overview, for the same
   reason _programs_details.scss is its own block rather than a modifier of
   _progress_details.scss: the two cards share a shell - border, radius,
   shadow, title metrics - and nothing else. .progress-overview is a measured
   canvas beside a three-column tile grid; this is a computed SVG beside a
   stacked tile column, with a legend under both. Sharing a class would mean
   carrying the canvas-measurement contract (__chart-box's explicit height,
   __chart's min-width: 0) into a card that has no canvas in it.

   That split is also what let .progress-overview drop its Programs branch
   entirely - the bar chart, its --legacy neutralising rules and the
   chartInfo.type === 3 tiles all went with it.

   The shell constants are restated rather than imported, because SCSS
   variables are file-local unless hoisted to _design_tokens.scss. If you change
   the card radius or title metrics in one of the four cards on this page,
   change them in all four or they stop reading as one family.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-overview-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  margin: 20px 0 0;
  gap: 20px;
}

.programs-overview-row > * {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 900px) {
  .programs-overview-row {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
  }
}

.programs-overview {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  font-family: 'Nudista', sans-serif;
  padding: 20px;
  max-width: 522px;
}

.programs-overview__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.programs-overview__body {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  gap: 28px;
}

.programs-overview__left {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  width: 238px;
}

.programs-overview__donut {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  position: relative;
}

.programs-overview__donut-svg {
  display: block;
  height: 100%;
  width: 100%;
}

.programs-overview__ring-track {
  stroke: #f0eef5;
}

.programs-overview__ring-arc {
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.programs-overview__ring-arc:hover {
  opacity: 0.85;
}

.programs-overview__center {
  left: 50%;
  pointer-events: none;
  position: absolute;
  text-align: center;
  top: 50%;
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.programs-overview__center-caption {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.programs-overview__center-value {
  color: #4f4f4f;
  font-size: 32px;
  font-weight: 500;
  line-height: 32px;
  text-align: center;
}

.programs-overview__center-sub {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  margin-top: 2px;
  text-align: right;
}

.programs-overview__center-sub-value {
  color: #000000;
  font-weight: 600;
}

.programs-overview__tip {
  background-color: #1c1b3a;
  border-radius: 10px;
  box-sizing: border-box;
  color: #ffffff;
  font-size: 12px;
  left: 50%;
  line-height: 18px;
  min-width: 180px;
  padding: 10px 12px;
  pointer-events: none;
  position: absolute;
  white-space: nowrap;
  z-index: 5;
  -moz-transform: translate(-10%, 6px);
  -o-transform: translate(-10%, 6px);
  -ms-transform: translate(-10%, 6px);
  -webkit-transform: translate(-10%, 6px);
  transform: translate(-10%, 6px);
}

.programs-overview__tip-head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  font-weight: 600;
  gap: 8px;
  margin-bottom: 6px;
}

.programs-overview__tip-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 8px;
}

.programs-overview__tip-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #ffffff;
  gap: 24px;
}

.programs-overview__tip-row strong {
  font-weight: 600;
}

.programs-overview__tiles {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  gap: 20px;
  width: 188px;
}

.programs-overview__tile-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  margin-bottom: 4px;
  text-transform: capitalize;
}

.programs-overview__tile-value {
  color: #4f4f4f;
  font-size: 24px;
  font-weight: 500;
  line-height: 38px;
}

.programs-overview__bar {
  background-color: #ececec;
  border-radius: 999px;
  height: 6px;
  margin-top: 8px;
  max-width: 100%;
  overflow: hidden;
  width: 140px;
}

.programs-overview__bar-fill {
  background-color: #12b76a;
  border-radius: 999px;
  height: 100%;
}

.programs-overview__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
}

.programs-overview__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  cursor: pointer;
  gap: 10px;
}

.programs-overview__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 9px;
  width: 9px;
}

.programs-overview__legend-label {
  color: #4f4f4f;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.programs-overview__legend-value {
  color: #120d1c;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
}

@media (max-width: 768px) {
  .programs-overview {
    padding: 16px;
  }

  .programs-overview__body {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-align-items: stretch;
    align-items: stretch;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    gap: 20px;
  }

  .programs-overview__left {
    -webkit-align-self: center;
    align-self: center;
  }

  .programs-overview__tiles {
    width: 100%;
  }
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/inter-latin-600-normal.woff2) format("woff2"), url(../fonts/inter-latin-600-normal.woff) format("woff");
}

/* The "Program Completion" card on the progress report's Programs tab
   (/reports/:athleteId, views/progressreport.html): a contribution-graph style
   heatmap of completed/scheduled programs per bucket.

   Sits beside .programs-overview in .programs-overview-row, which is declared
   in _programs_overview.scss along with the shell constants both cards share -
   see that file's header for why these are separate blocks and why the shell is
   restated rather than imported.

   The grid's shape is data, not style. ProgressReportController's
   _renderProgramCompletion picks one of three layouts from the selected date
   range (seven day columns for a week or a month, month columns over Week 1-5
   rows for anything longer) and hands the template both the
   grid-template-columns track list and a FLAT list of grid items. Flat because
   a CSS grid only flows its direct children, so there can be no per-row
   wrapper - the same trap _progress_overview.scss's header documents for the
   tiles. Nothing here may introduce one.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-completion {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  font-family: 'Nudista', sans-serif;
  max-width: 602px;
  padding: 20px;
}

.programs-completion__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.programs-completion__scroll {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-items: center;
  align-items: center;
  overflow-x: auto;
  padding-bottom: 4px;
}

.programs-completion__grid {
  display: grid;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
  justify-content: center;
  justify-content: safe center;
  width: -moz-max-content;
  width: max-content;
  min-width: 100%;
}

.programs-completion__corner {
  height: 1px;
}

.programs-completion__head-cell,
.programs-completion__row-label {
  color: #4f4f4f;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 18px;
}

.programs-completion__head-cell {
  text-align: center;
}

.programs-completion__row-label {
  text-align: right;
  white-space: nowrap;
}

.programs-completion__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  border-radius: 7px;
  box-sizing: border-box;
  color: #efeff1;
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 600;
  height: 32px;
  line-height: 100%;
}

.programs-completion__cell--none {
  background-color: #efeff1;
}

.programs-completion__cell--zero {
  background-color: #b3b3be;
}

.programs-completion__cell--l1 {
  background-color: #afd88c;
}

.programs-completion__cell--l2 {
  background-color: #84b15f;
}

.programs-completion__cell--l3 {
  background-color: #5f8f38;
}

.programs-completion__cell--l4 {
  background-color: #3b6d11;
}

.programs-completion__cell--outside {
  background-color: #ffffff;
}

.programs-completion__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
  padding-top: 20px;
}

.programs-completion__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.programs-completion__legend-item + .programs-completion__legend-item {
  margin-left: 8px;
}

.programs-completion__legend-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 20px;
}

.programs-completion__ramp {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 2px;
}

.programs-completion__swatch {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 26px;
}

.programs-completion__swatch--l1 {
  background-color: #afd88c;
  border-radius: 8px 0 0 8px;
}

.programs-completion__swatch--l2 {
  background-color: #84b15f;
}

.programs-completion__swatch--l3 {
  background-color: #5f8f38;
}

.programs-completion__swatch--l4 {
  background-color: #3b6d11;
  border-radius: 0 8px 8px 0;
}

.programs-completion__legend-rule {
  background-color: #ececec;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 16px;
  margin: 0 8px;
  width: 1px;
}

.programs-completion__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 8px;
}

.programs-completion__legend-dot--zero {
  background-color: #b3b3be;
}

.programs-completion__legend-dot--none {
  background-color: #efeff1;
}

@media (max-width: 768px) {
  .programs-completion {
    padding: 16px;
  }
}

/* Opt-in restyle of fusionDropDownPill to match fusionDateRangeSelect.

   The directive and its template are shared by testarchives, teamreport, notes
   and the program-type filter, so none of this may leak. It is scoped to a
   `select-pill` class put on the DIRECTIVE HOST element (the pill's own
   class-color attribute lands on .trigger, which is too deep to reach the
   submenu from). Add the class, drop class-color, and the instance opts in:

     <div class="select-pill" fusion-drop-down-pill ...>

   The legacy rules live in src/sass/_reports.scss, imported by a DIFFERENT
   root sheet (fusionetics-mark-additions.scss). Load order between the two
   sheets is not guaranteed here, so every selector below carries the
   `.select-pill` prefix purely to outrank its legacy counterpart on
   specificity rather than on source order.

   Icons are data-URI backgrounds, not inline SVG, because the shared template
   has no icon slots and adding them would change every other consumer. A
   background image cannot inherit currentColor, so the three glyph colours
   below are baked in - keep them in step with the $sp-* tokens.

   Not changed: the pill still opens on mouseenter (DropDownPill.js binds it),
   where the date selector opens on click. That is directive behaviour shared
   with four other pages, not styling. */

.select-pill {
  display: inline-block;
  font-family: 'Nudista', sans-serif;
  /* -- trigger -- */
  /* -- menu -- */
}

.select-pill .dropdown-wrapper .trigger.pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  height: 40px;
  width: 205px;
  padding: 0 8px 0 10px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  line-height: 20px;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s;
}

.select-pill .dropdown-wrapper .trigger.pill:hover {
  border-color: #b0b0b0;
}

.select-pill .dropdown-wrapper .trigger.pill:before {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url(../images/progress_page_folder.png) no-repeat center/16px 16px;
}

.select-pill .dropdown-wrapper .trigger.pill > span {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.2px;
  line-height: 20px;
  text-transform: none;
  color: #101828;
  transform: translateY(1px);
}

.select-pill .dropdown-wrapper .trigger.pill .icon-caret-dropdown {
  display: none;
}

.select-pill .dropdown-wrapper .trigger.pill:after {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%236d6d6d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/16px 16px;
}

.select-pill .dropdown-wrapper .submenu-wrapper {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 20px;
  text-transform: none;
  color: #4f4f4f;
}

.select-pill .dropdown-wrapper .submenu-wrapper > .submenu-content > .submenu {
  margin-top: 4px;
  box-sizing: border-box;
  width: 205px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  overflow: hidden;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu ul {
  padding: 6px 0;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu ul + ul {
  border-top: 1px solid #e7e7e7;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 10px 16px 10px 12px;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 18px;
  color: #000000;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li:hover {
  background: #fafafa;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li.is-selected:after {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M13.33 4L6 11.33L2.67 8' stroke='%239768eb' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/16px 16px;
}

/* Date range selector for the progress report page.

   Ported from the app's date-filter / date-filter-dropdown / calendar-grid.
   Those are Tailwind, so the values below are the de-@apply'd tokens. The app
   only ever renders one month; the two-month view here is new.

   Traps this build has: no autoprefixer (no dvh, no unprefixed-only props),
   and respond() only knows 768px / 480px. The single-month collapse below is
   a property of this panel's width, not a project tier, so it is a bare
   media query. */

.date-range-select {
  position: relative;
  display: inline-block;
  font-family: 'Nudista', sans-serif;
  /* -- preset rail -- */
  /* -- calendar side -- */
  /* Panel height is emergent, not hard-coded: 16 + 49 (fields) + 16 (gap)
     + 340 (months) + 20 = 441. Spacing is held at comfortable values and the
     calendar block absorbs the height target via $drs-months-height. */
  /* -- per-field day / month / year picker -- */
  /* The two lines plus the 4px gap have to land exactly on the field's
     content box - 49px less its borders and 8px vertical padding is 31px -
     so these line-heights are load-bearing, not decoration. */
  /* The in-range band is a pseudo-element rather than a background on the
     cell. Two reasons: inset vertically it leaves 1px above and below, so
     consecutive rows keep 2px of white between them; and it sits behind the
     day number, so an endpoint's solid square is not ringed by tint. */
  /* An endpoint only needs to bridge the gap to its neighbour. Starting the
     band at the cell's midpoint keeps it entirely under the solid square
     except for that gap, so no tint shows to the outside of it. */
  /* Two-month grid only. Its block has a fixed height, so the six week rows
     can share whatever the header and day-of-week row leave. The field picker
     keeps the fixed 36px cells above - it has no definite height, so a
     percentage there would resolve to auto. */
  /* Each endpoint keeps its rounding only on the outside of the range; the
     edge facing the band is square, so the solid square and the tint meet
     flush instead of leaving a notch. */
  /* The square edge also pulls in by 1px, so a sliver of the band shows
     between the solid endpoint and the range it opens. The margin eats into
     the number's width rather than moving it - it is a flex item sized to
     100% of the cell, so it shrinks to make room. */
  /* -- narrow -- */
}

.date-range-select__trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  width: 198px;
  height: 40px;
  padding: 0 8px 0 10px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s;
}

.date-range-select__trigger:hover {
  border-color: #b0b0b0;
}

.date-range-select__trigger.is-open {
  border-color: #9768eb;
}

.date-range-select__trigger-icon {
  flex: 0 0 auto;
  color: #4f4f4f;
}

.date-range-select__trigger-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: -.2px;
  color: #101828;
  transform: translateY(1px);
}

.date-range-select__trigger-caret {
  flex: 0 0 auto;
  color: #6d6d6d;
  transition: transform .15s;
}

.date-range-select__trigger.is-open .date-range-select__trigger-caret {
  transform: rotate(180deg);
}

.date-range-select__panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 60;
  display: flex;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  overflow: hidden;
}

.date-range-select__presets {
  flex: 0 0 auto;
  width: 200px;
  padding: 8px 0;
}

.date-range-select__preset {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 16px 10px 21px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #4f4f4f;
  cursor: pointer;
}

.date-range-select__preset:hover {
  background: #fafafa;
}

.date-range-select__preset.is-active {
  color: #101828;
}

.date-range-select__preset-check {
  flex: 0 0 auto;
  color: #9768eb;
}

.date-range-select__rule {
  flex: 0 0 auto;
  width: 1px;
  background: #e7e7e7;
}

.date-range-select__calendars {
  flex: 1 1 auto;
  min-width: 0;
  padding: 16px 20px 20px;
}

.date-range-select__fields {
  position: relative;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  width: 680px;
  margin-bottom: 16px;
}

.date-range-select__field {
  box-sizing: border-box;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 319px;
  height: 49px;
  padding: 8px 12px;
  border: 1px solid #d1d1d1;
  border-radius: 9px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}

.date-range-select__field:hover {
  border-color: #b0b0b0;
}

.date-range-select__field.is-pending {
  border-color: #9768eb;
}

.date-range-select__field.is-open {
  border: 1.5px solid #534ab7;
}

.date-range-select__field-picker {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 10;
  box-sizing: border-box;
  width: 319px;
  padding: 12px 16px 16px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
}

.date-range-select__field-picker.is-to {
  left: auto;
  right: 0;
}

.date-range-select__field-picker-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.date-range-select__field-picker-select {
  flex: 1 1 auto;
  min-width: 0;
  height: 30px;
  padding: 0 6px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #101828;
  cursor: pointer;
}

.date-range-select__field-picker-select:focus {
  outline: none;
  border-color: #9768eb;
}

.date-range-select__field-picker-select.is-year {
  flex: 0 0 76px;
}

.date-range-select__field-label {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 600;
  line-height: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #74748a;
}

.date-range-select__field-value {
  flex: 0 0 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 16px;
  color: #1d1d29;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.date-range-select__months {
  box-sizing: border-box;
  display: flex;
  gap: 24px;
  width: 680px;
  height: 340px;
}

.date-range-select__month {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.date-range-select__month-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.date-range-select__month-name {
  flex: 1 1 auto;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  line-height: 24px;
  color: #101828;
  white-space: nowrap;
}

.date-range-select__nav {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 4px;
  color: #6d6d6d;
  cursor: pointer;
}

.date-range-select__nav:hover {
  background: #f6f6f6;
}

.date-range-select__nav.is-placeholder {
  cursor: default;
}

.date-range-select__nav.is-placeholder:hover {
  background: none;
}

.date-range-select__nav.is-narrow-only {
  visibility: hidden;
}

.date-range-select__dow {
  display: flex;
}

.date-range-select__dow-cell {
  flex: 1 1 0;
  height: 32px;
  line-height: 32px;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  color: #4f4f4f;
}

.date-range-select__week {
  display: flex;
}

.date-range-select__day {
  position: relative;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  cursor: pointer;
}

.date-range-select__day.is-outside {
  cursor: default;
}

.date-range-select__day-number {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.date-range-select__day.is-today .date-range-select__day-number {
  background: #f6f6f6;
  color: #888888;
}

.date-range-select__day.is-outside .date-range-select__day-number {
  color: #d1d1d1;
  background: none;
}

.date-range-select__day:not(.is-outside):hover .date-range-select__day-number {
  background: #f2edfc;
}

.date-range-select__day.is-in-range::before,
.date-range-select__day.is-start::before,
.date-range-select__day.is-end::before {
  content: '';
  position: absolute;
  top: 1px;
  bottom: 1px;
  left: 0;
  right: 0;
  background: #f2edfc;
}

.date-range-select__day.is-start::before {
  left: 50%;
}

.date-range-select__day.is-end::before {
  right: 50%;
}

.date-range-select__day.is-start.is-end::before {
  display: none;
}

.date-range-select__months .date-range-select__week {
  flex: 1 1 0;
  min-height: 0;
}

.date-range-select__months .date-range-select__day {
  height: auto;
}

.date-range-select__months .date-range-select__day-number {
  width: 100%;
  height: calc(100% - 2px);
}

.date-range-select__day.is-start .date-range-select__day-number,
.date-range-select__day.is-end .date-range-select__day-number,
.date-range-select__day.is-start:hover .date-range-select__day-number,
.date-range-select__day.is-end:hover .date-range-select__day-number {
  background: #9768eb;
  color: #ffffff;
}

.date-range-select__day.is-start .date-range-select__day-number {
  border-radius: 4px 0 0 4px;
  margin-right: 1px;
}

.date-range-select__day.is-end .date-range-select__day-number {
  border-radius: 0 4px 4px 0;
  margin-left: 1px;
}

.date-range-select__day.is-start.is-end .date-range-select__day-number {
  border-radius: 4px;
  margin-right: 0;
  margin-left: 0;
}

@media (max-width: 768px) {
  .date-range-select__panel {
    flex-direction: column;
    max-width: calc(100vw - 32px);
  }

  .date-range-select__presets {
    width: auto;
    display: flex;
    flex-wrap: wrap;
    padding: 8px;
    gap: 4px;
  }

  .date-range-select__preset {
    padding: 6px 10px;
    border: 1px solid #d1d1d1;
    border-radius: 4px;
  }

  .date-range-select__preset.is-active {
    border-color: #9768eb;
    background: #f2edfc;
  }

  .date-range-select__rule {
    width: auto;
    height: 1px;
  }

  .date-range-select__month + .date-range-select__month {
    display: none;
  }

  .date-range-select__nav.is-narrow-only {
    visibility: visible;
  }

  .date-range-select__fields {
    flex-direction: column;
    width: auto;
    gap: 12px;
  }

  .date-range-select__field {
    width: 100%;
  }

  .date-range-select__field-picker {
    max-width: calc(100vw - 48px);
  }

  .date-range-select__months {
    justify-content: center;
    width: auto;
    height: auto;
  }

  .date-range-select__month {
    flex: 0 1 auto;
    width: 100%;
    max-width: 252px;
  }

  .date-range-select__months .date-range-select__day {
    height: 36px;
  }

  .date-range-select__months .date-range-select__day-number {
    height: 34px;
  }
}

.page-header-back-nav {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
}

.page-header-back-nav label {
  font-weight: bold;
  text-transform: uppercase;
  cursor: pointer;
}

.page-header-back-nav label i.icon {
  font-size: 16px;
}

.page-header-back-nav label span {
  margin-left: 8px;
  font-size: 13px;
}

.test-archives-options {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  flex-wrap: wrap;
  margin: 30px 0 5px;
  row-gap: 10px;
}

.test-archives-options > div + div {
  margin-left: 10px;
}

.test-archives-options .date-ranges {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin-left: 30px;
  gap: 20px;
}

@media (max-width: 768px) {
  .test-archives-options .date-ranges {
    flex-basis: 100%;
    flex-direction: column;
    align-items: flex-start;
    margin-left: 0;
    margin-top: 10px;
    gap: 10px;
  }
}

.archive-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin: 30px 0;
}

.archive-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.archive-container > div span {
  font-size: 18px;
  cursor: default;
}

.archive-container > div i.icon {
  font-size: 16px;
  cursor: pointer;
}

.archive-container > div .archive-name,
.archive-container > div .archive-info,
.archive-container > div .archive-action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.archive-container > div .archive-name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 120px;
}

.archive-container > div .archive-name span {
  cursor: pointer;
}

.archive-container > div .archive-info,
.archive-container > div .archive-action {
  -webkit-justify-content: center;
  justify-content: center;
}

.archive-container > div .archive-info {
  min-width: 140px;
}

@media (max-width: 568px) {
  .archive-container > div .archive-info {
    min-width: 100px;
  }
}

.archive-container > div .archive-action {
  min-width: 60px;
}

.archive-container > div.header-row {
  min-height: 40px;
}

.archive-container > div.header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  cursor: default;
}

.header-content {
  -webkit-justify-content: initial;
  justify-content: initial;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  position: relative;
  border-bottom: 1px solid #ccc;
}

@media (max-width: 768px) {
  .header-content {
    max-height: 60px;
    min-height: 60px;
    height: 60px;
    align-items: center;
  }
}

.header-content .header-logo-container {
  position: relative;
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  .header-content .header-logo-container {
    display: none;
  }
}

.header-content .header-prac-burger {
  display: none;
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  padding: 0 15px;
  padding-bottom: 7px;
  margin: 0;
  line-height: 1;
}

@media (max-width: 768px) {
  .header-content .header-prac-burger {
    display: block;
  }
}

.header-content .header-prac-menu {
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  background: #1c1c1c;
  display: flex;
  flex-direction: column;
  padding: 10px 0;
  z-index: 1000;
}

.header-content .header-prac-menu .header-prac-menu__item {
  display: flex;
  align-items: center;
  min-height: 60px;
  max-height: 60px;
  padding: 0 20px;
  border-bottom: 1px solid #333;
  color: #a0a4a8;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.header-content .header-prac-menu .header-prac-menu__item.active {
  color: #efefef;
}

.header-content .header-prac-menu .header-prac-menu__item:not(.active):hover {
  color: #efefef;
}

.header-content .header-prac-user {
  display: none;
}

@media (max-width: 768px) {
  .header-content .header-prac-user {
    display: flex;
  }
}

.header-content .header-logo {
  margin: 10px 35px;
}

.header-content .header-logo img {
  max-width: 180px;
  max-height: 70px;
}

@media (max-width: 768px) {
  .header-content .resp-center {
    display: none;
  }
}

.header-content .user {
  margin-left: auto;
}

.header-content .header-team-name,
.header-content .header-team-name-link {
  border-left: 1px solid #C8C8C9;
}

@media (max-width: 768px) {
  .header-content .header-team-name,
  .header-content .header-team-name-link {
    border-left: 0;
    margin-left: 40px;
  }
}

.header-content .header-team-name h3,
.header-content .header-team-name-link h3 {
  padding: 0px 18px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #11264b;
  text-transform: uppercase;
}

.header-content .header-team-name-resp {
  overflow: hidden;
}

.header-content .header-team-name-resp > h3 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content .header-team-name-link {
  cursor: pointer;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

.header-content .team-switcher {
  cursor: pointer;
}

.header-content .team-switcher:after {
  position: absolute;
  top: 80%;
  left: 90%;
  font-family: FontAwesome;
  content: "\F0D7";
  color: #6d6e72;
}

.header-content .team-options {
  position: absolute;
  top: 102%;
  left: -1px;
  background-color: #f6f1f1;
  border: 1px solid #ebebeb;
  box-shadow: 0 2px 5px 0 rgba(68, 67, 76, 0.25);
  min-width: 130px;
  width: 100%;
  z-index: 3;
}

.header-content .team-options > div {
  padding: 5px 10px 5px 14px;
  white-space: nowrap;
}

.header-content .team-options > div:hover {
  background-color: #dedfde;
}

.header-content .white-field {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.header-content .white-field i.icon-shop {
  display: block;
  float: left;
  padding: 0px;
  margin-right: 1px;
  margin-left: 1px;
  font-size: 20px;
}

.header-content .white-field > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  margin: 0px;
}

.header-content .white-field > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  padding: 10px;
  font-size: 14px;
  cursor: pointer;
}

.header-content .white-field > div > div i {
  font-size: 26px;
  display: block;
  float: left;
  margin: -1px 8px 0px 0px;
}

.header-content .white-field > div > div:hover {
  color: #11264b;
}

.header-content .white-field > div > div.active {
  color: #11264b;
}

.header-content .white-field > div > div.current-athlete {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  border: none;
  font-size: 18px;
  font-weight: 600;
  min-width: auto;
  margin-right: auto;
}

.header-content .white-field > div > div.current-athlete span {
  cursor: pointer;
}

.header-content .white-field > div > div.current-athlete span:first-child {
  font-weight: normal;
}

.header-content .white-field > div > div.current-athlete span + span {
  margin-left: 10px;
}

.header-content .white-field > div > div.current-athlete span + span:hover {
  text-decoration: underline;
}

.header-content .white-field > div > div + div {
  margin-left: 5px;
}

.header-content .white-field > button.signout {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
}

.header-content .white-field > button.signout:hover {
  background-color: #9768EB;
  color: white;
}

.header-content .white-field > button.shop {
  padding-top: 1px;
}

@media (max-width: 768px) {
  .header-content .white-field > button.shop {
    display: none;
  }
}

.header-content .white-field > button:first-child {
  margin: 0 7px 0 15px;
}

.header-content .white-field > button:last-child {
  margin: 0 25px 0 7px;
}

.header-content .white-field > button > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.header-content .white-field > button > div i.fa {
  font-size: 22px;
  margin-right: 4px;
}

@media (max-width: 768px) {
  .header-content--prac .header-team-name,
  .header-content--prac .header-content .header-team-name-link,
  .header-content .header-content--prac .header-team-name-link,
  .header-content--prac .header-team-name-link {
    margin-left: 0;
  }
}

.header-content.header-content--athlete,
.header-content.header-content--prac {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: #1a1a2e;
  border-bottom: none;
  align-items: center;
}

.header-content.header-content--athlete .athlete-profile-switch,
.header-content.header-content--prac .athlete-profile-switch {
  min-height: 60px;
  max-height: 60px;
}

.header-content.header-content--athlete .athlete-header-logo,
.header-content.header-content--prac .athlete-header-logo {
  margin: 0 28px;
}

.header-content.header-content--athlete .athlete-header-logo img,
.header-content.header-content--prac .athlete-header-logo img {
  max-width: 145px;
  max-height: 29px;
}

.header-content.header-content--athlete .user__logo,
.header-content.header-content--prac .user__logo {
  height: 44px;
  width: 44px;
}

.header-content.header-content--athlete .user__name,
.header-content.header-content--prac .user__name {
  margin-left: 12px;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

.header-content.header-content--athlete .user__info,
.header-content.header-content--prac .user__info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 12px;
  min-width: 0;
}

.header-content.header-content--athlete .user__info .user__name,
.header-content.header-content--prac .user__info .user__name {
  margin-left: 0;
}

.header-content.header-content--athlete .user__role,
.header-content.header-content--prac .user__role {
  color: #E1E1E6;
  font-family: "Nudista", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .header-content.header-content--athlete .passport {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    min-width: 0;
  }

  .header-content.header-content--athlete .athlete-header-logo {
    margin: 0 12px;
  }

  .header-content.header-content--athlete .athlete-header-logo img {
    max-width: 110px;
    max-height: 24px;
  }

  .header-content.header-content--athlete .user__name {
    display: none;
  }
}

.header-content.header-content--prac .athlete-header-logo {
  margin-right: 16px;
}

.header-content.header-content--prac .header-team-switcher {
  position: relative;
  display: flex;
  align-items: center;
  margin-right: 16px;
}

.header-content.header-content--prac .header-team-switcher__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 188px;
  height: 44px;
  padding: 8px 8px 8px 12px;
  border: 1px solid #6C6C7C;
  border-radius: 4px;
  background: #35354B;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  white-space: nowrap;
}

.header-content.header-content--prac .header-team-switcher__name {
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.header-content.header-content--prac .header-team-switcher__caret {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

.header-content.header-content--prac .header-team-switcher__options {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  box-sizing: border-box;
  min-width: 320px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 3px 4px;
  background-color: #ffffff;
  border: 1px solid #EAECF0;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  z-index: 10;
  max-height: 60vh;
  overflow-x: hidden;
  overflow-y: auto;
}

.header-content.header-content--prac .header-team-switcher__label {
  padding: 10px;
  color: #4F4F4F;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

.header-content.header-content--prac .header-team-switcher__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  box-sizing: border-box;
  min-height: 40px;
  padding: 10px;
  border-radius: 4px;
  color: #000000;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
}

.header-content.header-content--prac .header-team-switcher__option:hover {
  background-color: #fafafa;
}

.header-content.header-content--prac .header-team-switcher__option--selected,
.header-content.header-content--prac .header-team-switcher__option--selected:hover {
  background-color: #f2edfc;
}

.header-content.header-content--prac .header-team-switcher__option + .header-team-switcher__option {
  margin-top: 8px;
}

.header-content.header-content--prac .header-team-switcher__option__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.header-content.header-content--prac .header-team-switcher__option__name {
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content.header-content--prac .header-team-switcher__option__org {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content.header-content--prac .header-team-switcher__option__check {
  display: none;
  flex-shrink: 0;
  color: #9768eb;
}

.header-content.header-content--prac .header-team-switcher__option--selected .header-team-switcher__option__check {
  display: block;
}

.header-content.header-content--prac .header-team-switcher--switchable .header-team-switcher__btn {
  cursor: pointer;
}

.header-content.header-content--prac .header-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  margin-right: 8px;
}

@media (max-width: 768px) {
  .header-content.header-content--prac .header-nav {
    gap: 2px;
    margin-right: 0;
  }
}

.header-content.header-content--prac .header-nav__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  min-width: 0;
  width: auto;
  height: 36px;
  min-height: 0;
  max-height: none;
  padding: 0 10px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.header-content.header-content--prac .header-nav__btn:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

@media (max-width: 768px) {
  .header-content.header-content--prac .header-nav__btn {
    gap: 0;
    padding: 0 8px;
  }

  .header-content.header-content--prac .header-nav__btn > span {
    display: none;
  }
}

.header-content.header-content--prac .header-nav__icon {
  font-size: 18px;
  line-height: 1;
}

.header-content.header-content--prac .header-nav + .user {
  margin-left: 0;
}

@media (max-width: 768px) {
  .header-content.header-content--prac .user__info {
    display: none;
  }
}

.header-content:has(.header-content--athlete),
.header-content:has(.header-content--prac) {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  border-bottom: none;
}

@media only screen and (max-width: 1053px) {
  .header-content-v2 .white-field > div > div {
    font-size: 12px;
    padding: 5px;
  }

  .header-content-v2 .white-field > div > div + div {
    margin-left: 0;
  }

  .header-content-v2 .white-field > div > div i {
    margin-top: -5px;
    margin-right: 5px;
  }

  .header-content-v2 .white-field i.icon-shop {
    margin: 0 5px 0 0;
  }
}

.whiteboard {
  min-width: 0;
}

ul.catalog_nav {
  max-width: none;
  min-width: 0;
  width: auto;
}

ul.catalog_nav li > span {
  padding: 11px 0;
  line-height: 1.2;
  min-height: 0;
}

ul.catalog_nav li > ul li > ul li {
  min-height: 0;
  text-indent: 0;
  padding-top: 6px;
  padding-bottom: 6px;
  padding-left: 50px;
}

.catalog-selected .title-container .return-link {
  white-space: nowrap;
}

.athlete-info-box .bio-header {
  line-height: 1.1;
  padding: 0 15px;
}

.athlete-info-box .bio-header .athlete-number {
  margin-left: 0;
}

@media only screen and (max-width: 900px) {
  .athlete-info-box .bio-header {
    font-size: 15px;
    padding: 0 10px;
  }
}

.athlete-info-box .bio-body .athlete-profile {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic {
  width: 100%;
  height: auto;
  display: block;
  max-height: 100px;
}

.athlete-info-box .bio-body .athlete-stats {
  -webkit-flex: 2;
  -ms-flex: 2;
  flex: 2;
}

.athlete-info-box .bio-body .athlete-stats > div + div {
  margin-top: 5px;
}

.athlete-info-box .bio-body canvas {
  width: 100%;
  display: block;
}

.athlete-list-view.view-layout .athlete-number {
  max-width: 53px;
  min-width: 53px;
  width: 53px;
  white-space: nowrap;
  line-height: 0.9;
  padding-left: 10px;
}

.athlete-list-view.view-layout .athlete-name {
  padding: 0 15px 0 5px;
  min-width: 0;
}

.profile-summary .today-program,
.profile-summary .today-notice {
  max-width: none;
  min-width: 0;
  width: auto;
  max-height: none;
  height: auto;
  padding: 10px 6px;
}

@media only screen and (min-width: 1054px) {
  .column-container.profile-score + div {
    width: 380px;
  }
}

@media only screen and (max-width: 1053px) {
  body .view-container {
    width: 994px;
    max-width: 100vw;
    min-width: 0;
    padding-left: 15px;
    padding-right: 15px;
  }

  body .view-container .view-container {
    padding-left: 0;
    padding-right: 0;
    width: 100%;
    max-width: 100%;
  }

  body .week-wrapper .week-day-column {
    min-width: 0;
    width: 100%;
  }

  body .header-content .white-field > div {
    margin: 0px 20px;
  }

  body .profile-detail {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body .profile-detail .profile-pic {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100%;
    max-width: 200px;
    aspect-ratio: 200 / 175;
    overflow: hidden;
  }

  body .profile-detail .profile-pic img {
    width: 100%;
    display: block;
    height: 100%;
    object-fit: contain;
  }

  body .profile-detail .profile-action {
    width: 100%;
  }

  body .profile-summary {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 4;
    -ms-flex: 4;
    flex: 4;
    padding-left: 15px;
  }

  body .profile-summary > .row-container.divided > div {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body .profile-summary > .row-container.divided > div + div {
    padding-left: 15px;
  }

  body .profile-summary .score-container {
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 20px;
  }

  body .profile-summary .score-container .profile-score {
    max-width: none;
    min-width: 0;
    width: auto;
    width: 100%;
  }

  body .profile-summary .score-container .profile-score .profile-score-graph-canvas {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100%;
  }

  body .chart-menu .chart-menu-item {
    margin-right: 18px;
  }

  body .program-chart,
  body .line-chart {
    -webkit-flex: 2;
    -ms-flex: 2;
    flex: 2;
  }

  body .program-chart {
    max-width: none;
    min-width: 0;
    width: auto;
    min-height: 0;
  }

  body .view-layout .view-container .line-chart .line-chart-canvas {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100% !important;
    height: auto !important;
  }

  body .chart-details {
    max-width: none;
    min-width: 0;
    width: auto;
    padding-left: 15px;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body canvas {
    max-width: 100% !important;
    height: auto !important;
  }

  body .calendar-month {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 2;
    -ms-flex: 2;
    flex: 2;
  }

  body .calendar-month .week-day-labels {
    -webkit-flex: 1 1 auto;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
  }

  body .calendar-month .week-day-labels > div {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    max-width: none;
    min-width: 0;
  }

  body .calendar-month .calendar-days .calendar-day {
    max-width: none;
    min-width: 0;
    width: auto;
    width: 14.28571%;
  }

  body .calendar-month.notes-calendar {
    max-width: 492px;
  }

  body .calendar-day-info {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding-left: 15px;
  }
}

@media only screen and (max-width: 1053px) and (max-width: 768px) {
  body .schedule-calendar-layout {
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
  }

  body .schedule-calendar-layout .calendar-month {
    flex: 1 0 100%;
    width: 100%;
    min-width: 0;
  }

  body .schedule-calendar-layout .calendar-day-info {
    flex: 1 0 100%;
    width: 100%;
    min-width: 0;
    padding-left: 0;
    margin-top: 20px;
    padding-bottom: 20px;
  }
}

@media only screen and (max-width: 1053px) {
  body .athlete-list-view.view-layout .athlete-stat {
    -webkit-flex: 0;
    -ms-flex: 0;
    flex: 0;
    max-width: 7.5%;
    min-width: 7.5%;
    width: 7.5%;
    letter-spacing: 0;
  }

  body .athlete-list-view.view-layout .athlete-programs {
    max-width: 18%;
    min-width: 18%;
    width: 18%;
  }

  body .athlete-list-view.view-layout .athlete-last-activity {
    max-width: 18%;
    min-width: 18%;
    width: 18%;
  }

  body .athlete-list-view.view-layout .athlete-row {
    font-size: 15px;
    letter-spacing: 0.5px;
  }

  body .modal {
    max-width: calc(100% - 30px);
  }

  body .modal-container {
    max-width: 100%;
  }

  body .tl-entry-header .tl-select,
  body .tl-entry .tl-select {
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .tl-entry-header .tl-input,
  body .tl-entry .tl-input {
    max-width: 86px;
    min-width: 86px;
    width: 86px;
  }

  body .tl-entry .tl-input > .basic-input.small {
    width: 100%;
  }

  body .tl-entry-header .field-label {
    line-height: 1.2;
  }

  body input.basic-input,
  body div.basic-input,
  body div.basic-input-readonly {
    width: 100px;
  }

  body .athlete-menu .athlete-search {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    width: auto;
  }

  body .athlete-menu .athlete-filter-sort {
    min-width: 0;
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box {
    min-width: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label {
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 15px 17px 15px 10px;
    font-size: 12px;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label:after {
    font-size: 9px;
    right: 7px;
    top: 38%;
  }

  body .athlete-menu .athlete-reset-view {
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 0 8px;
    font-size: 12px;
  }

  body .athlete-menu .athlete-toggle-view {
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
    max-width: none;
    min-width: 0;
    width: auto;
  }

  body .header-content .white-field > div > div {
    font-size: 12px;
    padding: 5px;
  }

  body .header-content .white-field > div > div + div {
    margin-left: 0;
  }

  body .header-content .white-field > div > div i {
    margin-top: -5px;
    margin-right: 5px;
  }

  body .header-content .white-field i.icon-shop {
    margin: 0 5px 0 0;
  }

  body .header-content button {
    min-width: 0;
    padding: 0 5px;
  }

  body .header-content .logo {
    margin-left: 15px;
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .header-content .white-field > button:last-child {
    margin-right: 15px;
  }

  body .line-chart-menu .chart-legend {
    white-space: nowrap;
    margin: 0 0 0 16px;
  }

  body .line-chart-menu .chart-legend > .fa {
    margin-right: 2px;
  }

  body .prompt-box {
    padding: 15px;
  }

  body .test-landing .prompt-box {
    padding: 20px;
    border-radius: 6px;
  }
}

@media only screen and (max-width: 1053px) and (max-width: 768px) {
  body .test-landing {
    padding: 28px 0 56px;
  }

  body .test-landing__title {
    margin-bottom: 24px;
  }

  body .test-landing__section + .test-landing__section {
    margin-top: 28px;
  }

  body .test-landing__card,
  body .test-landing .prompt-box {
    width: 100%;
    max-width: 100%;
    flex-direction: column;
    align-items: stretch;
    height: auto;
    min-height: 84px;
    padding: 20px;
    gap: 14px;
  }

  body .test-landing__card-actions {
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
  }

  body .test-landing__btn {
    flex: 1 1 auto;
  }
}

@media only screen and (max-width: 1053px) {
  body .report-chart-container {
    display: block;
  }

  body .report-chart-container .line-chart {
    display: block;
  }

  body .report-chart-container .report-chart-details {
    display: block;
    margin: 0;
  }

  body .report-details-container .title {
    max-width: none;
    min-width: 0;
    width: auto;
  }
}

@media only screen and (max-width: 900px) {
  body .admin-menu > div + div {
    margin-left: 18px;
  }

  body .catalog_container {
    -webkit-flex: 1 0 200px;
    -ms-flex: 1 0 200px;
    flex: 1 0 200px;
  }

  body .catalog-search form {
    padding: 0 5px;
    width: 100%;
  }

  body .catalog-search form input[type='text'] {
    min-width: 0;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    text-indent: 0;
    font-size: 15px;
  }

  body .catalog-search form button[type='reset'] {
    margin: 0;
    padding: 0 5px;
    font-size: 10px;
  }

  body .catalog-feature .feature-container .feature-content {
    left: 40px;
  }

  body .practitionersTable > .row-container > div > span,
  body .teamsTable > .row-container > div > span {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(1) {
    max-width: 112px !important;
    min-width: 112px !important;
    width: 112px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(2) {
    max-width: 96px !important;
    min-width: 96px !important;
    width: 96px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(3) {
    max-width: 108px !important;
    min-width: 108px !important;
    width: 108px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(4) {
    min-width: 0 !important;
    max-width: none !important;
    -webkit-flex: 1 !important;
    -ms-flex: 1 !important;
    flex: 1 !important;
  }

  body .practitionersTable > .row-container > div:nth-child(5) {
    max-width: 110px !important;
    min-width: 110px !important;
    width: 110px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(6) {
    max-width: 88px !important;
    min-width: 88px !important;
    width: 88px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(6) button {
    padding: 0 6px;
  }

  body .teamsTable > .row-container > div:nth-child(1) {
    max-width: 96px !important;
    min-width: 96px !important;
    width: 96px !important;
  }

  body .teamsTable > .row-container > div:nth-child(2) {
    max-width: 100px !important;
    min-width: 100px !important;
    width: 100px !important;
  }

  body .teamsTable > .row-container > div:nth-child(3) {
    max-width: 100px !important;
    min-width: 100px !important;
    width: 100px !important;
  }

  body .teamsTable > .row-container > div:nth-child(4) {
    min-width: 0 !important;
    max-width: none !important;
    -webkit-flex: 1 !important;
    -ms-flex: 1 !important;
    flex: 1 !important;
  }

  body .teamsTable > .row-container > div:nth-child(5) {
    max-width: 70px !important;
    min-width: 70px !important;
    width: 70px !important;
  }

  body .teamsTable > .row-container > div:nth-child(6) {
    max-width: 212px !important;
    min-width: 212px !important;
    width: 212px !important;
  }
}

@media only screen and (max-width: 900px) and (max-width: 1053px) {
  body .header-logo {
    margin: 0 15px;
  }

  body .header-logo img {
    width: 100%;
  }

  body .header-content .white-field > div > div i {
    display: none;
  }

  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box,
  body .athlete-dashboard .athlete-dashboard-container .athlete-add-box {
    width: calc((100% - 20px) / 2);
  }

  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box .bio-body .athlete-profile .profile-pic {
    max-height: none;
  }
}

@media (max-width: 640px) {
  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box,
  body .athlete-dashboard .athlete-dashboard-container .athlete-add-box {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 768px) {
  .modal-animate-container {
    width: calc(100% - 30px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 30px) !important;
  }

  .modal-dialog {
    width: calc(100% - 30px);
    margin-top: 60px;
  }

  .modal-container section {
    min-width: 0 !important;
    -webkit-align-items: stretch;
    align-items: stretch;
  }

  label.clinical-form-field {
    margin: 0 15px;
  }

  fusion-ordered-drop-down.clinical-drop-down {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  fusion-ordered-drop-down.clinical-drop-down > div.column-container {
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-align-items: center;
    align-items: center;
    overflow: hidden;
  }

  fusion-ordered-drop-down.clinical-drop-down .select-toggle {
    overflow: hidden;
    flex: 1;
    min-width: 0;
  }

  fusion-ordered-drop-down.clinical-drop-down .select-toggle span.filtered {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
}

@media (max-width: 768px) {
  body .athlete-list-view.view-layout .athlete-header,
  body .athlete-list-view.view-layout .athlete-row {
    min-width: 680px;
  }

  body .athlete-list-view.view-layout .athlete-name {
    min-width: 130px;
  }

  body .athlete-list-view.view-layout .athlete-stat {
    max-width: 70px;
    min-width: 70px;
    width: 70px;
    font-size: 13px;
  }

  body .athlete-list-view.view-layout .athlete-programs {
    max-width: 110px;
    min-width: 110px;
    width: 110px;
  }

  body .athlete-list-view.view-layout .athlete-last-activity {
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .athlete-list-view.view-layout .athlete-row {
    font-size: 14px;
  }
}

.arrowTabs {
  display: flex;
  align-items: stretch;
  margin: 0 -2px;
}

.arrowTabs > * {
  padding: 0 2px;
}

.arrowTabs > span {
  flex: 1;
  display: block;
  text-align: center;
  display: flex;
  align-items: stretch;
  position: relative;
  cursor: pointer;
}

.arrowTabs > span:before {
  content: " ";
  position: absolute;
  left: 50%;
  margin-left: -8px;
  bottom: -6px;
  height: 0;
  width: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 6px solid #9768EB;
  display: none;
}

.arrowTabs > span span {
  padding: 12px 8px;
  display: block;
  width: 100%;
  background: #F2F4F5;
  color: #ABB0B3;
  font-weight: bold;
  font-size: 14px;
}

.arrowTabs > span:first-child span {
  border-radius: 5px 0 0 5px;
}

.arrowTabs > span:last-child span {
  border-radius: 0 5px 5px 0;
}

.arrowTabs > span.active:before {
  display: block;
}

.arrowTabs > span.active span {
  background: #9768EB;
  color: #fff;
}

.programScheduleTable {
  table-layout: fixed;
  text-align: center;
  border-collapse: collapse;
  width: 100%;
}

@media only screen and (min-width: 1164px) {
  .programScheduleTable {
    width: calc(100% + 70px);
    margin-left: -70px;
  }
}

.programScheduleTable tr > *:first-child {
  width: 70px;
  padding-right: 10px;
}

.programScheduleTable tr > * + * {
  width: calc((100/7*1%) - 10px);
}

.programScheduleTable tr > * + * + * {
  padding-left: 5px;
}

.programScheduleTable tr + tr > * {
  padding-top: 5px;
}

.programScheduleTable thead th {
  color: #BDC1C5;
  font-size: 14px;
  padding: 0 0 15px;
  font-weight: 400;
}

.programScheduleTable tbody th {
  text-align: left;
  vertical-align: middle;
  color: #848990;
  font-size: 14px;
  text-transform: uppercase;
}

.activityPillGroup {
  position: relative;
  background: #F2F4F5;
  border-radius: 8px;
  padding: 8px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  height: 117.3px;
  width: 100%;
}

.activityPillGroup .activityPill {
  height: calc(33.333% - 2px);
}

.activityPillGroup .activityPill + .activityPill {
  margin-top: 3px;
}

.activityPillGroup .addIcon {
  display: none;
  color: #CDD3D7;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px;
  font-size: 40px;
}

.activityPill {
  text-align: center;
  border-radius: 4px;
  padding: 0 5px;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.activityPill--prompt {
  background: #E4E9EC;
  color: #BDC1C5;
  cursor: pointer;
}

.activityPill--active {
  background: #9768EB;
  color: #fff;
  position: relative;
  padding: 0 15px;
}

.activityPill--active .closeIcon {
  position: absolute;
  top: 50%;
  margin-top: -5px;
  font-size: 10px;
  right: 5px;
  cursor: pointer;
}

.activityPillGroup--empty {
  cursor: pointer;
}

.activityPillGroup--empty .addIcon {
  display: block;
}

.selectAddPill {
  padding: 10px;
  background: #fff;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  border-radius: 4px;
}

.selectAddPill .tl-entry .tl-select,
.selectAddPill .tl-entry .tl-select-input .select-toggle {
  min-width: 0;
  max-width: none;
}

.selectAddPill button.primary {
  max-height: none;
  min-height: 0;
  height: auto;
}

.selectAddPill > *:first-child {
  flex: 1;
}

.selectAddPill > * + * {
  margin-left: 15px;
}

.t_pageContentTitle {
  margin: 0;
  color: #9768EB;
  font-size: 24px;
  font-weight: 500;
}

.t_pageContentTitle.top {
  color: #75787B;
}

.ycenter-items {
  -webkit-align-items: center;
  align-items: center;
}

.xgapChildren > * + * {
  padding-left: 15px;
}

.inlineSpaced {
  display: block;
  position: relative;
}

.inlineSpaced > * {
  display: inline-block;
}

.inlineSpaced--align--top > * {
  vertical-align: top;
}

.inlineSpaced--align--middle > * {
  vertical-align: middle;
}

.inlineSpaced--compact {
  margin: -2px;
}

.inlineSpaced--compact > * {
  margin: 2px;
}

.inlineSpaced--spaced {
  margin: -8px;
}

.inlineSpaced--spaced > * {
  margin: 8px;
}

.inlineSpaced--spacedMed {
  margin: -4px;
}

.inlineSpaced--spacedMed > * {
  margin: 4px;
}

.inlineSpaced--optionInputs {
  margin-left: -10px;
  margin-right: -10px;
  margin-top: -4px;
  margin-bottom: -4px;
}

.inlineSpaced--optionInputs > * {
  margin-left: 10px;
  margin-right: 10px;
}

.inlineSpaced--optionInputs > * {
  margin-top: 4px;
  margin-bottom: 4px;
}

.inlineSpaced__child > *:first-child {
  margin-top: 0 !important;
}

.inlineSpaced__child > *:last-child {
  margin-bottom: 0 !important;
}

.color--bad {
  color: #c42a3b;
}

.color--good {
  color: #20b769;
}

.color--ok {
  color: #d8b62f;
}

.color--neutral {
  color: #808080;
}

.color--neutralBlue,
.color--link {
  color: #4AB3DA !important;
}

.flexRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.flexRow__flex {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

button.wide {
  min-width: 200px;
}

.scrollSideWrap__side {
  overflow: auto;
  background: #363A46;
}

@media only screen and (max-width: 900px) {
  .scrollSideWrap__side {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    background: #293040;
  }

  .scrollSideWrap__side .loggedInBlock {
    width: 240px;
  }

  .scrollSideWrap__side .sideBarMainContent {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  .scrollSideWrap__side .sideBarSection {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
  }

  .scrollSideWrap__side .sideBarSection + .sideBarSection {
    padding-top: 0;
  }

  .scrollSideWrap__side .sideBarSection__content {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }
}

@media only screen and (max-width: 900px) {
  .sideBarFilterFields {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    margin: 0 -6px;
  }

  .sideBarFilterFields > * {
    padding: 0 6px;
  }

  .sideBarFilterFields > * {
    width: 50%;
  }
}

.scrollSideWrap__main {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding: 20px;
  background: #EFF1F2;
}

.loggedInBlock {
  background: #9768EB;
  padding-left: 22px;
  padding-right: 22px;
  padding-top: 11px;
  padding-bottom: 21px;
}

.loggedInBlock__name {
  margin: 0 0 7px;
  color: #fff;
  font-size: 26px;
  font-weight: 500;
}

.loggedInMenu__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  cursor: default;
}

.loggedInMenu__trigger__img img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: block;
}

.loggedInMenu__trigger__name {
  color: #fff;
  padding-left: 10px;
  font-weight: 600;
  font-size: 14px;
}

.loggedInMenu__trigger__icon {
  display: block;
  color: #fff;
  font-size: 6px;
  padding: 6px 0 0 5px;
}

.sideBarSection {
  padding-left: 22px;
  padding-right: 22px;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
}

.sideBarSection--dark {
  background: #293040;
}

@media only screen and (max-width: 900px) {
  .sideBarSection__header {
    width: 110px;
  }
}

.sideBarSection__header__title {
  font-size: 20px;
  font-weight: 500;
}

.blockContent > *:first-child {
  margin-top: 0 !important;
}

.blockContent > *:last-child {
  margin-bottom: 0 !important;
}

.openField {
  display: block;
  width: 100%;
  height: 36px;
  border-radius: 4px;
  background: #F4F4F4;
  font-size: 14px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.openField > *:first-child {
  padding-left: 12px;
}

.openField > *:last-child {
  padding-right: 12px;
}

.openField input {
  padding: 5px 0;
}

.openFieldTall_btn {
  max-height: 46px;
  min-height: 46px;
  height: 46px;
}

.openField--rounded {
  border-radius: 20px;
}

.openField--rounded > *:first-child {
  padding-left: 20px;
}

.openField--rounded > *:last-child {
  padding-right: 20px;
}

.openField--darker input {
  color: #75787B;
}

.openField--darker input::-webkit-input-placeholder {
  color: #AAABAF;
}

.openField--darker input:-moz-placeholder {
  color: #AAABAF;
}

.openField--darker input::-moz-placeholder {
  color: #AAABAF;
}

.openField--darker input:-ms-input-placeholder {
  color: #AAABAF;
}

.openField--darker .openFieldSelect__trigger .text {
  color: #75787B;
}

.openField--darker .openFieldSelect__trigger .text.placeholder {
  color: #AAABAF;
  opacity: 1;
}

.openField--tall {
  height: 46px;
}

.openField--tall .openFieldSelect__trigger i {
  font-size: 8px;
  padding-top: 4px;
}

.openFieldSelect {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.openFieldSelect__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.openFieldSelect__trigger .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.openFieldSelect__trigger .text.placeholder {
  opacity: 0.38;
}

.openFieldSelect__trigger i {
  font-size: 6px;
  padding-left: 15px;
  opacity: 0.26;
}

.openFieldInput {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.openFieldInput > * + * {
  margin-left: 15px;
}

.openFieldInput input {
  min-width: 0;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background: none;
  border: 0;
  font-size: inherit;
}

.openFieldInput .submitWrap {
  opacity: 0.36;
  cursor: pointer;
  -webkit-align-self: stretch;
  align-self: stretch;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.openFieldInput .submitWrap:hover {
  opacity: 1;
}

.openFieldInput .icon-search {
  font-size: 16px;
}

.openFieldSelect--dark {
  background: #51596F;
}

.openFieldInput--light {
  background: #fff;
}

.openFieldInput--dark {
  background: #41495C;
}

.openFieldInput--dark input {
  color: #fff;
}

.openFieldInput--dark input::-webkit-input-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input:-moz-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input::-moz-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input:-ms-input-placeholder {
  opacity: 0.38;
}

.darkSideLinks {
  margin: 50px -10px;
  padding: 0;
  list-style-type: none;
}

.darkSideLinks > li + li {
  margin-top: 5px;
}

.darkSideLinks a {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #41495C;
  color: #fff;
  padding: 10px 17px;
  text-decoration: none;
  border-left: 5px solid transparent;
}

.darkSideLinks a.active {
  border-left-color: #9768EB;
  background: #51596F;
}

.darkSideLinks a.active .num {
  color: #fff;
}

.darkSideLinks .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 16px;
}

.darkSideLinks .num {
  color: #707C97;
  font-size: 13px;
  font-weight: 700;
  padding-left: 15px;
}

.pageSectionBlock {
  position: relative;
  background: #fff;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
  border-top: 5px solid #9768EB;
}

.pageSectionBlock__header {
  padding: 10px 15px 30px;
  border-bottom: 1px solid #EEEEEE;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.pageSectionBlock__header > * + * {
  padding-left: 15px;
}

.pageSectionBlock_preHeader {
  margin: 0 0 10px;
}

.actionsBar {
  padding: 8px 15px 8px 8px;
}

button.primary.small {
  font-size: 15px;
  text-transform: none;
  font-weight: 400;
  letter-spacing: 0;
  max-height: none;
  min-height: 0;
  height: 41px;
  padding: 0 14px;
  border-radius: 4px;
}

.btnIcon {
  vertical-align: middle;
  display: inline-block;
  font-size: 20px;
}

.btnIcon.icon-add-team {
  font-size: 20px;
}

.btnIcon.icon-add-person {
  font-size: 20px;
}

.btnIcon.icon-add-practitioner {
  font-size: 20px;
}

.btnIcon--left {
  padding-right: 10px;
}

.iconTextLink {
  white-space: nowrap;
  color: #9768EB;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.iconTextLink i {
  padding-right: 5px;
}

.pageSection + .pageSection {
  margin-top: 30px;
}

.tableFiltersWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: flex-end;
  align-items: flex-end;
  margin: 0 0 10px;
}

.tableFiltersWrap__main {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.tableFiltersWrap__side {
  padding-left: 15px;
  width: 25%;
  min-width: 180px;
}

.paginationInfo {
  font-size: 13px;
  color: #75787B;
}

.compactPagination {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.compactPagination > div {
  display: block;
  cursor: pointer;
  vertical-align: top;
  width: 31px;
  text-align: center;
  background: #9768EB;
  border-radius: 4px;
  opacity: 0.4;
}

.compactPagination > div + * {
  margin-left: 1px;
}

.compactPagination > div:hover {
  opacity: 1;
}

.compactPagination > div:first-child {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.compactPagination > div:last-child {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.compactPagination i {
  position: relative;
  top: -1px;
  display: inline-block;
  color: #fff;
  font-size: 22px;
  line-height: 28px;
  vertical-align: top;
}

.dropdown-wrapper.dropdown-wrapper--inline {
  display: inline-block;
}

.dropdown-wrapper.dropdown-wrapper--inline .trigger {
  border: 0;
  line-height: inherit;
}

.dropdown-wrapper.dropdown-wrapper--inline .trigger .icon-caret-dropdown {
  padding-left: 4px;
  padding-right: 4px;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu {
  background: #fff;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu li {
  min-width: 0;
  padding: 5px;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu li > span > span {
  padding-right: 0;
}

.icon--flip {
  display: inline-block;
  -moz-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

.sortedTableHeader {
  cursor: pointer;
}

.sortedTableHeader.sorted,
.sortedTableHeader:hover {
  background: #F7F7F7;
}

.sortIconWrap {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  height: 16px;
  width: 9px;
  margin-left: 3px;
}

.sortIconWrap:before,
.sortIconWrap:after {
  height: 0;
  width: 0;
  content: " ";
  display: block;
  position: absolute;
  left: 0;
  border-style: solid;
  border-color: transparent;
  border-top-width: 6px;
  border-bottom-width: 6px;
  border-left-width: 4px;
  border-right-width: 4px;
}

.sortIconWrap:before {
  border-bottom-color: #D8D8D8;
  top: -5px;
}

.sortIconWrap:after {
  border-top-color: #D8D8D8;
  bottom: -5px;
}

.sortedTableHeader--desc .sortIconWrap:before {
  display: none;
}

.sortedTableHeader--desc .sortIconWrap:after {
  border-top-color: #787B7E;
}

.sortedTableHeader--asc .sortIconWrap:before {
  border-bottom-color: #787B7E;
}

.sortedTableHeader--asc .sortIconWrap:after {
  display: none;
}

.actionIcon {
  font-size: 140%;
  color: #9768EB;
  cursor: pointer;
}

.actionIcon.icon-letter {
  font-size: 100%;
}

.actionIcon.icon-launch {
  font-size: 192%;
}

.iconActiveCheck {
  font-size: 110%;
  color: #DBDBDB;
}

.iconActiveCheck--active {
  color: #20b769;
}

.inlinePersonBadge {
  font-size: 100%;
  padding-left: 1px;
}

@media only screen and (min-width: 1054px) {
  .altTable tr > * {
    padding-left: 10px;
    padding-right: 10px;
  }

  .altTable tr > *:first-child {
    padding-left: 20px;
  }

  .altTable tr > *:last-child {
    padding-right: 20px;
  }

  .altTable__row {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media only screen and (max-width: 1053px) {
  .altTable tr > * {
    padding-left: 4px;
    padding-right: 4px;
  }

  .altTable tr > *:first-child {
    padding-left: 8px;
  }

  .altTable tr > *:last-child {
    padding-right: 8px;
  }

  .altTable__row {
    padding-left: 8px;
    padding-right: 8px;
  }
}

.altTable__innerWrap {
  color: #75787B;
  font-size: 13px;
  background: #fff;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
}

@media only screen and (max-width: 1053px) {
  .altTable__innerWrap {
    font-size: 12px;
  }
}

.altTable table {
  border-collapse: collapse;
  width: 100%;
  font-size: inherit;
}

.altTable tr > * {
  text-align: center;
  vertical-align: middle;
}

.altTable tr > *:first-child {
  text-align: left;
}

.altTable tr th {
  border-bottom: 1px solid #CFCFCF;
  font-weight: 600;
  padding-top: 14px;
  padding-bottom: 14px;
}

.altTable tr td {
  border-bottom: 1px solid #EEEEEE;
  padding-top: 12px;
  padding-bottom: 12px;
}

.altTable__simpleHeader {
  margin: 0 0 15px;
  color: #75787B;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: bold;
}

.altTable__footerBar {
  text-align: center;
  padding-top: 10px;
  padding-bottom: 10px;
}

.btn {
  display: inline-block;
  white-space: nowrap;
  cursor: pointer;
  text-align: center;
}

.shortWideBtn {
  min-width: 167px;
  line-height: 24px;
  border: 1px solid #9768EB;
  padding: 0 15px;
  font-weight: 500;
  font-size: 13px;
  color: #9768EB;
  border-radius: 3px;
}

.td--name {
  font-weight: 600;
}

.siteHeaderBar__logoGroup {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
}

.siteHeaderBar__logoGroup > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  padding: 15px 20px;
}

.siteHeaderBar__logoGroup > div + div {
  border-left: 1px solid #C8C9C9;
}

.siteHeaderBar__actions {
  padding-right: 20px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.logo--fusSmall {
  width: 119px;
}

.textLink {
  color: #9768EB;
  cursor: pointer;
  font-size: 13px;
}

.textLink--bump {
  font-size: 18px;
}

.backBtn {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  vertical-align: middle;
  width: 45px;
  height: 39px;
  text-align: center;
  background: #9768EB;
  color: #fff;
  font-size: 15px;
  border-radius: 3px;
  cursor: pointer;
}

.flexForm fieldset {
  border: 0;
  margin: 0;
  padding: 12px 0;
}

.flexForm fieldset + fieldset {
  border-top: 1px solid #EFEFF0;
}

.flexFormFooter {
  border-top: 1px solid #EFEFF0;
  padding: 20px 12px;
  text-align: center;
}

.flexFormRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  padding: 0 12px;
  min-height: 46px;
}

.flexFormRow + .flexFormRow {
  margin-top: 12px;
}

.flexFormRow--largeSection {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding-top: 12px;
  padding-bottom: 12px;
}

.flexFormRow--largeSection .flexFormRow__labelCol {
  padding-top: 12px;
}

.flexFormRow__labelCol {
  min-height: 1px;
  width: 182px;
  text-align: right;
  font-size: 13px;
  color: #6C6D6C;
  padding-right: 27px;
}

.flexFormRow__fieldsCol {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.fieldsRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 0 -6px;
}

.fieldsRow > * {
  padding: 0 6px;
}

.fieldsRow--compressed {
  max-width: 500px;
}

.fieldsRow--twoCol > * {
  width: 50%;
}

.fieldsRow--threeCol > * {
  width: 33.33%;
}

.fieldsRow--fourCol > * {
  width: 25%;
}

.iconLabel {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.iconLabel i {
  font-size: 18px;
  color: #AC9EA5;
}

.iconLabel span {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-left: 15px;
}

.uploadBlock {
  max-width: 390px;
  background: #F5F5F5;
  border-radius: 4px;
  padding: 20px 15px 20px 20px;
}

.inputInnerLabel {
  color: #AAABAF;
}

.collapsed__defaultElement {
  display: none;
}

.collapsed .collapsed__defaultElement {
  display: block;
}

.collapsed .collapsed__altElement {
  display: none;
}

.togglerBar {
  padding: 12px 17px;
  background: #F4F4F4;
  border-radius: 4px;
}

.togglerBar + .togglerBar {
  margin-top: 8px;
}

.togglerBar.collapsed .togglerBar__content {
  display: none;
}

.togglerBar__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.togglerBar__trigger__allToggleInput {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.togglerBar__trigger__icon {
  color: #9768EB;
  font-size: 11px;
  cursor: pointer;
  padding: 5px;
}

.togglerBar__content {
  padding: 24px 0 0;
}

.inputOptionsTree {
  list-style: none;
  margin: 0;
  padding: 0;
}

.inputOptionsTree ul {
  list-style: none;
  margin: 0 0 0 30px;
  padding: 0;
}

.inputOptionsTree li + li,
.inputOptionsTree label + ul {
  margin-top: 8px;
}

.inputOptionsTree > li > label span {
  font-weight: 700;
}

.inputOptionsTree > li > ul {
  margin-bottom: 24px;
}

.inputOptionsTree > li > ul > li > ul {
  margin-bottom: 18px;
}

.columnsList {
  list-style: none;
  margin: 30px 0;
  padding: 0;
}

.columnsList > li {
  margin-bottom: 11px;
}

.columnsList--4 {
  -webkit-column-count: 4;
  -moz-column-count: 4;
  column-count: 4;
}

.closableButton {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #E9F0F2;
  border-radius: 5px;
  padding: 8px 16px;
  color: #75787B;
}

.closableButton span {
  white-space: nowrap;
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.9px;
}

.closableButton i {
  margin-left: 7px;
  padding: 3px 0;
  cursor: pointer;
  font-size: 18px;
}

label.checkbox-input span,
label.radio-input span {
  font-size: 13px;
  color: #75777A;
}

.responsiveShow {
  display: none;
}

@media only screen and (max-width: 900px) {
  .responsiveShow--smDown {
    display: block;
  }
}

.iconColCell {
  width: 20px;
}

.iconColCell .icon-edit {
  position: relative;
  top: -2px;
}

.openFieldWidth--max100 {
  max-width: 100%;
}

.openFieldWidth--small {
  width: 52px;
}

.openFieldWidth--medium {
  width: 148px;
}

.openFieldWidth--rpe {
  width: 200px;
}

.cellWidth--trainingLoad {
  width: 132px;
}

.scoreNum {
  font-weight: 500;
  font-size: 18px;
}

.openField--centered input {
  text-align: center;
}

.tlFiltersHeader {
  padding: 15px 15px;
}

.tlFiltersHeaderMain {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.tlFiltersHeaderMain > * + * {
  padding-left: 15px;
}

.flTable tr > * {
  text-align: left;
  padding-right: 0;
  padding-left: 0;
}

.flTable tr > * + * {
  padding-left: 15px;
}

.flTable tr > *:first-child {
  padding-left: 15px;
}

.flTable tr > *:last-child {
  padding-right: 15px;
}

.flTable .proccessArrow {
  margin-right: -15px;
}

.flTableColWidth {
  box-sizing: content-box;
}

@media only screen and (min-width: 1054px) {
  .flTableColWidth--title {
    width: 300px;
  }

  .flTableColWidth--session {
    width: 300px;
  }
}

.flTableColWidth--durationTarget {
  width: auto;
}

.smallFieldLabel {
  padding: 0 0 7px;
  font-size: 14px;
  color: #75787B;
}

.tlFiltersHeaderSide {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.numName {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.numName__num {
  opacity: 0.4;
}

.numName__name {
  padding-left: 15px;
}

.numName--light {
  color: #75777A;
}

.openField--medium {
  height: 39px;
}

.selectBar {
  background: #9768EB;
  color: #fff;
  font-size: 15px;
  border-radius: 4px;
  padding: 9px 15px;
  line-height: 21px;
}

.selectBar.tall {
  padding: 12.5px 15px;
}

.selectBar i {
  display: none;
  padding-left: 5px;
  font-size: 11px;
}

.selectBar.isSelected {
  background: #F4F4F4;
  color: #C7CBCE;
}

.selectBar.isSelected i {
  display: inline;
}

.submenu__numTextWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 13px;
}

.submenu__numTextWrap .num {
  box-sizing: content-box;
  font-weight: 700;
  color: #6C6D6C;
  width: 15px;
  padding-right: 5px;
}

.submenu__numTextWrap .text {
  font-weight: 400;
  text-transform: none;
}

.contentWithProcessArrowWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.contentWithProcessArrowWrap > *:first-child {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.contentWithProcessArrowWrap .proccessArrow {
  text-align: center;
  width: 40px;
  color: #EFF1F2;
  font-size: 15px;
}

@media only screen and (min-width: 1054px) {
  .contentWithProcessArrowWrap .proccessArrow {
    width: 100px;
  }
}

.openFieldSelect__trigger .icon-target {
  font-size: 19px;
  color: #AAABAF;
  padding-right: 8px;
}

.TL-Duration input:invalid {
  border: 1px solid #CC0000;
  border-radius: 4px;
  height: 100%;
  background: #FFCCCC;
}

.backToLink {
  margin: 0 0 20px;
  display: inline-block;
  color: #9768EB;
  cursor: pointer;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.backToLink i {
  font-size: 15px;
  display: block;
}

.backToLink .text {
  display: block;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  padding-left: 10px;
}

.compactFormStack > * + * {
  margin-top: 10px;
}

.inlineOverlayWrap {
  position: relative;
}

.inlineOverlay {
  position: absolute;
  z-index: 10;
  top: calc(100% - 15px);
  left: 50%;
  transform: translate(-50%, 0);
  background: #fff;
  width: 377px;
  max-width: calc(100% - 30px);
  padding: 15px;
  border: 1px solid #EEEEEE;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.13);
  border-radius: 4px;
}

.inlineOverlay__triangle {
  position: absolute;
  top: 3px;
  left: 50%;
  transform: translate(-50%, -100%);
  width: 29px;
  height: 17px;
  background: url(../images/overlay-triangle.png) center center no-repeat;
  background-size: contain;
}

.inlineOverlay__close {
  position: absolute;
  top: 15px;
  right: 15px;
  font-size: 17px;
  color: #9768EB;
  cursor: pointer;
}

.inlineOverlay__title {
  margin: 0 0 20px;
  padding: 0 30px;
  font-size: 18px;
  font-weight: 500;
  color: #75787B;
  text-align: center;
}

.chart-date-header + .dlRow {
  margin: 10px 0 20px;
}

.dlRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.dlRow + .chart-date-header {
  margin-top: 30px;
}

.dlRow + .dlRow {
  margin-top: 20px;
}

.dlItem__label {
  font-weight: 500;
  color: #75777A;
  font-size: 14px;
}

.dlItem__num {
  font-weight: 100;
  font-size: 30px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.dlItem__num .scoreChangeIcon {
  font-size: 7px;
  vertical-align: middle;
  padding-right: 8px;
}

.menu-pointer {
  cursor: pointer;
}

.weeklyScoreChangeIcon {
  font-size: 7px;
  vertical-align: middle;
  padding-right: 4px;
  margin-right: 4px;
}

.profileTLChangeIcon {
  font-size: 10px;
  vertical-align: middle;
  padding-right: 1px;
  padding-bottom: 3px;
}

.review-container .review-tabs + div {
  padding-top: 10px;
  border-top: 1px solid #0af;
}

.review-container .review-frame {
  display: flex;
  align-items: center;
  flex: 0.95;
  padding-left: 5px;
  min-height: 40px;
  font-size: 20px;
  border-bottom: solid 1px #c0c0c0;
  cursor: pointer;
}

.review-container .review-frame.error {
  font-size: 18px;
  font-weight: normal;
  color: #222;
  cursor: not-allowed;
}

.review-container .review-frame i.fa.fa-trash {
  color: #c0c0c0;
}

.review-container .review-frame i.fa.fa-trash:hover {
  color: #990000;
}

.review-container .review-frame img {
  max-width: 18px;
}

.review-container input[type=radio] {
  display: none;
}

.review-container input[type=radio]:checked + label {
  color: #0af;
  border: 1px solid #abc;
  border-top: 2px solid #0af;
  border-bottom: 1px solid #fff;
}

.review-container label[for*="Keypoints"],
.review-container label[for*="Reps"],
.review-container label[for*="Compensations"] {
  display: inline-block;
  margin: 0 0 -1px;
  padding: 10px 25px;
  font-size: 16px;
  text-align: center;
  color: #abc;
  border: 1px solid transparent;
}

.review-container label[for*="Keypoints"]:before,
.review-container label[for*="Reps"]:before,
.review-container label[for*="Compensations"]:before {
  font-family: fontawesome;
  font-weight: normal;
  margin-right: 10px;
}

.review-container label[for*="Keypoints"]:hover,
.review-container label[for*="Reps"]:hover,
.review-container label[for*="Compensations"]:hover {
  color: #789;
  cursor: pointer;
}

.review-container label[for*="Keypoints"]:before {
  content: '\F192';
}

.review-container label[for*="Reps"]:before {
  content: '\F0CB';
}

.review-container label[for*="Compensations"]:before {
  content: '\F1FE';
}

.review-container .comps input {
  display: none;
}

.review-container .comps label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #00B96D;
  border: 1px solid #00B96D;
  border-radius: 5px;
  min-width: 80px;
  line-height: 35px;
  color: #ffffff;
  font-weight: 600;
  text-transform: uppercase;
}

.review-container .comps label.found {
  background-color: #D1404B;
  border-color: #D1404B;
}

.review-container .comps label.hard {
  background-color: purple;
  border-color: purple;
}

.review-container .comps label.edge {
  background-color: #abc;
  border-color: #abc;
}

.assessment-container {
  margin-bottom: 40px;
}

.assessment-container a {
  text-decoration: none;
  color: #9768EB;
  cursor: pointer;
}

.assessment-container a:hover {
  text-decoration: underline;
}

.assessment-container.more {
  margin-top: 20px;
}

.assessment-container.more > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.assessment-container.info-only {
  margin-top: 60px;
}

.assessment-container.info-only > .list-container > div:not(.scroll-container) {
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin-right: 20px;
}

.assessment-container.info-only > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
  font-size: 16px;
  text-indent: 10px;
  text-transform: uppercase;
  border-bottom: 1px solid #c9c9c9;
}

.assessment-container > .list-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin: 30px 0;
}

.assessment-container > .list-container > div:not(.scroll-container) {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.assessment-container > .list-container > div:not(.scroll-container) span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: default;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  min-width: 140px;
  max-width: 140px;
  padding: 0 4px;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info > a > span {
  cursor: pointer;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info.action {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  min-width: 60px;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info.action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container > .list-container > div:not(.scroll-container).header-row {
  min-height: 40px;
}

.assessment-container > .list-container > div:not(.scroll-container).header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  cursor: default;
}

.assessment-container > .list-container > .scroll-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.assessment-container > .list-container > .scroll-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin-right: 5px;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.assessment-container > .list-container > .scroll-container > div span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: default;
}

.assessment-container > .list-container > .scroll-container > div .list-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  min-width: 140px;
  max-width: 140px;
  padding: 0 4px;
}

.assessment-container > .list-container > .scroll-container > div .list-info.action {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  min-width: 60px;
}

.assessment-container > .list-container > .scroll-container > div .list-info.action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container > .no-data {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 250px;
  font-size: 20px;
}

.assessment-container .info-column {
  margin-right: 25px;
  min-width: 240px;
}

.assessment-container .info-column > .info-container {
  padding: 8px;
  border: 1px solid #c0c0c0;
}

.assessment-container .info-column > .info-container > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 8px 0px;
  min-height: 35px;
  background-color: #dcdcdc;
}

.assessment-container .info-column > .info-container > div:not(.banner) {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.assessment-container .info-column > .info-container > div:not(.banner) > div:first-of-type {
  min-width: 100px;
}

.assessment-container .info-column > .info-container > div:not(.banner) > div:last-of-type {
  max-width: 120px;
}

.assessment-container .info-column > .info-container > div:not(.banner).state-info {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.assessment-container .info-column .info-container + .info-container {
  margin-top: 30px;
}

.assessment-container .media-column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.assessment-container .video-column {
  position: relative;
  margin-bottom: 25px;
  width: 100%;
  display: flex;
  justify-content: center;
}

.assessment-container .video-column > video,
.assessment-container .video-column > canvas {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 160px);
  width: auto;
  height: auto;
}

.assessment-container .video-column .video-play-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  cursor: pointer;
}

.assessment-container .video-column .video-play-overlay.is-hidden {
  display: none;
}

.assessment-container .video-column .video-play-overlay i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 84px;
  padding-left: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  font-size: 38px;
  opacity: 0.9;
}

.assessment-container .detail-column {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  min-width: 0;
}

.assessment-container .detail-column .table-scroll {
  overflow-x: auto;
  padding-bottom: 5px;
}

.assessment-container .detail-column .detail-table {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.assessment-container .detail-column .detail-table > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin-bottom: 5px;
}

.assessment-container .detail-column .detail-table > div.header {
  font-weight: 600;
}

.assessment-container .detail-column .detail-table > div.items {
  min-height: 50px;
  border-top: 1px solid #dadada;
}

.assessment-container .detail-column .exercise-table {
  min-width: 700px;
}

.assessment-container .detail-column .exercise-list.items {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding: 12px 0;
}

.assessment-container .detail-column .exercise-list > .name {
  -webkit-flex: 0.6;
  -ms-flex: 0.6;
  flex: 0.6;
  min-width: 160px;
  cursor: pointer;
}

.assessment-container .detail-column .exercise-list > .status {
  -webkit-flex: 0.4;
  -ms-flex: 0.4;
  flex: 0.4;
  min-width: 110px;
  text-align: center;
}

.assessment-container .detail-column .exercise-list > .reasoning {
  -webkit-flex: 1.4;
  -ms-flex: 1.4;
  flex: 1.4;
  min-width: 340px;
  padding-right: 15px;
  text-align: left;
}

.assessment-container .detail-column .exercise-list > .action {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 100px;
}

.assessment-container .detail-column .exercise-list > .action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container .detail-column .exercise-list .reason-entry + .reason-entry {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dotted #cdcdcd;
}

.assessment-container .detail-column .exercise-list .reason-source {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #6d6e72;
}

.assessment-container .detail-column .exercise-list .reason-reason {
  font-size: 13px;
  line-height: 1.35;
  word-break: break-word;
}

.assessment-container .detail-column .exercise-list .reason-meta {
  font-size: 12px;
  line-height: 1.35;
  color: #6d6e72;
}

.assessment-container .detail-column .exercise-list .reason-warning {
  font-size: 12px;
  line-height: 1.35;
  color: #7f6a18;
}

.assessment-container .detail-column .exercise-list .reason-muted {
  font-size: 12px;
  font-style: italic;
  color: #808080;
}

.assessment-container .detail-column .measurement-list.header .name ~ div {
  min-width: 80px;
  text-align: center;
}

.assessment-container .detail-column .measurement-list > .name {
  min-width: 300px;
  max-width: 300px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.assessment-container .detail-column .measurement-list .name ~ div {
  margin-left: 5px;
}

.assessment-container .detail-column .measurement-list input[type=checkbox] {
  display: none;
}

.assessment-container .detail-column .measurement-list label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #00B96D;
  border: 1px solid #00B96D;
  border-radius: 5px;
  min-width: 80px;
  line-height: 35px;
  color: #ffffff;
  font-weight: 600;
  text-transform: uppercase;
  cursor: pointer;
}

.assessment-container .detail-column .measurement-list label.inactive {
  cursor: not-allowed;
}

.assessment-container .detail-column .measurement-list label.inactive:not(.found) {
  background-color: #c0c0c0;
  border-color: #c0c0c0;
}

.assessment-container .detail-column .measurement-list label.found {
  background-color: #D1404B;
  border-color: #D1404B;
}

.assessment-container .detail-column .exercise-status {
  margin-top: 20px;
}

.assessment-container .detail-column .exercise-status > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 52px;
  background-color: #c0c0c0;
  border: 1px solid #dadada;
}

.assessment-container .detail-column .exercise-status > div.pending {
  background-color: #00b96d;
}

.assessment-container .detail-column .exercise-status > div .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding-left: 10px;
  font-size: 16px;
}

.assessment-container .detail-column .exercise-status > div .text.manual {
  color: #fefefe;
}

.assessment-container .detail-column .exercise-status > div .text.pending {
  color: #efefef;
}

.assessment-container .detail-column .exercise-status > div .text.complete {
  color: #2d6b1d;
}

.assessment-container .detail-column .exercise-status > div .text.aborted {
  color: #2d1818;
}

.assessment-container .detail-column .exercise-status > div .button {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.assessment-container .detail-column .exercise-status > div .button > button {
  min-height: 40px;
  max-height: 40px;
}

.assessment-container .detail-column .measurement-save {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin: 20px 0;
}

.assessment-container .detail-column .measurement-save > button {
  min-width: 130px;
  text-transform: uppercase;
}

.programs-page-host {
  display: flex;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  background: #f6f6f7;
}

.programs-page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  padding: 24px 32px 48px;
  background: #f6f6f7;
  box-sizing: border-box;
  overflow-y: auto;
}

.programs-page button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.programs-page button + button {
  margin-left: 0;
}

.programs-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.programs-page__title {
  margin: 0;
  font-size: 30px;
  font-weight: 500;
  line-height: 38px;
  color: #1f1f28;
}

.programs-page__catalog-btn {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 40px;
  padding: 0 18px;
  background: #f6f6f7;
  border: 1px solid #9768EB;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768EB;
  cursor: pointer;
}

.programs-page__catalog-btn:hover {
  background: #f2edfc;
}

.programs-page__tabs {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.programs-page__tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  height: 40px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.programs-page__tab--active {
  border-color: #9768EB;
  background: #f2edfc;
  color: #9768EB;
}

.programs-page__tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  padding: 0 6px;
  background: #f2f2f4;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
}

.programs-page__tab--active .programs-page__tab-count {
  background: rgba(255, 255, 255, 0.75);
  color: #9768EB;
}

.programs-page__notice {
  display: flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  height: 44px;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fdf8ec;
  border: 1px solid #f2e3bd;
  border-radius: 6px;
}

.programs-page__notice-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
  position: relative;
  top: -1px;
}

.programs-page__notice-text {
  flex: 1 1 auto;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #d68b00;
}

.programs-page__notice-close {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 40px;
  padding: 0 4px;
  background: none;
  border: 0;
  font-size: 20px;
  line-height: 1;
  color: #d68b00;
  cursor: pointer;
}

.programs-page__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 361px);
  gap: 24px;
  align-items: start;
}

.programs-page__skeleton-grid {
  display: contents;
}

.programs-page__empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 96px 24px;
  text-align: center;
}

.programs-page__empty-title {
  margin: 0;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-align: center;
  color: #4f4f4f;
}

.programs-page__empty-description {
  margin: 0;
  max-width: 420px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-align: center;
  color: #4f4f4f;
}

.programs-page__empty .programs-page__catalog-btn {
  margin-top: 16px;
}

.programs-page__history-table-wrap {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  overflow-x: auto;
}

.programs-page__history-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  table-layout: fixed;
}

.programs-page__history-th {
  height: 40px;
  padding: 0 16px;
  border-bottom: 1px solid #ececec;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  text-align: left;
  vertical-align: middle;
}

.programs-page__history-th--name {
  width: 38%;
}

.programs-page__history-th--date {
  width: 16%;
}

.programs-page__history-th--created {
  width: 30%;
}

.programs-page__history-sort {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: none;
  border: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.programs-page__history-sort:hover {
  color: #1f1f28;
}

.programs-page__history-sort-icon {
  flex: 0 0 auto;
  display: block;
  width: 12px;
  height: 12px;
}

.programs-page__history-sort-icon path {
  fill: #6d6d6d;
}

.programs-page__history-sort-icon--asc .programs-page__history-sort-up,
.programs-page__history-sort-icon--desc .programs-page__history-sort-down {
  fill: #9768eb;
}

.programs-page__history-row {
  height: 72px;
  border-bottom: 1px solid #ececec;
}

.programs-page__history-row:last-child {
  border-bottom: 0;
}

.programs-page__history-td {
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
  vertical-align: middle;
}

.programs-page__history-td--name {
  display: flex;
  align-items: center;
  gap: 12px;
}

.programs-page__history-td--date {
  color: #6d6d6d;
}

.programs-page__history-td--created {
  color: #6d6d6d;
}

.programs-page__history-thumb {
  display: block;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 4px;
  background: #d9d9d9;
  overflow: hidden;
}

.programs-page__history-thumb-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.programs-page__history-skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px 0;
}

.programs-page__history-skeleton-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
}

.programs-page__history-skeleton-thumb {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 4px;
}

.programs-page__history-name {
  min-width: 0;
}

.programs-page__history-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768EB;
  overflow-wrap: break-word;
}

.programs-page__history-genre {
  margin-top: 2px;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.programs-page__history-footer {
  padding: 14px 16px;
  border-top: 1px solid #ececec;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.programs-page__history-footer--cards {
  padding: 4px 4px 0;
  border-top: 0;
}

.programs-page__history-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.programs-page__history-sortbar {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
}

.programs-page__history-chip {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-sizing: border-box;
  height: 40px;
  padding: 0 12px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.programs-page__history-chip--active {
  border-color: #9768EB;
  background: #f2edfc;
  color: #9768EB;
}

.programs-page__history-chip-icon {
  flex: 0 0 auto;
  font-size: 12px;
  color: inherit;
}

.programs-page__history-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  box-sizing: border-box;
  padding: 12px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
}

.programs-page__history-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.programs-page__history-card .programs-page__history-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  max-height: 40px;
  overflow: hidden;
}

.programs-page__history-dates {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-top: 4px;
}

.programs-page__history-date {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.programs-page__history-date-label {
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: #6d6d6d;
}

.programs-page__history-date-value {
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
}

.program-card {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 361px;
  height: 348px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
  overflow: visible;
}

.program-card__media {
  position: relative;
  flex: 0 0 auto;
  height: 152px;
  overflow: visible;
  background: #e7e7e7;
  border-radius: 6px 6px 0 0;
}

.program-card__media-img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 6px 6px 0 0;
}

.program-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 2px 8px;
  background: #f2edfc;
  border-radius: 16px;
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 17px;
  letter-spacing: 0;
  text-align: center;
  color: #533d82;
}

.program-card__menu {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
}

.program-card__menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-card__menu-btn:hover {
  color: #1f1f28;
  background: #f2f2f4;
}

.program-card__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  box-sizing: border-box;
  width: 180px;
  min-width: 180px;
  padding: 0;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);
  overflow: hidden;
}

.program-card__menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  padding: 14px 16px;
  background: none;
  border: 0;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #f04438;
  text-align: left;
  cursor: pointer;
}

.program-card__menu-item:hover {
  background: #fef3f2;
  color: #f04438;
}

.program-card__menu-item-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  padding: 12px;
  box-sizing: border-box;
  overflow: hidden;
}

.program-card__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  flex-shrink: 0;
  max-height: 40px;
  overflow: hidden;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-card__tags {
  display: flex;
  flex: 0 0 auto;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.program-card__tag {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  gap: 4px;
  height: 20px;
  padding: 0 8px;
  background: #f2f2f4;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  text-align: center;
}

.program-card__tag-icon {
  flex: 0 0 auto;
  font-size: 10px;
  line-height: 1;
  color: inherit;
}

.program-card__tag-icon--img {
  display: block;
  width: 12px;
  height: 12px;
  object-fit: contain;
}

.program-card__meta {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  flex-shrink: 1;
  gap: 4px;
  min-height: 0;
  overflow: hidden;
}

.program-card__meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0;
  color: #6d6d6d;
}

.program-card__meta-name {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.program-card__meta-date {
  flex: 0 0 auto;
  white-space: nowrap;
}

.program-card__meta-icon {
  flex: 0 0 auto;
  width: 14px;
  font-size: 12px;
  text-align: center;
  color: #6d6d6d;
}

.program-card__meta-icon--img {
  display: block;
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.program-card__meta-icon--svg {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 14px;
}

.program-card__meta-icon--svg svg {
  display: block;
  width: 14px;
  height: 14px;
}

.program-card__meta-dot {
  flex: 0 0 auto;
  margin: 0 -2px;
  font-size: 12px;
  line-height: 16px;
  color: #c4c4c8;
}

.program-card__schedule {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 12px;
  border-top: 1px solid #ececec;
}

.program-card__schedule-label {
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-card__days {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.program-card__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  background: #f2f2f4;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  color: #c4c4c8;
}

.program-card__day--on {
  background: #f2edfc;
  color: #32254f;
}

.program-card__actions {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
  padding-top: 4px;
}

.program-card__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  gap: 8px;
  width: 100%;
  height: 44px;
  padding: 0 16px 0 12px;
  background: #9768EB;
  border: 1px solid #9768EB;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #fff;
  cursor: pointer;
}

.program-card__cta:hover {
  opacity: 0.9;
}

.program-card__cta--ghost {
  background: #fff;
  color: #9768EB;
}

.program-card__cta--ghost:hover {
  background: #f2edfc;
  opacity: 1;
}

.program-card__cta-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-card__notice {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  gap: 8px;
  width: 100%;
  height: 44px;
  padding: 0 12px;
  background: #fff7e4;
  border: 1px solid #fde8be;
  border-radius: 4px;
}

.program-card__notice-icon {
  flex: 0 0 auto;
}

.program-card__notice-text {
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: #d68b00;
}

.program-card--skeleton {
  pointer-events: none;
}

.program-card--skeleton .program-card__media {
  background: #ececef;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.program-card__skeleton-title {
  height: 16px;
  width: 72%;
  max-width: none;
}

.program-card__skeleton-tag {
  height: 20px;
  width: 72px;
  border-radius: 4px;
}

.program-card__skeleton-meta {
  height: 12px;
  width: 58%;
  max-width: none;
}

.program-card__skeleton-cta {
  height: 44px;
  width: 100%;
  max-width: none;
  border-radius: 4px;
  margin-top: auto;
}

@media (max-width: 1100px) {
  .programs-page {
    padding: 20px 20px 40px;
  }

  .programs-page__grid {
    grid-template-columns: repeat(auto-fill, 361px);
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .programs-page {
    padding: 16px 16px 32px;
  }

  .programs-page__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .programs-page__title {
    font-size: 24px;
    line-height: 32px;
  }

  .programs-page__catalog-btn {
    width: 100%;
  }

  .programs-page__tabs {
    flex-wrap: nowrap;
    gap: 8px;
  }

  .programs-page__tab {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
    padding: 0 10px;
    gap: 6px;
    font-size: 12px;
  }

  .programs-page__tab-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .programs-page__tab-count {
    flex: 0 0 auto;
    min-width: 20px;
    padding: 0 5px;
  }

  .programs-page__grid {
    grid-template-columns: 361px;
    justify-content: center;
  }

  .programs-page__empty {
    padding: 56px 16px;
  }
}

.programs-toast {
  position: fixed;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 900;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 32px;
  height: 44px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 8px 8px 8px 16px;
  border-radius: 4px;
  background: #35354b;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.24);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) .programs-toast {
  left: calc(50% + 240px / 2);
  max-width: calc(100vw - 240px - 32px);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .programs-toast {
  left: calc(50% + 70px / 2);
  max-width: calc(100vw - 70px - 32px);
}

.programs-toast__check {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
  margin-right: -20px;
}

.programs-toast__message {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: -0.02em;
  color: #ffffff;
}

.programs-toast__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #ffffff;
  cursor: pointer;
}

.programs-toast__close img {
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.programs-toast__close:hover {
  background: rgba(255, 255, 255, 0.12);
}

@media (max-width: 768px) {
  .programs-toast {
    bottom: 16px;
    max-width: calc(100vw - 24px);
    gap: 16px;
  }

  .programs-toast__check {
    margin-right: 0;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .programs-toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .programs-toast {
    left: 50%;
    max-width: calc(100vw - 24px);
  }
}

.program-delete {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 512px;
  max-width: calc(100vw - 32px);
  padding: 32px 32px 24px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(16, 24, 40, 0.24);
  font-family: 'Nudista', sans-serif;
}

.program-delete__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 28px;
  right: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #9d9d9d;
  cursor: pointer;
}

.program-delete__close:hover {
  background: transparent;
  color: #000000;
}

.program-delete__title {
  margin: 0 40px 0 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.program-delete__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 24px;
}

.program-delete__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  margin: 0;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
}

.program-delete__btn--ghost {
  gap: 10px;
  min-width: 88px;
  padding: 16px 20px;
  line-height: 16px;
  border: 1px solid #b0b0b0;
  background-color: #ffffff;
  color: #000000;
}

.program-delete__btn--ghost:hover {
  background-color: #f7f7f8;
}

.program-delete__btn--danger {
  gap: 12px;
  min-width: 94px;
  padding: 14px 24px;
  line-height: 20px;
  border: 0;
  background-color: #f04438;
  color: #ffffff;
}

.program-delete__btn--danger:hover {
  background-color: #d92d20;
}

@media (max-width: 480px) {
  .program-delete {
    padding: 20px;
  }

  .program-delete__close {
    top: 16px;
    right: 16px;
  }

  .program-delete__actions {
    margin-top: 20px;
  }
}

.program-catalog {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 848px;
  padding: 24px 32px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-catalog button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-catalog button + button {
  margin-left: 0;
}

.program-catalog input[type='text'] {
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
}

.program-catalog__breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.program-catalog__crumb {
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__crumb:hover {
  color: #1f1f28;
}

.program-catalog__crumb--current {
  color: #9768eb;
  cursor: default;
}

.program-catalog__crumb--current:hover {
  color: #9768eb;
}

.program-catalog__crumb-sep {
  flex: 0 0 auto;
  color: #6d6d6d;
}

.program-catalog__title {
  margin: 0 0 20px;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.program-catalog__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.program-catalog__filters {
  display: flex;
  align-items: center;
  gap: 12px;
}

.program-catalog__filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 4px 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__filter--active {
  padding-left: 12px;
  border-color: #7355b5;
  background: #f2edfc;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  color: #9768eb;
}

.program-catalog__filter-icon {
  font-size: 14px;
}

.program-catalog__filter-icon--img {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  background-color: #6c6c7c;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.program-catalog__filter--active .program-catalog__filter-icon--img {
  background-color: #7355b5;
}

.program-catalog__search {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  width: 215px;
  height: 36px;
  padding: 8px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
}

.program-catalog__search--inline {
  flex: 1 1 auto;
  width: auto;
  margin: 12px 20px;
}

.program-catalog__search-icon {
  flex: 0 0 auto;
  font-size: 13px;
  color: #6d6d6d;
}

.program-catalog__search-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  line-height: 20px;
  color: #1f1f28;
}

.program-catalog__search-input::-webkit-input-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:-moz-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input::-moz-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:-ms-input-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:focus {
  outline: none;
}

.program-catalog__search-clear {
  flex: 0 0 auto;
  padding: 0 2px;
  background: none;
  border: 0;
  font-size: 18px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__groups,
.program-catalog__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-catalog__sections {
  margin-top: 12px;
}

.program-catalog__group {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-catalog__group--open {
  border-color: #9768eb;
}

.program-catalog__group-header {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: auto;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-catalog__group--open .program-catalog__group-header {
  background: #f7f7f8;
}

.program-catalog__group-title {
  font-size: 16px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-catalog__group-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  padding: 0 6px;
  background: #f2f2f4;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
}

.program-catalog__group-chevron {
  flex: 0 0 auto;
  margin-left: auto;
  font-size: 14px;
  color: #6d6d6d;
}

.program-catalog__group-body {
  border-top: 1px solid #ececec;
}

.program-catalog__subgroup-title {
  padding: 12px 20px 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.program-catalog__row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: auto;
  padding: 12px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-catalog__row + .program-catalog__row {
  border-top: 1px solid #ececec;
}

.program-catalog__row:hover {
  background: #fafafa;
}

.program-catalog__thumb {
  display: block;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 4px;
  background: #d9d9d9;
  overflow: hidden;
}

.program-catalog__thumb-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.program-catalog__main {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 auto;
  min-width: 0;
}

.program-catalog__name {
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
  overflow-wrap: break-word;
  word-break: break-word;
}

.program-catalog__badge {
  flex: 0 0 auto;
  padding: 2px 10px;
  background: #e8f8ef;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
  color: #17945a;
}

.program-catalog__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.program-catalog__meta-sep {
  font-size: 10px;
}

.program-catalog__row-chevron {
  flex: 0 0 auto;
  font-size: 12px;
  color: #6d6d6d;
}

.program-catalog__skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-catalog__skeleton-group {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 20px;
}

.program-catalog__skeleton-title {
  flex: 0 1 auto;
  width: 180px;
  height: 16px;
  margin: 2px 0;
}

.program-catalog__skeleton-title--short {
  width: 128px;
}

.program-catalog__skeleton-count {
  flex: 0 0 auto;
  width: 22px;
  height: 20px;
  border-radius: 11px;
}

.program-catalog__skeleton-chevron {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-left: auto;
}

.program-catalog__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.program-catalog__action {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: auto;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
  cursor: pointer;
}

.program-catalog__action:hover {
  border-color: #9768eb;
}

.program-catalog__action-icon,
.program-catalog__action-plus {
  flex: 0 0 auto;
  font-size: 14px;
  color: #9768eb;
}

.program-catalog__action-plus {
  margin-left: auto;
}

.program-catalog__action-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.program-catalog__action-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
}

.program-catalog__action-subtitle {
  font-size: 12px;
  line-height: 16px;
  color: #6d6d6d;
}

@media (max-width: 1100px) {
  .program-catalog {
    padding: 20px 20px 40px;
  }
}

@media (max-width: 768px) {
  .program-catalog {
    padding: 16px 16px 32px;
  }

  .program-catalog__title {
    font-size: 24px;
    line-height: 32px;
  }

  .program-catalog__toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .program-catalog__filters {
    flex-wrap: wrap;
  }

  .program-catalog__search {
    flex: 1 1 auto;
  }

  .program-catalog__main {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .program-catalog__meta {
    flex-wrap: wrap;
  }

  .program-catalog__groups .program-catalog__row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    grid-template-areas: 'thumb main chevron' 'thumb meta chevron';
    align-items: center;
    column-gap: 12px;
    row-gap: 4px;
  }

  .program-catalog__groups .program-catalog__thumb {
    grid-area: thumb;
    align-self: start;
  }

  .program-catalog__groups .program-catalog__main {
    grid-area: main;
  }

  .program-catalog__groups .program-catalog__meta {
    grid-area: meta;
    justify-content: flex-start;
  }

  .program-catalog__groups .program-catalog__row-chevron {
    grid-area: chevron;
  }
}

.program-detail {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 848px;
  padding: 24px 32px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-detail button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-detail button + button {
  margin-left: 0;
}

.program-detail__breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.program-detail__crumb {
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-detail__crumb:hover {
  color: #1f1f28;
}

.program-detail__crumb--current {
  color: #9768eb;
  cursor: default;
}

.program-detail__crumb--current:hover {
  color: #9768eb;
}

.program-detail__crumb-sep {
  flex: 0 0 auto;
  color: #6d6d6d;
}

.program-detail__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 10px;
}

.program-detail__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: 30px;
  font-weight: 500;
  line-height: 38px;
  color: #1f1f28;
}

.program-detail__header-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  flex: 0 0 auto;
  gap: 12px;
}

.program-detail__chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 16px;
}

.program-detail__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.program-detail__chip--warn {
  color: #c42a3b;
  font-weight: 600;
}

.program-detail__chip--current {
  padding: 2px 10px;
  background: #e8f8ef;
  border-radius: 12px;
  font-weight: 600;
  color: #17945a;
}

.program-detail__chip-icon {
  flex: 0 0 auto;
}

.program-detail__description {
  margin-bottom: 20px;
  font-size: 15px;
  line-height: 24px;
  color: #1f1f28;
}

.program-detail__description p {
  margin: 0 0 12px;
}

.program-detail__description p:last-child {
  margin-bottom: 0;
}

.program-detail__notice {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  box-sizing: border-box;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fffaf0;
  border: 1px solid #fde8be;
  border-radius: 8px;
}

.program-detail__notice-icon {
  flex: 0 0 auto;
}

.program-detail__notice-text {
  font-family: "Nudista-web", "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0;
  color: #d68b00;
}

.program-detail__schedule {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 60px;
  box-sizing: border-box;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-detail__schedule-label {
  font-family: "Nudista-web", "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-detail__days {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
  margin-right: 24px;
}

.program-detail__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  background: #f2f2f4;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 28px;
  color: #6d6d6d;
}

.program-detail__day--on {
  background: #f2edfc;
  color: #32254f;
}

.program-detail__schedule-edit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: none;
  border: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: -0.02em;
  text-align: right;
  vertical-align: middle;
  color: #9768eb;
  cursor: pointer;
}

.program-detail__schedule-edit:hover {
  color: #855ad4;
}

.program-detail__schedule-edit-icon {
  flex: 0 0 auto;
}

.program-detail__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 183px;
  height: 44px;
  box-sizing: border-box;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #9768eb;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.program-detail__button:hover {
  background: #f2edfc;
}

.program-detail__button--primary {
  background: #9768eb;
  color: #fff;
}

.program-detail__button--primary:hover {
  background: #855ad4;
}

.program-detail__button-icon {
  flex: 0 0 auto;
}

.program-detail__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 24px;
}

.program-detail__stat {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1 1 220px;
  min-width: 0;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-detail__stat-icon {
  flex: 0 0 auto;
  padding: 10px;
  background: #f2f2f4;
  border-radius: 8px;
  box-sizing: content-box;
}

.program-detail__stat-body {
  min-width: 0;
}

.program-detail__stat-label {
  margin-bottom: 2px;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  color: #6d6d6d;
}

.program-detail__stat-value {
  font-size: 20px;
  font-weight: 600;
  line-height: 26px;
  color: #1f1f28;
}

.program-detail__tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 20px;
  border-bottom: 1px solid #ececec;
}

.program-detail__tab {
  padding: 12px 16px;
  background: none;
  border: 0;
  border-radius: 0;
  border-bottom: 2px solid transparent;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-detail__tab:hover {
  color: #1f1f28;
}

.program-detail__tab--active {
  border-bottom-color: #9768eb;
  color: #9768eb;
}

.program-detail__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-detail__section {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-detail__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-detail__section-title {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  color: #1f1f28;
}

.program-detail__section-chevron {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
}

.program-detail__section-chevron--collapsed svg {
  transform: rotate(180deg);
}

.program-detail__section-body {
  border-top: 1px solid #ececec;
}

.program-detail__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
}

.program-detail__exercise + .program-detail__exercise {
  border-top: 1px solid #ececec;
}

.program-detail__exercise-info {
  min-width: 0;
}

.program-detail__exercise-name {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #1f1f28;
}

.program-detail__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-detail__exercise-attributes > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.program-detail__exercise-attributes > span + span::before {
  content: "";
  flex: 0 0 auto;
  width: 5px;
  height: 5px;
  margin-right: 4px;
  border-radius: 50%;
  background: #d1d1d1;
  transform: translateY(1px);
}

.program-detail__attribute-label {
  font-weight: 600;
}

.program-detail__exercise-action {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #1f1f28;
  cursor: pointer;
}

.program-detail__exercise-action:hover {
  background: #f2f2f4;
}

.program-detail__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.program-detail__delete {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #c42a3b;
  cursor: pointer;
}

.program-detail__delete:hover {
  text-decoration: underline;
}

.program-detail__skeleton-chip {
  width: 96px;
  height: 16px;
  margin: 2px 0;
}

.program-detail__skeleton-line {
  width: 100%;
  height: 14px;
  margin: 5px 0;
}

.program-detail__skeleton-line--short {
  width: 60%;
}

.program-detail__skeleton-stat-icon {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 8px;
}

.program-detail__skeleton-stat-label {
  width: 64px;
  height: 12px;
  margin: 3px 0 5px;
}

.program-detail__skeleton-stat-value {
  width: 96px;
  height: 18px;
  margin: 4px 0;
}

.program-detail__skeleton-tab {
  display: inline-flex;
  padding: 12px 16px 14px;
}

.program-detail__skeleton-tab-label {
  width: 72px;
  height: 14px;
  margin: 3px 0;
}

.program-detail__skeleton-section-title {
  width: 180px;
  height: 16px;
  margin: 3px 0;
}

.program-detail__skeleton-section-title--short {
  width: 128px;
}

.program-detail__skeleton-chevron {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-right: 11px;
}

@media (max-width: 1100px) {
  .program-detail {
    padding: 20px 20px 40px;
  }
}

@media (max-width: 768px) {
  .program-detail {
    padding: 16px 16px 32px;
  }

  .program-detail__title {
    font-size: 24px;
    line-height: 32px;
  }

  .program-detail__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .program-detail__stat:only-child {
    grid-column: 1 / -1;
  }

  .program-detail__stat {
    padding: 16px;
  }

  .program-detail__schedule {
    height: auto;
    flex-wrap: wrap;
    padding: 14px 16px;
  }

  .program-detail__days {
    margin-right: 0;
  }

  .program-detail__tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .program-detail__tab {
    flex: 0 0 auto;
  }

  .program-detail__exercise {
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .program-detail {
    padding: 16px 12px 32px;
  }

  .program-detail__stats {
    gap: 10px;
  }

  .program-detail__stat {
    gap: 10px;
    padding: 12px 10px;
  }

  .program-detail__stat-icon {
    padding: 7px;
  }

  .program-detail__stat-label {
    font-size: 12px;
  }

  .program-detail__stat-value {
    font-size: 16px;
    line-height: 22px;
  }
}

.daily-program-host {
  display: flex;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  background: #f6f6f7;
}

.daily-program {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 640px;
  padding: 32px 0 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.daily-program button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.daily-program button + button {
  margin-left: 0;
}

.daily-program__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}

.daily-program__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  aspect-ratio: 808 / 312;
  border-radius: 6px;
  background: #f2f2f4;
  overflow: hidden;
}

.daily-program__thumb-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.daily-program__identity {
  min-width: 0;
}

.daily-program__title {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  color: #1f1f28;
}

.daily-program__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.daily-program__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 8px;
  border-radius: 4px;
  background: #e7e7e7;
  font-size: 13px;
  font-weight: 500;
  line-height: 16px;
  color: #6d6d6d;
  white-space: nowrap;
}

.daily-program__pill-icon {
  flex: 0 0 auto;
  display: block;
  width: 12px;
  height: 12px;
  object-fit: contain;
}

.daily-program__metric {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
  white-space: nowrap;
}

.daily-program__metric-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.daily-program__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  background: #fff;
  border: 1px solid #9768eb;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.daily-program__button:hover {
  background: #f2edfc;
}

.daily-program__button:disabled {
  opacity: 0.6;
  cursor: default;
  pointer-events: none;
}

.daily-program__button--primary {
  background: #9768eb;
  color: #fff;
}

.daily-program__button--primary:hover {
  background: #855ad4;
}

.daily-program__button--done {
  background: #d9d4e2;
  border-color: #d9d4e2;
  color: #fff;
}

.daily-program__button--done:hover {
  background: #d9d4e2;
}

.daily-program__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.daily-program__section {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.daily-program__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.daily-program__section-title {
  font-size: 16px;
  font-weight: 600;
  color: #1f1f28;
}

.daily-program__section-chevron {
  flex: 0 0 auto;
  display: block;
  width: 36px;
  font-size: 14px;
  line-height: 1;
  text-align: center;
  color: #6d6d6d;
}

.daily-program__section-body {
  border-top: 1px solid #ececec;
}

.daily-program__technique {
  padding: 12px 20px 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-program__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 100%;
  height: 62px;
  gap: 16px;
  padding: 0 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: left;
  color: inherit;
  cursor: pointer;
}

.daily-program__exercise + .daily-program__exercise {
  border-top: 1px solid #ececec;
}

.daily-program__exercise:hover {
  background: #f2edfc;
}

.daily-program__exercise:hover .daily-program__exercise-action {
  color: #9768eb;
}

.daily-program__exercise-info {
  display: block;
  min-width: 0;
}

.daily-program__exercise-name {
  display: block;
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #1f1f28;
}

.daily-program__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.daily-program__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.daily-program__exercise-action {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: #1f1f28;
}

.daily-program__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.daily-program__footer {
  display: flex;
  align-items: center;
}

.daily-program__footer .daily-program__button {
  flex: 1 1 auto;
  padding: 14px 24px;
  font-size: 15px;
}

@media (max-width: 640px) {
  .daily-program {
    padding: 20px 16px 40px;
  }

  .daily-program__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .daily-program__thumb {
    width: 100%;
    height: auto;
  }

  .daily-program__meta {
    gap: 8px 12px;
  }
}

@media (max-width: 480px) {
  .daily-program {
    padding: 16px 12px 32px;
  }

  .daily-program__section-header {
    padding: 16px;
  }

  .daily-program__exercise {
    padding: 0 16px;
  }

  .daily-program__technique {
    padding: 12px 16px 4px;
  }
}

.schedule-steps {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 40px;
  margin-bottom: 28px;
}

.schedule-steps__step {
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-steps__marker {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #9d9d9d;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
}

.schedule-steps__label {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.14px;
  color: #9d9d9d;
}

.schedule-steps__step--active .schedule-steps__marker {
  background: #f2edfc;
  color: #32254f;
}

.schedule-steps__step--active .schedule-steps__label {
  color: #32254f;
}

.schedule-steps__step--complete .schedule-steps__marker {
  background: #f6f6f6;
  color: #9d9d9d;
  font-size: 11px;
}

.schedule-steps__step--complete .schedule-steps__label {
  color: #6d6d6d;
}

@media only screen and (max-width: 560px) {
  .schedule-steps {
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 10px;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
}

.view-flex.program-summary-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-summary {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  padding: 32px 0 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-summary button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-summary button + button {
  margin-left: 0;
}

.program-summary__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-summary__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  aspect-ratio: 808 / 312;
  border-radius: 6px;
  background: #f2f2f4;
  overflow: hidden;
}

.program-summary__thumb-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.program-summary__identity {
  min-width: 0;
}

.program-summary__title {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  color: #120d1c;
}

.program-summary__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-summary__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  font-size: 13px;
  font-weight: 500;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-summary__chip--type {
  padding: 4px 10px;
  border-radius: 4px;
  background: #e7e7e7;
}

.program-summary__chip-icon {
  flex: 0 0 auto;
  display: block;
}

.program-summary__tabs {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 36px;
  gap: 4px;
  margin-bottom: 16px;
  padding: 4px;
  border-radius: 8px;
  background: #f2f2f4;
}

.program-summary__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 83px;
  height: 28px;
  gap: 8px;
  padding: 2px 12px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #6d6d6d;
  cursor: pointer;
}

.program-summary__tab--active {
  background: #ffffff;
  color: #120d1c;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-summary__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-summary__section {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-summary__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-summary__section-title {
  font-size: 16px;
  font-weight: 600;
  color: #120d1c;
}

.program-summary__section-chevron {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
}

.program-summary__section-chevron--collapsed svg {
  transform: rotate(180deg);
}

.program-summary__section-body {
  border-top: 1px solid #e7e7e7;
}

.program-summary__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  height: 62px;
  gap: 16px;
  padding: 0 20px;
}

.program-summary__exercise + .program-summary__exercise {
  border-top: 1px solid #e7e7e7;
}

.program-summary__exercise-info {
  min-width: 0;
}

.program-summary__exercise-name {
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-summary__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-summary__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.program-summary__exercise-play {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #120d1c;
  cursor: pointer;
}

.program-summary__exercise-play:hover {
  background: #f2f2f4;
}

.program-summary__exercise-play-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-summary__body {
  position: relative;
}

.program-summary__skeleton {
  pointer-events: none;
}

.program-summary__skeleton--overlay {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  background: #f6f6f7;
}

.program-summary__skeleton-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-summary__skeleton-thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  aspect-ratio: 808 / 312;
  border-radius: 6px;
}

.program-summary__skeleton-identity {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.program-summary__skeleton-title {
  height: 24px;
  width: 72%;
  max-width: none;
}

.program-summary__skeleton-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-summary__skeleton-chip {
  flex: 0 0 auto;
  height: 14px;
  max-width: none;
  border-radius: 4px;
}

.program-summary__skeleton-chip--type {
  height: 24px;
  width: 88px;
}

.program-summary__skeleton-chip--weeks {
  width: 72px;
}

.program-summary__skeleton-chip--frequency {
  width: 104px;
}

.program-summary__skeleton-tabs {
  display: block;
  height: 36px;
  width: 258px;
  max-width: 100%;
  border-radius: 8px;
  margin-bottom: 16px;
}

.program-summary__skeleton-sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-summary__skeleton-section {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 56px;
  padding: 0 20px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-summary__skeleton-section-title {
  height: 16px;
  width: 55%;
  max-width: none;
}

.program-summary__skeleton-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-summary__skeleton-button {
  height: 46px;
  width: 110px;
  max-width: none;
  border-radius: 6px;
}

.program-summary__skeleton-button--primary {
  width: 140px;
}

.program-summary__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-summary__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-summary__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-summary__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

@media (max-width: 640px) {
  .program-summary {
    padding: 20px 16px 40px;
  }

  .program-summary__header,
  .program-summary__skeleton-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-summary__skeleton-thumb {
    width: 100%;
    height: auto;
  }

  .program-summary__thumb {
    width: 100%;
    height: auto;
  }

  .program-summary__title {
    font-size: 24px;
  }

  .program-summary__tabs {
    display: flex;
    width: 100%;
    overflow-x: auto;
  }
}

.view-flex.program-build-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-build {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 32px 24px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-build button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-build button + button {
  margin-left: 0;
}

.program-build__body {
  position: relative;
}

.program-build__skeleton {
  pointer-events: none;
}

.program-build__skeleton--overlay {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  background: #f6f6f7;
}

.program-build__skeleton-type-tabs {
  display: block;
  height: 46px;
  width: 340px;
  max-width: 100%;
  margin-bottom: 28px;
  border-radius: 6px;
}

.program-build__skeleton-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-build__skeleton-thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  aspect-ratio: 808 / 312;
  border-radius: 6px;
}

.program-build__skeleton-identity {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.program-build__skeleton-title {
  height: 36px;
  width: 72%;
  max-width: none;
}

.program-build__skeleton-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.program-build__skeleton-chip {
  flex: 0 0 auto;
  height: 26px;
  max-width: none;
  border-radius: 4px;
}

.program-build__skeleton-chip--type {
  width: 104px;
}

.program-build__skeleton-chip--weeks {
  width: 80px;
}

.program-build__skeleton-chip--frequency {
  width: 116px;
}

.program-build__skeleton-tabs {
  display: block;
  height: 36px;
  width: 265px;
  max-width: 100%;
  margin-bottom: 24px;
  border-radius: 8px;
}

.program-build__skeleton-strategy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.program-build__skeleton-strategy-icon {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 6px;
}

.program-build__skeleton-strategy-name {
  height: 20px;
  width: 148px;
  max-width: none;
}

.program-build__skeleton-techniques {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-build__skeleton-technique {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__skeleton-technique-header {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 60px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__skeleton-technique-title {
  flex: 1 1 auto;
  min-width: 0;
  height: 16px;
  max-width: none;
}

.program-build__skeleton-add-exercise {
  flex: 0 0 auto;
  width: 138px;
  height: 36px;
  border-radius: 6px;
}

.program-build__skeleton-kebab {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 6px;
}

.program-build__skeleton-technique-body {
  border-top: 1px solid #e7e7e7;
}

.program-build__skeleton-exercise {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 64px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__skeleton-exercise + .program-build__skeleton-exercise {
  border-top: 1px solid #e7e7e7;
}

.program-build__skeleton-reorder {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border-radius: 4px;
}

.program-build__skeleton-exercise-info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.program-build__skeleton-exercise-name {
  height: 14px;
  width: 46%;
  max-width: none;
}

.program-build__skeleton-exercise-name--short {
  width: 34%;
}

.program-build__skeleton-exercise-attributes {
  height: 12px;
  width: 128px;
  max-width: none;
}

.program-build__skeleton-exercise-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}

.program-build__skeleton-exercise-action {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 6px;
}

.program-build__skeleton-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-build__skeleton-button {
  height: 46px;
  width: 112px;
  max-width: none;
  border-radius: 6px;
}

.program-build__skeleton-button--primary {
  width: 142px;
}

.program-build__type-tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 28px;
  border-bottom: 1px solid #e7e7e7;
}

.program-build__type-tab {
  padding: 12px 16px;
  border: 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  border-radius: 0;
  background: none;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__type-tab:hover {
  color: #120d1c;
}

.program-build__type-tab--active {
  border-bottom-color: #9768eb;
  color: #9768eb;
}

.program-build__type-tab--disabled {
  opacity: 0.4;
  cursor: default;
}

.program-build__type-tab--disabled:hover {
  color: #6d6d6d;
}

.program-build__type-tab-tag {
  margin-left: 4px;
  font-weight: inherit;
  color: inherit;
}

.program-build__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-build__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  aspect-ratio: 808 / 312;
  border-radius: 6px;
  background: #f2f2f4;
  overflow: hidden;
}

.program-build__thumb-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.program-build__identity {
  min-width: 0;
}

.program-build__title {
  margin: 0 0 10px;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  color: #120d1c;
}

.program-build__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.program-build__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 4px;
  background: #f2f2f4;
  font-size: 13px;
  font-weight: 500;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-build__chip-icon {
  flex: 0 0 auto;
  display: block;
}

.program-build__session-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
}

.program-build__tabs {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 36px;
  gap: 4px;
  padding: 4px;
  border-radius: 8px;
  background: #f2f2f4;
}

.program-build__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 83px;
  height: 28px;
  gap: 8px;
  padding: 2px 12px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__tab--active {
  background: #ffffff;
  color: #120d1c;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__copy-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.program-build__strategy-group {
  margin-bottom: 32px;
}

.program-build__strategy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.program-build__strategy-icon {
  flex: 0 0 auto;
  font-size: 20px;
  color: #9768eb;
}

.program-build__strategy-image {
  flex: 0 0 auto;
  display: block;
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.program-build__strategy-name {
  font-size: 20px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__techniques {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-build__technique {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__technique-header {
  position: relative;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 60px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__technique-title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 16px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__add-exercise {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  height: 36px;
  gap: 8px;
  padding: 0 16px;
  border: 1px solid #9768eb;
  border-radius: 6px;
  background: #ffffff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #9768eb;
  cursor: pointer;
}

.program-build__add-exercise:hover {
  background: #f2edfc;
}

.program-build__menu {
  position: relative;
  flex: 0 0 auto;
}

.program-build__kebab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  min-width: 32px;
  max-width: 32px;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__kebab:hover {
  background: #f2f2f4;
  color: #120d1c;
}

.program-build__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  min-width: 168px;
  padding: 6px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 20px 0 rgba(16, 24, 40, 0.12);
}

.program-build__menu-list.hidden {
  display: none;
}

.program-build__menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  color: #120d1c;
  cursor: pointer;
}

.program-build__menu-item:hover {
  background: #f2f2f4;
}

.program-build__menu-item--danger {
  color: #c0392b;
}

.program-build__technique-body {
  border-top: 1px solid #e7e7e7;
}

.program-build__exercise {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 64px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__exercise + .program-build__exercise {
  border-top: 1px solid #e7e7e7;
}

.program-build__reorder {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  width: 20px;
}

.program-build__reorder-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__reorder-button:hover {
  color: #120d1c;
}

.program-build__exercise-info {
  flex: 1 1 auto;
  min-width: 0;
}

.program-build__exercise-name {
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-build__exercise-attributes > span + span::before {
  content: '\2022';
  margin-right: 8px;
  color: #e7e7e7;
}

.program-build__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.program-build__exercise-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}

.program-build__exercise-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #120d1c;
  cursor: pointer;
}

.program-build__exercise-action:hover {
  background: #f2f2f4;
}

.program-build__exercise-action--danger:hover {
  background: #fef3f2;
}

.program-build__exercise-action-icon {
  flex: 0 0 auto;
  display: block;
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.program-build__exercise-action-icon--play {
  width: 16px;
  height: 16px;
}

.program-build__empty {
  padding: 20px;
  font-size: 13px;
  font-style: italic;
  color: #6d6d6d;
}

.program-build__add-section {
  display: block;
  margin-top: 12px;
  margin-left: auto;
  padding: 10px 20px;
  border: 1px solid #9768eb;
  border-radius: 6px;
  background: #ffffff;
  font-size: 14px;
  font-weight: 600;
  color: #9768eb;
  cursor: pointer;
}

.program-build__add-section:hover {
  background: #f2edfc;
}

.program-build__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-build__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-build__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-build__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

@media (max-width: 768px) {
  .program-build {
    padding: 20px 16px 40px;
  }

  .program-build__type-tabs,
  .program-build__tabs {
    width: 100%;
    overflow-x: auto;
  }

  .program-build__type-tabs {
    justify-content: center;
    justify-content: safe center;
  }

  .program-build__skeleton-type-tabs {
    margin-left: auto;
    margin-right: auto;
  }

  .program-build__tabs {
    display: flex;
  }

  .program-build__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-build__thumb {
    width: 100%;
    height: auto;
  }

  .program-build__title {
    font-size: 24px;
  }

  .program-build__technique-header {
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__technique-title {
    flex: 1 0 100%;
  }

  .program-build__add-exercise {
    flex: 1 1 auto;
    justify-content: center;
  }

  .program-build__exercise {
    align-items: flex-start;
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__exercise-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .program-build__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .program-build__skeleton-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-build__skeleton-thumb {
    width: 100%;
    height: auto;
  }

  .program-build__skeleton-title {
    height: 29px;
  }

  .program-build__skeleton-technique-header {
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__skeleton-technique-title {
    flex: 1 0 100%;
  }

  .program-build__skeleton-add-exercise {
    flex: 1 1 auto;
    width: auto;
  }

  .program-build__skeleton-exercise {
    align-items: flex-start;
    flex-wrap: wrap;
    height: auto;
    gap: 12px;
    padding: 16px 20px;
  }

  .program-build__skeleton-exercise-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .program-build__skeleton-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .program-build__skeleton-button {
    width: auto;
  }

  .program-build__skeleton-button--primary {
    width: auto;
  }
}

@media (max-width: 480px) {
  .program-build__type-tab {
    flex: 0 0 auto;
    padding: 12px 8px;
    font-size: 13px;
  }

  .program-build__type-tabs {
    flex-wrap: nowrap;
  }
}

.view-flex.program-schedule-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-schedule {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 32px 24px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-schedule--narrow {
  max-width: 688px;
}

.program-schedule button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-schedule button + button {
  margin-left: 0;
}

.program-schedule__title {
  margin: 0 0 24px;
  font-family: "Nudista", sans-serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: 0;
  color: #120d1c;
}

.program-schedule__field {
  margin-bottom: 16px;
}

.program-schedule__label {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #6d6d6d;
}

.program-schedule__date-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-schedule__date {
  display: block;
  flex: 0 0 auto;
}

.program-schedule__date .date-input {
  position: relative;
  box-sizing: border-box;
  width: 320px;
  max-width: 100%;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin-bottom: 0;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background: #ffffff;
}

.program-schedule__date .date-input input {
  box-sizing: border-box;
  width: 100%;
  height: 38px;
  min-height: 0;
  max-height: none;
  padding: 0 44px 0 14px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-family: "Nudista", sans-serif;
  font-size: 15px;
  line-height: 38px;
  text-indent: 0;
  color: #120d1c;
  outline: 0;
  cursor: pointer;
}

.program-schedule__date .date-input .input-icon {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  height: 38px;
  min-height: 0;
  max-height: none;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22%3E%3Cpath d%3D%22M12.6667 1.33333H12V0.666667C12 0.489856 11.9298 0.320286 11.8047 0.195262C11.6797 0.0702379 11.5101 0 11.3333 0C11.1565 0 10.987 0.0702379 10.8619 0.195262C10.7369 0.320286 10.6667 0.489856 10.6667 0.666667V1.33333H5.33333V0.666667C5.33333 0.489856 5.2631 0.320286 5.13807 0.195262C5.01305 0.0702379 4.84348 0 4.66667 0C4.48986 0 4.32029 0.0702379 4.19526 0.195262C4.07024 0.320286 4 0.489856 4 0.666667V1.33333H3.33333C2.4496 1.33439 1.60237 1.68592 0.97748 2.31081C0.352588 2.93571 0.00105857 3.78294 0 4.66667L0 12.6667C0.00105857 13.5504 0.352588 14.3976 0.97748 15.0225C1.60237 15.6474 2.4496 15.9989 3.33333 16H12.6667C13.5504 15.9989 14.3976 15.6474 15.0225 15.0225C15.6474 14.3976 15.9989 13.5504 16 12.6667V4.66667C15.9989 3.78294 15.6474 2.93571 15.0225 2.31081C14.3976 1.68592 13.5504 1.33439 12.6667 1.33333ZM1.33333 4.66667C1.33333 4.13623 1.54405 3.62753 1.91912 3.25245C2.29419 2.87738 2.8029 2.66667 3.33333 2.66667H12.6667C13.1971 2.66667 13.7058 2.87738 14.0809 3.25245C14.456 3.62753 14.6667 4.13623 14.6667 4.66667V5.33333H1.33333V4.66667ZM12.6667 14.6667H3.33333C2.8029 14.6667 2.29419 14.456 1.91912 14.0809C1.54405 13.7058 1.33333 13.1971 1.33333 12.6667V6.66667H14.6667V12.6667C14.6667 13.1971 14.456 13.7058 14.0809 14.0809C13.7058 14.456 13.1971 14.6667 12.6667 14.6667Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M8 11C8.55228 11 9 10.5523 9 10C9 9.44772 8.55228 9 8 9C7.44772 9 7 9.44772 7 10C7 10.5523 7.44772 11 8 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M4.6665 11C5.21879 11 5.6665 10.5523 5.6665 10C5.6665 9.44772 5.21879 9 4.6665 9C4.11422 9 3.6665 9.44772 3.6665 10C3.6665 10.5523 4.11422 11 4.6665 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M11.3335 11C11.8858 11 12.3335 10.5523 12.3335 10C12.3335 9.44772 11.8858 9 11.3335 9C10.7812 9 10.3335 9.44772 10.3335 10C10.3335 10.5523 10.7812 11 11.3335 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  cursor: pointer;
}

.program-schedule__date .date-input .input-icon i {
  display: none;
}

.program-schedule__date.date-disabled .date-input {
  background: #f6f6f7;
}

.program-schedule__date.date-disabled .date-input .input-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22%3E%3Cpath d%3D%22M12.6667 1.33333H12V0.666667C12 0.489856 11.9298 0.320286 11.8047 0.195262C11.6797 0.0702379 11.5101 0 11.3333 0C11.1565 0 10.987 0.0702379 10.8619 0.195262C10.7369 0.320286 10.6667 0.489856 10.6667 0.666667V1.33333H5.33333V0.666667C5.33333 0.489856 5.2631 0.320286 5.13807 0.195262C5.01305 0.0702379 4.84348 0 4.66667 0C4.48986 0 4.32029 0.0702379 4.19526 0.195262C4.07024 0.320286 4 0.489856 4 0.666667V1.33333H3.33333C2.4496 1.33439 1.60237 1.68592 0.97748 2.31081C0.352588 2.93571 0.00105857 3.78294 0 4.66667L0 12.6667C0.00105857 13.5504 0.352588 14.3976 0.97748 15.0225C1.60237 15.6474 2.4496 15.9989 3.33333 16H12.6667C13.5504 15.9989 14.3976 15.6474 15.0225 15.0225C15.6474 14.3976 15.9989 13.5504 16 12.6667V4.66667C15.9989 3.78294 15.6474 2.93571 15.0225 2.31081C14.3976 1.68592 13.5504 1.33439 12.6667 1.33333ZM1.33333 4.66667C1.33333 4.13623 1.54405 3.62753 1.91912 3.25245C2.29419 2.87738 2.8029 2.66667 3.33333 2.66667H12.6667C13.1971 2.66667 13.7058 2.87738 14.0809 3.25245C14.456 3.62753 14.6667 4.13623 14.6667 4.66667V5.33333H1.33333V4.66667ZM12.6667 14.6667H3.33333C2.8029 14.6667 2.29419 14.456 1.91912 14.0809C1.54405 13.7058 1.33333 13.1971 1.33333 12.6667V6.66667H14.6667V12.6667C14.6667 13.1971 14.456 13.7058 14.0809 14.0809C13.7058 14.456 13.1971 14.6667 12.6667 14.6667Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M8 11C8.55228 11 9 10.5523 9 10C9 9.44772 8.55228 9 8 9C7.44772 9 7 9.44772 7 10C7 10.5523 7.44772 11 8 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M4.6665 11C5.21879 11 5.6665 10.5523 5.6665 10C5.6665 9.44772 5.21879 9 4.6665 9C4.11422 9 3.6665 9.44772 3.6665 10C3.6665 10.5523 4.11422 11 4.6665 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M11.3335 11C11.8858 11 12.3335 10.5523 12.3335 10C12.3335 9.44772 11.8858 9 11.3335 9C10.7812 9 10.3335 9.44772 10.3335 10C10.3335 10.5523 10.7812 11 11.3335 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3C%2Fsvg%3E");
}

.program-schedule__ends-slot {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 14px;
}

.program-schedule__ends {
  font-size: 12px;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-schedule__skeleton-ends.home-skeleton-block {
  display: inline-block;
  flex: 0 0 auto;
  width: 148px;
  height: 14px;
  border-radius: 4px;
}

.program-schedule__skeleton-meta-date {
  flex: 0 0 auto;
  width: 88px;
  height: 14px;
  border-radius: 4px;
}

.program-schedule__callout {
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 18px 20px;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  background: #f9f8ff;
}

.program-schedule__callout-title {
  margin-bottom: 6px;
  font-size: 16px;
  color: #120d1c;
}

.program-schedule__callout-title strong {
  font-weight: 600;
}

.program-schedule__callout-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #6d6d6d;
}

.program-schedule__skeleton-callout {
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 18px 20px;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  background: #f9f8ff;
}

.program-schedule__skeleton-callout-title {
  display: block;
  width: 58%;
  max-width: 360px;
  height: 16px;
  margin-bottom: 6px;
  border-radius: 4px;
}

.program-schedule__skeleton-callout-body {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.program-schedule__skeleton-callout-text {
  display: block;
  width: 100%;
  height: 21px;
  border-radius: 4px;
}

.program-schedule__skeleton-callout-text--short {
  width: 72%;
}

.program-schedule__prompt {
  margin-bottom: 14px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 100%;
  letter-spacing: 0;
  color: #32254f;
}

.program-schedule__sessions {
  margin-bottom: 16px;
}

.program-schedule__session-group-label {
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #6d6d6d;
}

.program-schedule__chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.program-schedule__chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 97px;
  height: 36px;
  padding: 0 8px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-schedule__chip:hover {
  border-color: #c8baee;
}

.program-schedule__chip--active {
  border-color: #533d82;
  background: #533d82;
  color: #ffffff;
}

.program-schedule__chip--active:hover {
  border-color: #533d82;
}

.program-schedule__grid-scroll {
  margin: 16px 0 32px;
  overflow-x: auto;
}

.program-schedule__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  height: 168px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-schedule__grid-day {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.program-schedule__grid-day + .program-schedule__grid-day {
  border-left: 1px solid #e7e7e7;
}

.program-schedule__grid-head {
  padding: 10px 8px;
  box-sizing: border-box;
  border-bottom: 1px solid #e7e7e7;
  background: #d1d1d1;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
  color: #6d6d6d;
}

.program-schedule__grid-head + .program-schedule__grid-head {
  border-left: 1px solid #e7e7e7;
}

.program-schedule__grid-day > .program-schedule__grid-head {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  height: 40px;
  padding: 0 6px;
}

.program-schedule__grid-cell {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  padding: 6px 5px;
  overflow-y: auto;
}

.program-schedule__placed {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 4px;
  height: 28px;
  padding: 0 6px;
  border-radius: 4px;
  background: #f2edfc;
  font-size: 12px;
  font-weight: 600;
  color: #32254f;
}

.program-schedule__placed > span {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.program-schedule__placed-remove {
  flex: 0 0 auto;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 13px;
  line-height: 1;
  color: #32254f;
  cursor: pointer;
}

.program-schedule__placed-remove:hover {
  color: #120d1c;
}

.program-schedule__add {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 4px;
  width: 100%;
  height: 28px;
  padding: 0 6px;
  border: 1px dashed #c8baee;
  border-radius: 4px;
  background: transparent;
  font-size: 12px;
  font-weight: 500;
  color: #9768eb;
  cursor: pointer;
}

.program-schedule__add > span:last-child {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.program-schedule__add:hover {
  border-color: #9768eb;
  background: #f9f8ff;
}

.program-schedule__add-plus {
  flex: 0 0 auto;
  font-size: 13px;
  line-height: 1;
}

.program-schedule__meta-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 14px;
  line-height: 1;
}

.program-schedule__meta-date {
  font-weight: 500;
  color: #120d1c;
}

.program-schedule__meta-sep {
  color: #c4c4c8;
}

.program-schedule__meta-ends {
  font-size: 12px;
  color: #6d6d6d;
}

.program-schedule__edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: auto;
  padding: 4px;
  margin: -4px 0;
  border: 0;
  background: transparent;
  color: #9768eb;
  cursor: pointer;
}

.program-schedule__edit:hover {
  color: #855ad4;
}

.program-schedule__section-title {
  margin-top: 16px;
  margin-bottom: 4px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 100%;
  color: #120d1c;
}

.program-schedule__section-help {
  margin: 0 0 20px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  color: #6d6d6d;
}

.program-schedule__review {
  display: grid;
  grid-template-columns: 370px 246px;
  gap: 24px;
  margin: 16px 0 32px;
}

.program-schedule__calendar-scroll {
  min-width: 0;
  overflow-x: auto;
}

.program-schedule__calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  box-sizing: border-box;
  width: 370px;
  max-width: 100%;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}

.program-schedule__calendar .program-schedule__grid-head {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 13px;
  padding: 0 2px;
  font-size: 11px;
  line-height: 1;
}

.program-schedule__calendar .program-schedule__grid-head + .program-schedule__grid-head {
  border-left: 0;
}

.program-schedule__calendar-cell {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 6px;
  min-height: 58px;
  padding: 6px 4px;
  border-top: 1px solid #e7e7e7;
  border-left: 1px solid #e7e7e7;
  cursor: pointer;
}

.program-schedule__calendar-cell:nth-child(7n + 1) {
  border-left: 0;
}

.program-schedule__calendar-cell:hover {
  background: #f9f8ff;
}

.program-schedule__calendar-cell--outside {
  background: #f6f6f7;
  cursor: default;
}

.program-schedule__calendar-cell--outside:hover {
  background: #f6f6f7;
}

.program-schedule__calendar-day {
  font-size: 12px;
  color: #6d6d6d;
}

.program-schedule__calendar-cell--outside .program-schedule__calendar-day {
  color: #b0b0b0;
}

.program-schedule__calendar-month {
  display: block;
  margin-left: 0;
}

.program-schedule__calendar-cell--selected {
  box-shadow: inset 0 -2px 0 0 #9768eb;
}

.program-schedule__dots {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  min-height: 6px;
}

.program-schedule__dot {
  display: block;
  box-sizing: border-box;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #9768eb;
}

.program-schedule__dot--other {
  background: #b0b0b0;
}

.program-schedule__dot--done {
  border: 1px solid #9768eb;
  background: transparent;
}

.program-schedule__dot--other.program-schedule__dot--done {
  border-color: #b0b0b0;
}

.program-schedule__day-panel {
  min-width: 0;
}

.program-schedule__day-panel-date {
  margin-bottom: 12px;
  font-size: 15px;
  color: #120d1c;
}

.program-schedule__day-panel-label {
  margin: 16px 0 8px;
  font-size: 15px;
  color: #120d1c;
}

.program-schedule__day-card {
  position: relative;
  margin-bottom: 12px;
  padding: 14px 36px 14px 16px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-schedule__day-card--other {
  background: #e7e7e7;
  border-color: #d1d1d1;
  box-shadow: none;
}

.program-schedule__day-card--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 10px 16px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  color: #6d6d6d;
}

.program-schedule__day-card-remove {
  position: absolute;
  top: 10px;
  right: 10px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 16px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-schedule__day-card-remove:hover {
  color: #120d1c;
}

.program-schedule__day-card-title {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-schedule__day-card-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 14px;
  overflow: hidden;
  font-size: 13px;
  color: #6d6d6d;
}

.program-schedule__day-card-type {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 5px;
  white-space: nowrap;
}

.program-schedule__day-card-type::before {
  content: "\2022";
  position: absolute;
  top: 50%;
  right: calc(100% + 5px);
  transform: translateY(-50%);
  line-height: 1;
  color: #c4c4c8;
}

.program-schedule__day-card-icon {
  display: block;
  flex: 0 0 auto;
}

.program-schedule__day-card-done {
  color: #b0b0b0;
}

@media (max-width: 768px) {
  .program-schedule__review {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .program-schedule__day-panel {
    max-width: 420px;
  }
}

.program-schedule__error {
  margin-bottom: 16px;
  padding: 10px 14px;
  border-radius: 6px;
  background: #fdecec;
  font-size: 14px;
  color: #f04438;
}

.program-schedule__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  gap: 16px;
}

.program-schedule__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: 8px;
  height: 48px;
  padding: 0 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  color: #120d1c;
  cursor: pointer;
}

.program-schedule__button:disabled {
  opacity: 0.6;
  cursor: default;
  pointer-events: none;
}

.program-schedule__button--primary {
  width: 143px;
  padding: 0 16px;
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-schedule__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.program-schedule__button--wide {
  width: 175px;
}

@media (max-width: 768px) {
  .program-schedule__grid-scroll {
    overflow-x: visible;
  }

  .program-schedule__grid {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    height: auto;
  }

  .program-schedule__grid-day {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
  }

  .program-schedule__grid-day + .program-schedule__grid-day {
    border-left: 0;
    border-top: 1px solid #e7e7e7;
  }

  .program-schedule__grid-day > .program-schedule__grid-head {
    display: block;
    flex: 0 0 48px;
    height: auto;
    padding: 0;
    border-bottom: 0;
    background: transparent;
    font-weight: 600;
    text-align: left;
    color: #120d1c;
  }

  .program-schedule__grid-cell {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    overflow-y: visible;
    min-width: 0;
    min-height: 0;
    padding: 0;
  }

  .program-schedule__add {
    width: auto;
  }

  .program-schedule__calendar-scroll {
    overflow-x: visible;
  }
}

@media (max-width: 640px) {
  .program-schedule {
    padding: 20px 16px 40px;
  }

  .program-schedule__title {
    font-size: 24px;
  }

  .program-schedule__date-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

.main-view:has(.today-session) > .menu-content {
  display: none;
}

.main-view > div:has(.today-session),
.main-view > div > div:has(> .today-session) {
  flex: 0 0 auto;
  min-width: 0;
}

.today-session {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  flex: 0 0 auto;
  height: 48px;
  background: #ffffff;
  border-bottom: 1px solid #e7e7e7;
  font-family: 'Nudista', sans-serif;
}

.today-session__tabs {
  display: flex;
  align-items: stretch;
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.today-session__tab {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 24px;
  height: auto;
  border: 0;
  border-right: 1px solid #e1e1e6;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  white-space: nowrap;
  text-align: left;
  font-family: 'Nudista', sans-serif;
}

.today-session__tab:hover {
  background: #fbfafd;
}

.today-session__tab--active {
  border-bottom-color: #9768eb;
  background: #f2edfc;
}

.today-session__tab--active:hover {
  background: #f2edfc;
}

.today-session__tab--active .today-session__badge:not(.today-session__badge--done) {
  background: #9768eb;
  color: #ffffff;
}

.today-session__tab--active .today-session__tab-label {
  color: #32254f;
}

.today-session__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #000000;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__badge--done {
  background: #e7f5ee;
  color: #12b76a;
  font-size: 11px;
}

.today-session__tab-label {
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.today-session__tab--complete .today-session__tab-label {
  color: #6d6d6d;
}

.today-session__exit {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 24px;
  height: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  color: #6d6d6d;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__exit:hover {
  color: #000000;
  background: transparent;
}

.today-session__exit-icon {
  flex: 0 0 auto;
  width: 13px;
  height: 13px;
}

.today-session__exit-label {
  position: relative;
  top: 1px;
}

.today-session__tip {
  position: absolute;
  top: calc(100% + 10px);
  left: 24px;
  z-index: 880;
  width: 320px;
  max-width: calc(100vw - 48px);
  padding: 20px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.16);
}

.today-session__tip:before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 24px;
  border: 8px solid transparent;
  border-bottom-color: #ffffff;
  border-top-width: 0;
}

.today-session__tip-title {
  margin-bottom: 8px;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  color: #000000;
}

.today-session__tip-body {
  margin-bottom: 20px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #4f4f4f;
}

.today-session__tip-btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 10px 20px;
  height: auto;
  border: 0;
  border-radius: 6px;
  background: #9768eb;
  box-shadow: none;
  cursor: pointer;
  color: #ffffff;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__tip-btn:hover {
  background: #855ad4;
}

@media (max-width: 900px) {
  .today-session__tab,
  .today-session__exit {
    padding: 0 16px;
  }
}

@media (max-width: 768px) {
  .today-session__tabs {
    padding-left: 8px;
  }

  .today-session__tab {
    gap: 8px;
    padding: 0 14px;
  }

  .today-session__exit {
    padding: 0 14px;
  }

  .today-session__exit-label {
    display: none;
  }

  .today-session__tip {
    left: 16px;
    width: auto;
    right: 16px;
    max-width: none;
  }
}

.today-exit {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 528px;
  max-width: calc(100vw - 32px);
  padding: 32px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(16, 24, 40, 0.24);
  font-family: 'Nudista', sans-serif;
}

.today-exit__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 28px;
  right: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #9d9d9d;
  cursor: pointer;
}

.today-exit__close:hover {
  background: transparent;
  color: #000000;
}

.today-exit__title {
  margin: 0 40px 0 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.today-exit__body {
  width: 464px;
  max-width: 100%;
  margin: 24px 0 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0;
  color: #4f4f4f;
}

.today-exit__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 40px;
}

.today-exit__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  margin: 0;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
}

.today-exit__btn--ghost {
  gap: 10px;
  min-height: 48px;
  padding: 16px 20px;
  line-height: 16px;
  border: 1px solid #d9d9d9;
  background-color: #ffffff;
  color: #000000;
}

.today-exit__btn--ghost:hover {
  background-color: #f7f7f8;
}

.today-exit__btn--primary {
  gap: 12px;
  height: 48px;
  padding: 14px 24px;
  line-height: 20px;
  border: 0;
  background-color: #9768eb;
  color: #ffffff;
}

.today-exit__btn--primary:hover {
  background-color: #855ad4;
}

@media (max-width: 480px) {
  .today-exit {
    padding: 20px;
  }

  .today-exit__close {
    top: 16px;
    right: 16px;
  }

  .today-exit__actions {
    flex-wrap: wrap;
    margin-top: 28px;
  }
}

.view-flex.rr-test {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.rr-test {
  font-family: 'Nudista', sans-serif;
}

.rr-test button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.rr-test button + button {
  margin-left: 0;
}

.rr-test__page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
}

.rr-test__title {
  margin: 0 0 32px;
  font-size: 28px;
  font-weight: 600;
  line-height: 36px;
  color: #120d1c;
}

.rr-test__steps {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  margin-bottom: 36px;
}

.rr-test__step {
  flex: 1 1 0;
  min-width: 0;
  padding-bottom: 10px;
  border-bottom: 2px solid #e0e0e0;
  font-size: 15px;
  font-weight: 500;
  line-height: 20px;
  color: #b0b0b0;
}

.rr-test__step--reached {
  border-bottom-color: #9768eb;
  color: #120d1c;
}

.rr-test__step--current {
  font-weight: 600;
}

.rr-test__section {
  margin-bottom: 36px;
}

.rr-test__section-label {
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.rr-test__question + .rr-test__question {
  margin-top: 28px;
}

.rr-test__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 44px;
}

.rr-test__footer--single .rr-test__button {
  flex: 1 1 auto;
}

.rr-test__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px 28px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
  cursor: pointer;
}

.rr-test__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.rr-test__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.rr-test__button[disabled],
.rr-test__button[disabled]:hover {
  border-color: #c5b8f0;
  background: #c5b8f0;
  color: #ffffff;
  cursor: default;
}

.rr-test__button-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .rr-test__page {
    padding: 32px 20px 48px;
  }

  .rr-test__title {
    font-size: 24px;
    line-height: 30px;
  }

  .rr-test__step {
    font-size: 14px;
  }

  .rr-test__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .rr-test__button {
    width: 100%;
  }
}

.rr-option-group__prompt {
  margin-bottom: 12px;
  font-size: 15px;
  font-weight: 600;
  line-height: 22px;
  color: #120d1c;
}

.rr-option-group__hint {
  margin-left: 6px;
  font-weight: 400;
  color: #6d6d6d;
}

.rr-option {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 6px 0;
  font-weight: 400;
  cursor: pointer;
}

.rr-option--inline {
  display: inline-flex;
  padding: 0;
}

.rr-option--disabled {
  cursor: default;
}

.rr-option--disabled .rr-option__check {
  border-color: #d1d1d1;
}

.rr-option--disabled .rr-option__radio {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%23d1d1d1%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option--disabled .rr-option__radio--checked {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%226%22 fill%3D%22%239768eb%22%2F%3E%3C%2Fsvg%3E"), url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%23d1d1d1%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option--disabled .rr-option__text {
  color: #b0b0b0;
}

.rr-option__text {
  font-size: 15px;
  line-height: 20px;
  color: #120d1c;
}

.rr-option__radio {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%239768eb%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;
}

.rr-option__radio--checked {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%226%22 fill%3D%22%239768eb%22%2F%3E%3C%2Fsvg%3E"), url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%239768eb%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option__check {
  flex: 0 0 auto;
  position: relative;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border: 2px solid #9768eb;
  border-radius: 5px;
  background: #ffffff;
}

.rr-option__check--checked {
  background: #9768eb;
}

.rr-option__check--checked::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 6px;
  width: 4px;
  height: 9px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.rr-sleep {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.rr-time__label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 400;
  line-height: 18px;
  color: #6d6d6d;
}

.rr-time__row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.rr-time__select {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
}

.rr-time__select select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  box-sizing: border-box;
  width: 100%;
  height: 44px;
  padding: 0 36px 0 14px;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  background: #ffffff;
  font-size: 15px;
  line-height: 20px;
  color: #120d1c;
  cursor: pointer;
  outline: none;
}

.rr-time__select select:focus {
  border-color: #9768eb;
}

.rr-time__select::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 14px;
  width: 12px;
  height: 8px;
  margin-top: -4px;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%228%22 viewBox%3D%220 0 12 8%22 fill%3D%22none%22%3E%3Cpath d%3D%22M1 1.5L6 6.5L11 1.5%22 stroke%3D%22%236D6D6D%22 stroke-width%3D%221.5%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
  pointer-events: none;
}

.rr-time__meridiem {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 16px;
}

@media (max-width: 480px) {
  .rr-time__row {
    flex-wrap: wrap;
  }

  .rr-time__meridiem {
    flex: 1 0 100%;
  }
}

.view-flex.r5-test {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #ffffff;
}

.r5-test__page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
}

.r5-test__title {
  margin: 0 0 32px;
  font-family: 'Nudista', sans-serif;
  font-size: 28px;
  font-weight: 500;
  line-height: 36px;
  color: #120d1c;
}

.r5-test__question + .r5-test__question {
  margin-top: 40px;
}

.r5-test field-set-select {
  display: block;
}

.r5-test__question-title {
  margin: 0 0 11px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  color: #120d1c;
}

.r5-test__question-title span {
  color: #9768EB;
}

.r5-test .r5-test__question--bodymap {
  margin-top: 64px;
}

.r5-test .r5-body-wrapper table {
  margin-left: auto;
  margin-right: auto;
}

.r5-test__footer {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}

.r5-test__footer button {
  text-transform: none;
  letter-spacing: 0;
  font-size: 16px;
}

.r5-test__footer button.primary {
  font-weight: 600;
}

@media (max-width: 768px) {
  .r5-test__page {
    padding: 32px 20px 48px;
  }

  .r5-test__title {
    font-size: 24px;
    line-height: 30px;
  }

  .r5-test__footer button {
    width: 100%;
  }
}

.view-flex.daily-results-page {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.view-flex.daily-results-page > .container {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.daily-results {
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
  text-align: center;
  font-family: 'Nudista', sans-serif;
}

.daily-results button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.daily-results button + button {
  margin-left: 0;
}

.daily-results__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #f2edfc;
}

.daily-results__check-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #e0d5f5;
  color: #9768eb;
}

.daily-results__title {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 600;
  line-height: 36px;
  color: #120d1c;
}

.daily-results__score-label {
  margin-bottom: 36px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__gauge {
  margin-bottom: 44px;
}

.daily-results__gauge svg {
  width: 114px;
  height: 114px;
}

.daily-results__gauge .outline,
.daily-results__gauge .progress {
  stroke-width: 10;
}

.daily-results__gauge .text {
  font-size: 63px;
  font-weight: 600;
  fill: #000000;
}

.daily-results__card {
  padding: 20px;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
}

.daily-results__banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px;
  border-radius: 8px;
  background: #f9f8ff;
}

.daily-results__banner-icon {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.daily-results__banner-text {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  color: #120d1c;
}

.daily-results__trends-label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 24px 0 12px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-results__trends-dot {
  color: #b0b0b0;
}

.daily-results__columns {
  display: flex;
  align-items: flex-start;
}

.daily-results__columns .daily-results__column + .daily-results__column {
  border-left: 1px solid #f0f0f0;
}

.daily-results__columns--flat {
  margin-top: 24px;
}

.daily-results__columns--single {
  justify-content: center;
  text-align: center;
}

.daily-results__columns--single .daily-results__column {
  flex: 0 1 240px;
  max-width: 100%;
  padding: 0;
}

.daily-results__columns--single .daily-results__column-value {
  justify-content: center;
}

.daily-results__column {
  flex: 1 1 0;
  min-width: 0;
  padding: 0 16px;
}

.daily-results__column:first-child {
  padding-left: 0;
}

.daily-results__column:last-child {
  padding-right: 0;
}

.daily-results__column-name {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__column-value {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.daily-results__column-score {
  font-size: 30px;
  font-weight: 400;
  line-height: 38px;
  color: #120d1c;
}

.daily-results__spark {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 44px;
  margin-top: 8px;
}

.daily-results__change {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.daily-results__change--up {
  color: #20b769;
}

.daily-results__change--down {
  color: #c42a3b;
}

.daily-results__trend-icon {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
}

.daily-results__notice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
  font-size: 14px;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__soreness {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
}

.daily-results__soreness-label {
  margin-bottom: 12px;
  font-size: 15px;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__bodymap table {
  margin: 0 auto;
  border: 0;
  background: none;
}

.daily-results__bodymap table td {
  padding: 0 12px;
  border: 0;
  background: none;
  vertical-align: top;
}

.daily-results__bodymap-figure {
  max-width: 128px;
  max-height: 272px;
}

.daily-results__disclosure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 20px;
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: none;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.daily-results__disclosure:hover {
  color: #855ad4;
}

.daily-results__chevron {
  font-size: 12px;
}

.daily-results__changes {
  margin-top: 4px;
  padding-top: 20px;
  border-top: 1px solid #f0f0f0;
}

.daily-results__changes-label {
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-results__change-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: #fafafa;
}

.daily-results__change-row + .daily-results__change-row {
  border-top: 1px solid #f0f0f0;
}

.daily-results__change-row:first-child {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

.daily-results__change-row:last-child {
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

.daily-results__change-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
}

.daily-results__change-detail {
  flex: 0 1 auto;
  font-size: 14px;
  line-height: 20px;
  text-align: right;
  color: #6d6d6d;
}

.daily-results__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
  padding: 14px 28px;
  border: 1px solid #9768eb;
  border-radius: 8px;
  background: #9768eb;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #ffffff;
  cursor: pointer;
}

.daily-results__cta:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.daily-results__cta-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .daily-results {
    padding: 32px 20px 48px;
  }

  .daily-results__title {
    font-size: 24px;
    line-height: 30px;
  }

  .daily-results__columns {
    flex-direction: column;
    gap: 16px;
  }

  .daily-results__column {
    padding: 0;
  }

  .daily-results__columns .daily-results__column + .daily-results__column {
    border-left: 0;
    border-top: 1px solid #f0f0f0;
    padding-top: 16px;
  }

  .daily-results__cta {
    width: 100%;
  }
}

.view-layout > div:has(> .session-complete) {
  flex: 1 1 auto;
  min-width: 0;
}

.session-complete {
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
  text-align: center;
  font-family: 'Nudista', sans-serif;
}

.session-complete button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.session-complete__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #f2edfc;
}

.session-complete__check-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #e0d5f5;
  color: #9768eb;
}

.session-complete__title {
  margin: 0 0 40px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.session-complete__streak {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 36px;
  font-size: 48px;
  font-weight: 600;
  line-height: 56px;
  color: #000000;
}

.session-complete__streak-flame {
  flex: 0 0 auto;
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.session-complete__card {
  height: 243px;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
}

.session-complete__banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 44px;
  padding: 0 16px;
  box-sizing: border-box;
  border-radius: 8px;
  background: #f9f8ff;
  color: #9768eb;
}

.session-complete__banner-icon {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
}

.session-complete__banner-text {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  color: #120d1c;
}

.session-complete__progress {
  margin-top: 20px;
}

.session-complete__progress-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
}

.session-complete__progress-week {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
}

.session-complete__progress-count {
  margin-left: auto;
  font-size: 15px;
  font-weight: 500;
  line-height: 20px;
  color: #4f4f4f;
}

.session-complete__bar {
  overflow: hidden;
  height: 8px;
  border-radius: 4px;
  background: #e9ecef;
}

.session-complete__bar-fill {
  height: 100%;
  border-radius: 4px;
  background: #20b769;
  transition: width 0.3s ease;
}

.session-complete__stats {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

.session-complete__stat {
  flex: 1 1 0;
  min-width: 0;
  height: 77px;
  padding: 12px 16px;
  box-sizing: border-box;
  border-radius: 8px;
  background: #f6f6f6;
}

.session-complete__stat-label {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #4f4f4f;
}

.session-complete__stat-value {
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
  color: #000000;
}

.session-complete__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
  padding: 14px 28px;
  border: 1px solid #9768eb;
  border-radius: 8px;
  background: #9768eb;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #ffffff;
  cursor: pointer;
}

.session-complete__cta:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.session-complete__cta-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .session-complete {
    padding: 32px 20px 48px;
  }

  .session-complete__streak {
    gap: 12px;
    font-size: 34px;
    line-height: 42px;
  }

  .session-complete__streak-flame {
    width: 36px;
    height: 36px;
  }

  .session-complete__card {
    height: auto;
  }

  .session-complete__banner {
    height: auto;
    padding: 12px 16px;
  }

  .session-complete__stats {
    flex-direction: column;
  }

  .session-complete__stat {
    height: auto;
  }

  .session-complete__cta {
    width: 100%;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL3Nhc3MvZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYmFzZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9fZGVzaWduX3Rva2Vucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbG9hZGluZy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Rhc2hib2FyZF9tZW51LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fZGFzaGJvYXJkX2xpc3Quc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYXNoYm9hcmRfZ3JpZC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Rhc2hib2FyZF9hdGhsZXRlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZmlsZV9hdGhsZXRlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYXRobGV0ZV9zaWRlYmFyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2F0aGxldGVfd2VsY29tZV9oZWFkZXIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3Jlc3NfaW5zaWdodHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdG9kYXlfYXNrcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19teV9zY2hlZHVsZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19ob21lX3NrZWxldG9uLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3VwY29taW5nX3Nlc3Npb24uc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYm9keW1hcF9jYXJkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsX3VwY29taW5nX3Jlc2NoZWR1bGUuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbW9kYWxfdXBjb21pbmdfY2FuY2VsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2F0aGxldGVfcHJvZmlsZV9wYWdlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1fY2F0YWxvZy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2VkaXQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX3doaXRlYm9hcmQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jYWxlbmRhci5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2NoYXJ0aW5nLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbm90ZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190b29sdGlwLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdXBsb2FkaW5nLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2V4ZXJjaXNlX25hdi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jYXRhbG9nX25hdi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19sb2dpbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsX3Byb2ZpbGVfZm9ybS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19tb2RhbF9hdGhsZXRlX2VkaXQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbW9kYWxfc2VsZWN0X2F0aGxldGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdGVybXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYWRtaW5fbWFpbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZXN0X3Jlc3VsdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jbGluaWNhbF9yZXBvcnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZXN0cy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3BlcmZvcm1fdGVzdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19yZXBvcnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19yZXBvcnRfdGFicy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19kZXRhaWxzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbXNfZGV0YWlscy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyZXNzX3N1bW1hcnkuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19vdmVydmlldy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1zX292ZXJ2aWV3LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbXNfY29tcGxldGlvbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3NlbGVjdF9waWxsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2RhdGVfcmFuZ2Vfc2VsZWN0LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Rlc3RfYXJjaGl2ZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19oZWFkZXIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcmVzcG9uc2l2ZW5lc3NfdHdlYWtzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbV9jYWxlbmRhcnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2FkbWluMl9taXNjLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19hZG1pbjJfc2lkZWJhci5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGluczIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYWRtaW4yX3RhYmxlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZWFtLXRsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19yZXBvcnRzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Fzc2Vzc21lbnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbV9jYXJkcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2NhdGFsb2dfcGFnZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2RldGFpbC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYWlseV9wcm9ncmFtLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1fc3VtbWFyeS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2J1aWxkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3NjaGVkdWxlX2J1aWxkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3RvZGF5X3Nlc3Npb25faGVhZGVyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3JyX2RhaWx5X3Rlc3Quc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcjVfZGFpbHlfdGVzdC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYWlseV90ZXN0X3Jlc3VsdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fc2Vzc2lvbl9jb21wbGV0ZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Jhc2VcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9sb2FkaW5nXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Rhc2hib2FyZF9tZW51XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9kYXNoYm9hcmRfbGlzdFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvZGFzaGJvYXJkX2dyaWRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Rhc2hib2FyZF9hdGhsZXRlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9maWxlX2F0aGxldGVcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2F0aGxldGVfc2lkZWJhclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYXRobGV0ZV93ZWxjb21lX2hlYWRlclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3NfaW5zaWdodHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3RvZGF5X2Fza3NcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL215X3NjaGVkdWxlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9ob21lX3NrZWxldG9uXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS91cGNvbWluZ19zZXNzaW9uXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9ib2R5bWFwX2NhcmRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX3VwY29taW5nX3Jlc2NoZWR1bGVcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX3VwY29taW5nX2NhbmNlbFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYXRobGV0ZV9wcm9maWxlX3BhZ2VcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2F0YWxvZ1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbV9lZGl0XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX3doaXRlYm9hcmRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NhbGVuZGFyXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9jaGFydGluZ1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvbm90ZXNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Rvb2x0aXBcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3VwbG9hZGluZ1wiO1xuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9leGVyY2lzZV9uYXZcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NhdGFsb2dfbmF2XCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2xvZ2luXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9tb2RhbF9wcm9maWxlX2Zvcm1cIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX2F0aGxldGVfZWRpdFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvbW9kYWxfc2VsZWN0X2F0aGxldGVzXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXJtc1wiO1xuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9hZG1pbl9tYWluXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXN0X3Jlc3VsdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NsaW5pY2FsX3JlcG9ydFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvdGVzdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3BlcmZvcm1fdGVzdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyZXNzX3JlcG9ydFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3NfcmVwb3J0X3RhYnNcIjtcbi8vIEFmdGVyIHByb2dyZXNzX3JlcG9ydDogX3Byb2dyZXNzX2RldGFpbHMuc2NzcyB1c2VzIGl0cyBAbWl4aW4gY2hhbmdlLWluZGljYXRvci5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyZXNzX2RldGFpbHNcIjtcbi8vIEl0cyBQcm9ncmFtcy10YWIgc2libGluZzsgc2hhcmVzIHRoZSBjYXJkIHNoZWxsLCBzZWUgdGhhdCBmaWxlJ3MgaGVhZGVyLlxuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbXNfZGV0YWlsc1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3Nfc3VtbWFyeVwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3Nfb3ZlcnZpZXdcIjtcbi8vIFRoZSBQcm9ncmFtcyB0YWIncyB0d28gY2FyZHMsIHdoaWNoIHJlcGxhY2VkIHRoYXQgT3ZlcnZpZXcgY2FyZCdzIFByb2dyYW1zXG4vLyBicmFuY2guIHByb2dyYW1zX292ZXJ2aWV3IGRlY2xhcmVzIC5wcm9ncmFtcy1vdmVydmlldy1yb3csIHRoZSBmbGV4IHJvdyB0aGF0XG4vLyBob2xkcyBib3RoLCBzbyBpdCBoYXMgdG8gY29tZSBiZWZvcmUgaXRzIHNpYmxpbmcuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtc19vdmVydmlld1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbXNfY29tcGxldGlvblwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvc2VsZWN0X3BpbGxcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2RhdGVfcmFuZ2Vfc2VsZWN0XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXN0X2FyY2hpdmVzXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9oZWFkZXJcIjtcblxuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcmVzcG9uc2l2ZW5lc3NfdHdlYWtzXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2FsZW5kYXJzXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2FkbWluMl9taXNjXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9hZG1pbjJfc2lkZWJhclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYWRtaW4yX3RhYmxlXCI7XG5cblxuLy8gdGhpcyBpcyBuZXcuLi5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3RlYW0tdGxcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3JlcG9ydHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Fzc2Vzc21lbnRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2FyZHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2F0YWxvZ19wYWdlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX2RldGFpbFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvZGFpbHlfcHJvZ3JhbVwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbV9zdW1tYXJ5XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX2J1aWxkXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9zY2hlZHVsZV9idWlsZFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvdG9kYXlfc2Vzc2lvbl9oZWFkZXJcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3JyX2RhaWx5X3Rlc3RcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3I1X2RhaWx5X3Rlc3RcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2RhaWx5X3Rlc3RfcmVzdWx0c1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvc2Vzc2lvbl9jb21wbGV0ZVwiOyIsIi8vIGRlc2lnbl90b2tlbnMgaG9sZHMgdGhlIHBhbGV0dGUgc2hhcmVkIHdpdGggdGhlIHNpYmxpbmcgYXBwIHJlcG8ncyB0YWlsd2luZFxuLy8gY29uZmlnLiBJdCBjb21lcyBmaXJzdCBzbyBldmVyeSBsYXRlciBwYXJ0aWFsIGluIHRoaXMgYnVuZGxlIGNhbiB1c2UgaXQ7XG4vLyB2YXJpYWJsZXMga2VlcHMgdGhlIG9sZGVyIGJyYW5kIG5hbWVzICgkYmx1ZS8kcmVkLyRncmVlbikgdGhhdCBwcmVkYXRlIGl0LlxuQGltcG9ydCBcIi4uL2Rlc2lnbl90b2tlbnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGluaGVyaXQpO1xuICBAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTtcbn1cblxuaHRtbCB7XG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJi5kYXJrcm9vbTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuNyk7XG4gIH1cblxuICAuZGFya3Jvb20tYmFubmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDYwcHgpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICA+IC5iYW5uZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2MHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjgwcHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbmJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAmW3R5cGU9J3RleHQnXSB7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgfVxuXG4gICZbdHlwZT0ncGFzc3dvcmQnXSB7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgfVxuXG4gICYucmVxdWlyZWQge1xuICAgIGNvbG9yOiAjZmYwMDAwO1xuICB9XG59XG5cbmJ1dHRvbiB7XG4gIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNnB4KTtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgYm9yZGVyOiAycHggc29saWQgJGJsdWU7XG4gIGNvbG9yOiAkYmx1ZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbWluLXdpZHRoOiAxMTBweDtcbiAgb3V0bGluZTogMDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICYuc2hvcnQge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM1cHgpO1xuICB9XG5cbiAgJi5zbWFsbCB7XG4gICAgbWluLXdpZHRoOiA4MHB4O1xuICB9XG5cbiAgJi5tZWRpdW0ge1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTUwcHgpO1xuICB9XG5cbiAgJi5wcmltYXJ5LCAmLmJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NkY2RjZDtcbiAgICBib3JkZXItY29sb3I6ICNjZGNkY2Q7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG4gIFxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NkY2RjZDtcbiAgICBib3JkZXItY29sb3I6ICNjZGNkY2Q7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgJi5yZXN1bWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNEMTQwNEI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuYnV0dG9uICsgYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLy8gaU9TIFNhZmFyaSBhdXRvLXpvb21zIHRoZSBwYWdlIHdoZW5ldmVyIGEgZm9jdXNlZCBmb3JtIGNvbnRyb2wgaXMgdW5kZXIgMTZweCxcbi8vIGFuZCBodG1se2ZvbnQtc2l6ZToxM3B4fSBhYm92ZSBwdXRzIGV2ZXJ5IHVuc3R5bGVkIGNvbnRyb2wgYmVsb3cgdGhhdC4gU2NvcGVkXG4vLyB0byBtb2JpbGUgcmF0aGVyIHRoYW4gcmFpc2luZyB0aGUgcm9vdCBzaXplLCB3aGljaCB0aGUgd2hvbGUgYXBwIGlzIHNpemVkIG9mZi5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuLmlucHV0LWNoZWNrYm94IHtcbiAgY29sb3I6ICRibHVlO1xuICBmb250LXNpemU6IDIwcHg7XG5cbiAgJi5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICNjZGNkY2Q7XG4gIH1cbn1cblxuLmZvb3Rlci1jb250ZW50IHtcbiAgLypcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAqL1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMUUxRTY7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGNvbG9yOiAjMzIyNTRGO1xuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzk3NjhFQjtcbiAgfVxufVxuXG5bbmdcXDpjbG9ha10sIFtuZy1jbG9ha10sIC5uZy1jbG9hayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1jb250ZW50IHtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoaW5pdGlhbCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDkwcHgpO1xuXG4gIC5sb2dvIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg5MHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDE0MHB4KTtcbiAgfVxuXG4gIC53aGl0ZS1maWVsZCB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuXG4gICAgaS5pY29uLXNob3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTVweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gICAgICBtYXJnaW46IDBweCAzMHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIG1hcmdpbjogLTFweCA4cHggMHB4IDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkZGFya19ibHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXJyZW50LWF0aGxldGUge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG5cbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuICsgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYgKyBkaXYge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwIDdweCAwIDI1cHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMCAyNXB4IDAgN3B4O1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICAgIGkuZmEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubWVudS1jb250ZW50IHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjVweCk7XG4gICYucmVzcC1tZW51IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLmJvZHktY29udGVudCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnJlZC1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZC1jb2xvcjogI2M0MmEzYjsgIH1cbi55ZWxsb3ctYmFja2dyb3VuZCB7IGJhY2tncm91bmQtY29sb3I6ICNkZmMwM2Y7IH1cbi5ncmVlbi1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZC1jb2xvcjogIzIwYjc2OTsgfVxuLmJsdWUtdGV4dCB7IGNvbG9yOiAjOTc2OEVCOyB9XG4ucmVkLXRleHQgeyBjb2xvcjogI2M0MmEzYjsgfVxuLmdyZXktdGV4dCB7IGNvbG9yOiAjODA4MDgwOyB9XG4ubGlnaHQtZ3JleS10ZXh0IHsgY29sb3I6ICNhN2E3YTc7IH1cbi55ZWxsb3ctdGV4dCB7IGNvbG9yOiAjZGZjMDNmOyB9XG4uZ3JlZW4tdGV4dCB7IGNvbG9yOiAjMjBiNzY5OyB9XG5cbi53aGl0ZWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmdyZXliZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG59XG5cbi5kcmtncmV5Ymcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xufVxuXG4uYmx1ZWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3NjhFQjtcbn1cblxuLm1haW4tdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4udmlldy1mbGV4IHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG59XG5cbi52aWV3LXN0YXRpYyB7XG4gIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xufVxuXG4udmlldy1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbn1cblxuLnZpZXctc3RhY2sge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbn1cblxuLnZpZXctY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDI0cHgpO1xuXG4gICYuY2VudGVyZWQgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7IH1cbiAgJi5kaXZpZGVkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7IH1cbiAgJi5lbmQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7IH1cbiAgJi53cmFwIHsgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApOyB9XG4gICYubWlkZGxlIHsgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGNlbnRlcik7IH1cblxuICAmLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAmLmNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIH1cbiAgfVxufVxuXG4uY29sdW1uLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG5cbiAgJi5mdWxsIHsgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7IH1cbiAgJi50b3AgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpOyB9XG4gICYuYm90dG9tIHsgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7IH1cbiAgJi5jZW50ZXIgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7IH1cbiAgJi5taWRkbGUgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpOyB9XG4gICYuZGl2aWRlZCB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pOyB9XG4gICYuc3BhY2VkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYXJvdW5kKTsgfVxuICAmLnN0YXJ0IHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7IH1cbiAgJi5lbmQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7IH1cbiAgJi53cmFwIHsgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApOyB9XG59XG5cbi5yb3ctY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcblxuICAmLmZ1bGwgeyBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTsgfVxuICAmLnRvcCB7IEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7IH1cbiAgJi5ib3R0b20geyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTsgfVxuICAmLmNlbnRlciB7IEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTsgfVxuICAmLm1pZGRsZSB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7IH1cbiAgJi5kaXZpZGVkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7IH1cbiAgJi5zcGFjZWQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1hcm91bmQpOyB9XG4gICYuc3RhcnQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTsgfVxuICAmLmVuZCB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTsgfVxuICAmLndyYXAgeyBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7IH1cbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIHJhbmdlIGlucHV0IGF0dGVtcHRcbmlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgIzk3NjhFQiksIGNvbG9yLXN0b3AoMCwgI2U4ZThlOCkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2I0YjRiNDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiNGI0YjQ7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LW1vei1mb2N1cy1vdXRlciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmOjotbXMtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDE2cHggMDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjotbXMtdGh1bWIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiNGI0YjQ7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6Oi1tcy10b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgIGJhY2tncm91bmQ6ICM5NzY4RUI7XG4gICAgYm9yZGVyOiAwLjJweCBzb2xpZCAjOTc2OEVCO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgfVxuXG4gICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGJvcmRlcjogMC4ycHggc29saWQgI2U4ZThlODtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIH1cblxuICAmOmZvY3VzOjotbXMtZmlsbC1sb3dlciB7XG4gICAgYmFja2dyb3VuZDogIzk3NjhFQjtcbiAgfVxuXG4gICY6Zm9jdXM6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICB9XG59XG5cbi5wcm9ncmFtLWV4ZXJjaXNlLmRhaWx5LWV4ZXJjaXNlIHtcbiAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAyMHB4O1xuICBnYXA6IDEwcHg7XG4gIC5kYWlseS1leGVyY2lzZS1hY3Rpb25zIHtcbiAgICBtaW4td2lkdGg6IDU0cHggIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDU0cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogNTRweCAhaW1wb3J0YW50O1xuICB9XG4gIC5pbmZvIC5hdHRyaWJ1dGVzIHtcbiAgICBnYXA6IDEwcHg7XG4gICAgPiBkaXYge1xuICAgICAgbWFyZ2luOiAwIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn0iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlc2lnbiB0b2tlbnMg4oCUIGdlbmVyYXRlZCBmcm9tIC4uLy4uL2FwcC90YWlsd2luZC5jb25maWcuanMgKHRoZW1lLmV4dGVuZCkuXG4vL1xuLy8gVGhhdCB0YWlsd2luZCBjb25maWcgaXMgdGhlIGNhbm9uaWNhbCBkZXNpZ24gc3lzdGVtLCBzaGFyZWQgd2l0aCB0aGUgc2libGluZ1xuLy8gQW5ndWxhciBhcHAuIERvIG5vdCBjaGFuZ2UgdmFsdWVzIGhlcmU6IGNoYW5nZSB0aGVtIHRoZXJlIGFuZCByZWdlbmVyYXRlLCBzb1xuLy8gYm90aCBmcm9udC1lbmRzIHN0YXkgaW4gc3RlcC5cbi8vXG4vLyBPbmx5IHRoZSB0b2tlbnMgdGhpcyByZXBvIGFjdHVhbGx5IHVzZXMgYXJlIGxpc3RlZC4gQm90aCBTQ1NTIGJ1bmRsZXMgaW1wb3J0XG4vLyB0aGlzIGZpbGUgKHNhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Jhc2Uuc2NzcyBhbmQgZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnNcbi8vIC5zY3NzKSwgc28gZXZlcnkgcGFydGlhbCBpbiBlaXRoZXIgYnVuZGxlIGhhcyB0aGVzZSBpbiBzY29wZS5cbi8vXG4vLyBCZWZvcmUgdGhpcyBmaWxlIGV4aXN0ZWQsIHRoZSByZWRlc2lnbiBoYW5kLWNvcGllZCB0aGVzZSB2YWx1ZXMgaW50byBhXG4vLyBwcml2YXRlICR2YXJpYWJsZSBibG9jayBwZXIgZmlsZSDigJQgMjM5IGRlY2xhcmF0aW9ucyBhY3Jvc3MgMjggZmlsZXNcbi8vIHJlLWRlcml2aW5nIHRoZSBzYW1lIH4yMCBjb2xvcnMsIHdpdGggJHB1cnBsZS01MDAgYWxvbmUgcmVkZWNsYXJlZCAyOCB0aW1lc1xuLy8gdW5kZXIgMjggZGlmZmVyZW50IG5hbWVzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFB1cnBsZSDigJQgYnJhbmRcbiRwdXJwbGUtNTA6ICAgI2Y5ZjhmZjtcbiRwdXJwbGUtMTAwOiAgI2YyZWRmYztcbiRwdXJwbGUtMjAwOiAgI2UwZDVmNTtcbiRwdXJwbGUtMzAwOiAgI2M4YmFlZTtcbiRwdXJwbGUtNTAwOiAgIzk3NjhlYjtcbiRwdXJwbGUtNjAwOiAgIzczNTViNTtcbiRwdXJwbGUtNzAwOiAgIzUzM2Q4MjtcbiRwdXJwbGUtOTAwOiAgIzMyMjU0ZjtcblxuLy8gTmV1dHJhbHNcbiRibGFjay0xMDA6ICAgI2Y2ZjZmNjtcbiRibGFjay0yMDA6ICAgI2U3ZTdlNztcbiRibGFjay0zMDA6ICAgI2QxZDFkMTtcbiRibGFjay00MDA6ICAgI2IwYjBiMDtcbiRibGFjay01MDA6ICAgIzlkOWQ5ZDtcbiRibGFjay02MDA6ICAgIzZkNmQ2ZDtcbiRibGFjay03MDA6ICAgIzRmNGY0ZjtcbiRibGFjay04MDA6ICAgIzEyMGQxYztcbiRibGFjay05MDA6ICAgIzAwMDAwMDtcbiRidG4tYm9yZGVyOiAgI2IwYjBiMDsgIC8vIHRhaWx3aW5kIGFsaWFzIG9mIGJsYWNrLTQwMCwga2VwdCBmb3IgaW50ZW50IGF0IHVzZSBzaXRlc1xuJG11dGVkOiAgICAgICAjODg4ODg4O1xuJHBhZ2UtYmc6ICAgICAjZjZmNmY3O1xuJHJvdy1ob3ZlcjogICAjZmFmYWZhO1xuXG4vLyBTdGF0dXNcbi8vXG4vLyBOT1RFOiBuYW1lZCAtNTAwIHJhdGhlciB0aGFuICRncmVlbi8kcmVkIGJlY2F1c2UgdGhvc2UgdHdvIG5hbWVzIGFyZSBhbHJlYWR5XG4vLyB0YWtlbiwgaW4gQk9USCBidW5kbGVzJyBfdmFyaWFibGVzLnNjc3MsIGJ5IHRoZSBvbGRlciBicmFuZCBwYWxldHRlIHdpdGhcbi8vIERJRkZFUkVOVCB2YWx1ZXMgKCRncmVlbiAjMjBiNzY5LCAkcmVkICNjNDJhM2IpLiBUaGUgcmVkZXNpZ24gdXNlcyBib3RoIHNldHMuXG4vLyBSZWNvbmNpbGluZyB0aGF0IGRyaWZ0IGlzIGEgZGVzaWduIGRlY2lzaW9uLCBub3QgYSByZWZhY3RvciDigJQgc2VlIGJlbG93LlxuJGdyZWVuLTUwMDogICAjMTJiNzZhO1xuJGdyZWVuLTUwOiAgICAjZWJmYmYzO1xuJHJlZC01MDA6ICAgICAjZjA0NDM4O1xuJHJlZC02MDA6ICAgICAjZDkyZDIwO1xuJGFtYmVyOiAgICAgICAjZDY4YjAwO1xuJGFtYmVyLTUwOiAgICAjZmZmN2U0O1xuJGFtYmVyLTEwMDogICAjZmRlOGJlO1xuXG4vLyBHcmV5cyAodGhlIG5ld2VyIGdyYXktKiByYW1wLCB1c2VkIGJ5IHBvcnRlZCBhcHAtcmVwbyBjb21wb25lbnRzKVxuJGdyYXktMjAwOiAgICAjZWFlY2YwO1xuJGdyYXktNTAwOiAgICAjNjY3MDg1O1xuJGdyYXktNzAwOiAgICAjMzQ0MDU0O1xuJGdyYXktOTAwOiAgICAjMTAxODI4O1xuXG4vLyBDaHJvbWUgLyBzdXJmYWNlc1xuJGhlYWRlci1iZzogICAgICAjMWExYTJlO1xuJHNpZGViYXItdGl0bGU6ICAjMzUzNTRiO1xuJHJvb20tc3VyZmFjZTogICAjMzUzNTRiOyAgLy8gdGFpbHdpbmQgYWxpYXMgb2Ygc2lkZWJhci10aXRsZSAoZGFyay10aGVtZSBuYW1pbmcpXG4kcm9vbS1tdXRlZDogICAgICNlMWUxZTY7XG4kdG9vbHRpcDogICAgICAgICMxYzFiM2E7XG5cbi8vIEVsZXZhdGlvblxuLy8gU3BlbGxlZCBleGFjdGx5IGFzIHRoZSAxMyBleGlzdGluZyBoYW5kLXdyaXR0ZW4gY29waWVzIHdlcmUsIHNvIHN1YnN0aXR1dGluZ1xuLy8gdGhlIHRva2VuIGxlYXZlcyBjb21waWxlZCBDU1MgYnl0ZS1pZGVudGljYWwuXG4kc2hhZG93LWNhcmQ6IDAgMXB4IDNweCAwIHJnYmEoMTYsIDI0LCA0MCwgMC4wNCk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGl2ZXJnZW5jZXMg4oCUIHZhbHVlcyB1c2VkIHdpZGVseSBpbiB0aGlzIHJlcG8gdGhhdCB0aGUgZGVzaWduIHN5c3RlbSBkb2VzIE5PVFxuLy8gZGVmaW5lLiBIb2lzdGVkIGhlcmUgc28gdGhlIGRyaWZ0IGlzIHZpc2libGUgaW4gb25lIHBsYWNlIGluc3RlYWQgb2YgYmVpbmdcbi8vIHJlLWludmVudGVkIHBlciBmaWxlLiBEbyBub3QgXCJmaXhcIiB0aGVzZSBieSBzbmFwcGluZyB0aGVtIHRvIGEgbmVhcmJ5IHRva2VuOlxuLy8gdGhhdCBjaGFuZ2VzIHJlbmRlcmVkIG91dHB1dCBhbmQgbmVlZHMgYSBkZXNpZ24gY2FsbCBmaXJzdC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBIHB1cnBsZSBob3ZlciBzdGF0ZS4gVHdvIGNvbXBldGluZyB2YWx1ZXMgYXJlIGluIHVzZTsgbmVpdGhlciBpcyBjYW5vbmljYWwuXG4vLyAkcHVycGxlLTYwMCAoIzczNTViNSkgaXMgYWxzbyB1c2VkIGFzIGEgaG92ZXIgaW4gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzIGFuZFxuLy8gX3Byb2dyZXNzX3JlcG9ydF90YWJzLnNjc3MuXG4keC1wdXJwbGUtaG92ZXI6ICM4NTVhZDQ7ICAvLyBkZWNsYXJlZCBpbiAxMSBmaWxlc1xuXG4vLyBBIGhhaXJsaW5lIGJvcmRlciwgb25lIHN0ZXAgbGlnaHRlciB0aGFuICRibGFjay0yMDAuXG4keC1ib3JkZXItZmFpbnQ6ICNlY2VjZWM7ICAvLyBkZWNsYXJlZCBpbiAxNCBmaWxlc1xuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLm1vZGFsLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGM0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5NiwgMTk2LCAxOTYsIC43KTtcblxuICAmLm5nLWVudGVyLCAmLm5nLWxlYXZlIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG4gICAgICAgICAtby10cmFuc2l0aW9uOiAuMnMgbGluZWFyIGFsbDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICB9XG5cbiAgJi5uZy1lbnRlciwgJi5uZy1sZWF2ZS5uZy1sZWF2ZS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSwgJi5uZy1sZWF2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ubW9kYWwtdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTAwMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgLm1vZGFsIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIC8vIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAuMnMgbGluZWFyIGFsbDtcbiAgICAgICAgIC1vLXRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG5cbiAgICAmLm5nLWxlYXZlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgfVxuXG4gICAgJi5uZy1sZWF2ZS5uZy1sZWF2ZS1hY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAlKTtcbiAgICB9XG4gIH1cblxuICAmLm5nLWVudGVyIHtcbiAgICAubW9kYWwge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAlKTtcbiAgICB9XG4gIH1cblxuICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgLm1vZGFsIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gIH1cbn1cblxuLm1vZGFsLWFuaW1hdGUtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgLy8gQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDc3MHB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICA+IC5tb2RhbC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjEyNXMgbGluZWFyIGFsbDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246IC4xMjVzIGxpbmVhciBhbGw7XG4gICAgICAgICAtby10cmFuc2l0aW9uOiAuMTI1cyBsaW5lYXIgYWxsO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjEyNXMgbGluZWFyIGFsbDtcblxuICAgICYubmctbGVhdmUge1xuICAgICAgJi5zbGlkZS1sZWZ0IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfVxuICAgIH1cblxuICAgICYubmctbGVhdmUubmctbGVhdmUtYWN0aXZlLCAmLm5nLWhpZGUtYWRkIHtcbiAgICAgICYuc2xpZGUtbGVmdCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICB9XG5cbiAgICAmLm5nLWVudGVyLCAmLm5nLWhpZGUtcmVtb3ZlIHtcbiAgICAgICYuc2xpZGUtbGVmdCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICB9XG5cbiAgICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgICAmLnNsaWRlLWxlZnQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfVxuICAgICAgJi5zbGlkZS1yaWdodCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9XG4gICAgfVxuICB9XG59XG5cbi5tb2RhbC1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogOHB4IDhweCAyMHB4IDBweCAjNGE0YTRhO1xuXG4gICYubGFyZ2Uge1xuICAgIHdpZHRoOiA5NzBweDtcbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG5cbiAgICBidXR0b24ubGluayB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgICAgaS5sZWZ0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGVydCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAmLmNvbmZpcm0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgaS5mYSB7XG4gICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICB9XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jbG9zZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIG1hcmdpbjogMCA4cHg7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBvcGFjaXR5OiAuMjtcbiAgICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNjY2M7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xuICB9XG5cbiAgZm9vdGVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG5cbiAgICBidXR0b246bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmxvYWRpbmctdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDsgIFxuXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgLjUpO1xuXG4gIC5sb2FkaW5nLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuXG4gICAgLmZhLXNwaW5uZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgfVxuICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmF0aGxldGUtc2VsZWN0aW9uIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTBlMGUxO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMTtcbiAgaGVpZ2h0OiA0NHB4O1xuICBtaW4taGVpZ2h0OiA0NHB4O1xuICBtYXgtaGVpZ2h0OiA0NHB4O1xuXG4gID4gZGl2LFxuICA+IC5hdGhsZXRlLXNlbGVjdGlvbl9fdGFiIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTBlMGUxO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICMxMjBkMWM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmVkZmM7XG4gICAgICBjb2xvcjogIzEyMGQxYztcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5NzY4ZWI7XG4gICAgICB9XG5cbiAgICAgIC5jbG9zZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y4O1xuICAgICAgY29sb3I6ICMxMjBkMWM7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm5hbWUge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBmb250OiA2MDAgMTRweC8yMHB4IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgICAgY29sb3I6ICMxMjBkMWM7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIG1hcmdpbjogMCA4cHggMCAwO1xuICAgIH1cblxuICAgIC5jbG9zZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gZGl2LnRlYW0tbmF2IHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM2YzZjN2M7XG4gICAgbWluLXdpZHRoOiA0NHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMGUwZTE7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGNvbG9yOiAjNmM2YzdjO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmODtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnRlYW0tbmF2X19pY29uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxufVxuXG5cbi5hdGhsZXRlLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XG59XG5cbi5hdGhsZXRlLW1lbnUge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0OHB4KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLmF0aGxldGUtc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbGlnaHRfZ3JleTtcbiAgICB3aWR0aDogMTQwcHg7XG5cbiAgICBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIHRleHQtaW5kZW50OiAxNXB4O1xuICAgICAgd2lkdGg6IDk1JTtcbiAgICB9XG5cbiAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtcmVzZXQtdmlldyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCAxMDBweCk7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDBweCk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGxpZ2h0X2dyZXk7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtdG9nZ2xlLXZpZXcge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgMTAwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTAwcHgpO1xuICAgIGZvbnQtc2l6ZTogMjNweDtcblxuICAgICYgPiBpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbjogOHB4O1xuICAgICAgY29sb3I6ICRsaWdodF9ncmV5O1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUgIHtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hdGhsZXRlLW1vYmlsZS1maWx0ZXJzLWJ0biB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5hdGhsZXRlLWZpbHRlci1zb3J0IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIG1pbi13aWR0aDogNjAwcHg7XG5cbiAgICAmID4gLmF0aGxldGUtc29ydC1ib3gge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1pbi13aWR0aDogMTEwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIC5sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICAgICAgICBtYXgtd2lkdGg6IDExMHB4O1xuICAgICAgICB3aWR0aDogMTEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAzNSU7XG4gICAgICAgICAgcmlnaHQ6IDEwcHg7XG5cbiAgICAgICAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gICAgICAgICAgY29udGVudDogXCJcXGYwZDdcIjtcbiAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAub3B0aW9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MnB4O1xuICAgICAgICBsZWZ0OiAtMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmMWYxO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDY4LCA2NywgNzYsIDAuMjUpO1xuICAgICAgICBtaW4td2lkdGg6IDEzMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMztcblxuICAgICAgICAub3B0aW9ucy1pdGVtIHtcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTRweDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZmRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAub3B0aW9ucy1pdGVtLXNlbGVjdGVkIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgfVxuICAgICAgICAuc29ydC1pdGVtLXNlbGVjdGVkIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmEtY2lyY2xlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDdweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLm5vdC1hY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmEtc29ydC1hc2Mge1xuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5mYS1zb3J0LWRlc2Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IHtcbiAgICAuYXRobGV0ZS1tZW51IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICBcbiAgICAgIC5hdGhsZXRlLW1vYmlsZS1maWx0ZXJzLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTRweDtcbiAgICAgICAgZ2FwOiA3cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgfVxuICBcbiAgICAgIC5hdGhsZXRlLXNlYXJjaCB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgXG4gICAgICAuYXRobGV0ZS10b2dnbGUtdmlldyB7XG4gICAgICAgIG9yZGVyOiAzO1xuICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICBtYXgtd2lkdGg6IDcwcHg7XG4gICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICB9XG4gIFxuICAgICAgLmF0aGxldGUtZmlsdGVyLXNvcnQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG9yZGVyOiA0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIFxuICAgICAgICAmLm1vYmlsZS1vcGVuIHtcbiAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgXG4gICAgICAgICYgPiAuYXRobGV0ZS1zb3J0LWJveCB7XG4gICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICAgICAgICAgICAgY29udGVudDogXCJcXGYwZDdcIjtcbiAgICAgICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBkaXYubGFiZWwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHggMCAyMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gIFxuICAgICAgICAgIC5sYWJlbC1wbGFjZWhvbGRlcltkYXRhLWZpZWxkLW5hbWVdIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHghaW1wb3J0YW50O1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWZpZWxkLW5hbWUpICc6JztcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogJ0FsbCc7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAubGFiZWxbZGF0YS1zb3J0LXZhbHVlXSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4IWltcG9ydGFudDtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1maWVsZC1uYW1lKSAnOic7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zb3J0LXZhbHVlKTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAub3B0aW9ucyB7XG4gICAgICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICBcbiAgICAgIC5hdGhsZXRlLXJlc2V0LXZpZXcge1xuICAgICAgICBvcmRlcjogNTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAuYXRobGV0ZS1tZW51LS1maWx0ZXJzLW9wZW4ge1xuICAgICAgLmF0aGxldGUtcmVzZXQtdmlldyB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAubGFiZWxbZGF0YS1maWVsZC1uYW1lXTpub3QoLmxhYmVsLXBsYWNlaG9sZGVyKTpub3QoW2RhdGEtc29ydC12YWx1ZV0pOjpiZWZvcmUge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLWZpZWxkLW5hbWUpICc6JztcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgfVxuXG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uYXRobGV0ZS1saXN0LXZpZXcge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcblxuICAuYXRobGV0ZS1saXN0LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuYXRobGV0ZS1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTtcblxuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzVweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTtcbiAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbnVtYmVyIHtcbiAgICAgIG1pbi13aWR0aDogNzBweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIG1pbi13aWR0aDogMTcwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtc3RhdCB7XG4gICAgICBAaW5jbHVkZSBmbGV4KC41KTtcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtcHJvZ3JhbXMge1xuICAgICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1sYXN0LWFjdGl2aXR5IHtcbiAgICAgIG1pbi13aWR0aDogMTcwcHg7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWNvbnRlbnQoY2VudGVyKTtcbiAgICBmb250LXNpemU6IDIwcHg7XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTNweCk7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbnVtYmVyIHtcbiAgICAgIGNvbG9yOiAjOTM5NDk3O1xuICAgICAgbWluLXdpZHRoOiA3MHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbmFtZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICBtaW4td2lkdGg6IDE3MHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5hdGhsZXRlLXN0YXQge1xuICAgICAgQGluY2x1ZGUgZmxleCguNSk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuMjVweDtcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtcHJvZ3JhbXMge1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbGFzdC1hY3Rpdml0eSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgbWluLXdpZHRoOiAxNzBweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgPiBkaXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS1udW1iZXIsIC5hdGhsZXRlLW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgPiBkaXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS1udW1iZXIsIC5hdGhsZXRlLW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQyNDI0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5hdGhsZXRlLWRhc2hib2FyZC1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmMGVmO1xuXG4gIC5hdGhsZXRlLWRhc2hib2FyZC1sYXlvdXQtc2lkZSB7XG4gICAgQGluY2x1ZGUgZmxleCguMSk7XG4gIH1cbn1cblxuLmF0aGxldGUtZGFzaGJvYXJkIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICRkYXNoYm9hcmQtd2lkdGg6IDk5MHB4O1xuXG4gIC5hdGhsZXRlLWRhc2hib2FyZC1tZW51IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBtaW4taGVpZ2h0OiA4NXB4O1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB3aWR0aDogJGRhc2hib2FyZC13aWR0aDtcblxuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDM1cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAmID4gc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7XG5cbiAgICAgICAgJiA+IGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICRhdGhsZXRlRGFzaGJvYXJkR2FwOiAyMHB4O1xuICAuYXRobGV0ZS1kYXNoYm9hcmQtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6ICRhdGhsZXRlRGFzaGJvYXJkR2FwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5hdGhsZXRlLWluZm8tYm94IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uLWNlbnRlcigpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gI3skYXRobGV0ZURhc2hib2FyZEdhcCAqIDJ9KSAvIDMpO1xuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtYWRkLXNsb3Qge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgYnV0dG9uIGkge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hdGhsZXRlLWluZm8tYm94ID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbi5hdGhsZXRlLWRhc2hib2FyZC1hY3Rpb25zIHtcbiAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIC5hY3Rpb24ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBjb2xvcjogJGxpZ2h0X2dyZXk7XG4gICAgICAuYWN0aW9uLWljb24sIC5hY3Rpb24tdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkbGlnaHRfZ3JleTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmFjdGlvbi1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgICAuYWN0aW9uLXRleHQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uYXRobGV0ZS1pbmZvLWJveCB7XG5cbiAgLmJpby1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIDQwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6Izk3NjhFQjs7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAuYXRobGV0ZS1udW1iZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbmFtZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1udW1iZXIgKyAuYXRobGV0ZS1uYW1lIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE3LDM4LDc1LC44NSk7XG4gICAgfVxuICB9XG5cbiAgLmJpby1ib2R5IHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMSAxMDAlKTtcbiAgICBwYWRkaW5nOiAxN3B4O1xuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIH1cbiAgICAuYXRobGV0ZS1wcm9maWxlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIG1heC13aWR0aDogMTIwcHg7XG5cbiAgICAgIC5wcm9maWxlLXBpYy10aHVtYiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1waWMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICBoZWlnaHQ6IDEzMHB4O1xuICAgICAgICAvLyBtYXJnaW46IDVweCAxMHB4ICRhdGhsZXRQcm9maWxlU3ViUGljR2FwO1xuICAgICAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgfVxuXG5cbiAgICAgIH1cblxuICAgICAgLmF0aGxldGUtcG9zaXRpb24ge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS13ZWlnaHQge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmF0aGxldGUtc3RhdHMge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgLy8gbWFyZ2luLXRvcDogMTRweDtcbiAgICAgIC8vIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgLy8gcGFkZGluZy1yaWdodDogMjBweDtcblxuICAgICAgLmF0aGxldGUtc2NvcmUge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICAgIH1cblxuICAgICAgLmF0aGxldGUtc2NvcmUtdGwtZGF0YSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgIH1cblxuXG4gICAgICAudGVzdC10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICB9XG4gICAgICAudGVzdC1zY29yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYmlvLWZvb3RlciB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgNTBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICBtYXgtaGVpZ2h0OiA1MHB4O1xuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgNTAlKTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjZweDtcbiAgICAgIGkge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAmLmljb24tdGVzdCAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOEU4RTg7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGRpdiArIGRpdiB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNFOEU4RTg7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4ucHJvZmlsZS1tZW51IHtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDY1cHgpO1xufVxuXG4ubWVudS1pdGVtICsgLm1lbnUtaXRlbSB7XG4gIG1hcmdpbi1sZWZ0OiA0NXB4O1xufVxuXG4ubWVudS1pdGVtIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gIGNvbG9yOiAjYTBhNGE4O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuXG4gICYuYWN0aXZlIHtcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGJsdWU7XG4gICAgY29sb3I6ICNlZmVmZWY7XG4gIH1cblxuICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNhMGE0YTg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIHNwYW4ubWFya2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtMzBweDtcbiAgICB3aWR0aDogMjNweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5wcm9maWxlLWRldGFpbCB7XG4gICYucHJvZmlsZS1kZXRhaWwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbG9jay13aWR0aCgyMTBweCk7XG5cbiAgLmRhdGEtZW1waGFzaXMge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAucHJvZmlsZS1waWMge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDE3NXB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDIwMHB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWFjdGlvbiB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGhlaWdodDogNTBweDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJi5pbnZpc2libGUge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWRhdGEtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbi1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLnByb2ZpbGUtZGF0YSA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLnByb2ZpbGUtZ3JvdXAtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbi1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLmdyb3VwLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDlEQUQ5O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgbWFyZ2luOiA2cHggMCAwO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIHdpZHRoOiAxMTVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAuZ3JvdXAtaWNvbiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXAtc2F2ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXAtY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi5wcm9maWxlLWRhdGEtY29udGFpbmVyLm1vYmlsZS1wcm9maWxlLWRhdGEge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnByb2ZpbGUtZ3JvdXAtY29udGFpbmVyLm1vYmlsZS1wcm9maWxlLWdyb3VwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLnJlc3AtbW9udGgtdmlldyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cblxuLnJlc3Atc2NvcmUtdG9kYXkge1xuICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgYm9keSAucHJvZmlsZS1zdW1tYXJ5ID4gLnJvdy1jb250YWluZXIuZGl2aWRlZC5yZXNwLXNjb3JlLXRvZGF5ID4gZGl2ICsgZGl2IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IC5wcm9maWxlLXN1bW1hcnkge1xuICAgIHBhZGRpbmctbGVmdDogMHB4IWltcG9ydGFudDtcbiAgfVxufVxuXG4ucHJvZmlsZS1zdW1tYXJ5IHtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCg3ODBweCk7XG5cbiAgLm1vYmlsZS1waWMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcblxuICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDIwMCAvIDE3NTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC5wcm9maWxlLW5hbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAmID4gZGl2IHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWFjdGl2aXR5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgJjpudGgtY2hpbGQobisyKTpiZWZvcmUge1xuICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICBtYXJnaW46IDAgOXB4O1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJiA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYmx1ZS10ZXh0IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAuc2NvcmUtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnNjb3JlLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgzODBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZmVmZWY7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgLnByb2ZpbGUtc2NvcmUge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoODVweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDMzMHB4KTtcblxuICAgICAgJi5sYWJlbC1vbmx5IHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjVweCk7XG4gICAgICB9XG5cbiAgICAgIC5wcm9maWxlLXNjb3JlLWluZm8ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuXG4gICAgICAgIC5wcm9maWxlLXNjb3JlLW5hbWUge1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMjVweDtcblxuXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGNvbG9yOiAjQUVBRUFFO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9maWxlLXNjb3JlLWRhdGUge1xuXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgY29sb3I6ICNBRUFFQUU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnByb2ZpbGUtc2NvcmUtZ3JhcGgtY2FudmFzIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzMwcHgpO1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1zY29yZS1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAucHJvZmlsZS10bC1jaGFuZ2Uge1xuICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICBcbiAgICB9XG4gIH1cblxuICAudG9kYXktbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnRvZGF5LXByb2dyYW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzgwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJiA+IGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGl2Lmljb24tY2hlY2tib3gtY2hlY2tlZCAge1xuICAgICAgY29sb3I6ICNBRkIwQUU7XG4gICAgICAmLmJsdWUtY2hlY2sge1xuICAgICAgICBjb2xvcjogIzk3NjhFQjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZ3JhbSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIC5saWdodC1ncmV5LXRleHQgIHtcbiAgICAgICAgY29sb3I6ICNBRkIxQjM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRvZGF5LW5vdGljZSB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoMzgwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB9XG5cbiAgICAubm90aWNlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAvLyBtb3JlIHJlc3BvbnNpdmUgdG8gbm8gZml4IGhlaWdodHNcbiAgICAgIC8vIGFuZCBpbnN0ZWFkIHVzZSBwYWRkaW5nL21hcmdpbnMuLlxuICAgICAgLy8gbWluLWhlaWdodDogMjZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG5cbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuXG4gICAgLm5vdGljZS1idXR0b24ge1xuICAgICAgPiBidXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYueWVsbG93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmMwM2Y7XG5cbiAgICAgIC5ub3RpY2Uge1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIH1cblxuICAgICAgLm5vdGljZS1idXR0b24ge1xuICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NlYjc0ZTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1pc2Mgc2VjdGlvbiBzcGFjaW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uc3BhY2VkLXRvcC1sYXJnZSAge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuLnNwYWNlZC1ib3R0b20tbWVkaXVtICB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XG59XG5cblxuLmJ1cmdlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzJlMmUyZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZy1ib3R0b206IDdweDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5tZW51LW1vYmlsZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4ubWVudS1kZXNrdG9wIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1lbnUtbW9iaWxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDYwcHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAjMWMxYzFjO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIHotaW5kZXg6IDEwMDA7XG5cbiAgLm1lbnUtaXRlbSB7XG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzMzO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyAvLyDQstCw0LbQu9C40LLQvlxuICB9XG59XG5cbi5tZW51LWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi8qIE1PQklMRSBCUkVBS1BPSU5UICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1lbnUtZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5idXJnZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLm1lbnUtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDB2dztcbiAgfVxuXG4gIC5wcm9maWxlLW1lbnUge1xuICAgIHdpZHRoOiB1bnNldCFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXgtaGVpZ2h0OiA1OXB4O1xuICAgIGhlaWdodDogNTlweDtcbiAgICBtaW4taGVpZ2h0OiA1OXB4O1xuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLmF0aGxldGUtbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiA4cHggMCA0cHg7XG4gIH1cblxuICAmX19idXJnZXIge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMyZTJlMmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIH1cblxuICAmX19kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6ICMxYzFjMWM7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgcGFkZGluZzogMTRweCAyMHB4O1xuICAgIGNvbG9yOiAjYTBhNGE4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgfVxuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQXRobGV0ZSBuYXZpZ2F0aW9uIOKAlCB2ZXJ0aWNhbCBsZWZ0IHNpZGViYXJcbiAgIE1hdGNoZXMgdGhlIHByYWN0aXRpb25lci9hZG1pbiBzaWRlYmFyIHN0eWxlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kYXRobGV0ZS1zaWRlYmFyLXdpZHRoOiAyNDBweDtcbiRhdGhsZXRlLXNpZGViYXItY29sbGFwc2VkLXdpZHRoOiA3MHB4O1xuJGF0aGxldGUtaGVhZGVyLWhlaWdodDogNjBweDtcbiRhdGhsZXRlLWhlYWRlci1oZWlnaHQtbW9iaWxlOiA2MHB4O1xuLy8gU2Vjb25kYXJ5IGhlYWRlciAoYmFjay1hcnJvdyArIG1lbWJlciBuYW1lcyBiYXIpIOKAlCBmdWxsLXdpZHRoLCBzaXRzIGRpcmVjdGx5XG4vLyB1bmRlciB0aGUgbWFpbiBoZWFkZXI7IHRoZSBzaWRlYmFyIHJhaWwgYmVnaW5zIGJlbG93IGl0LlxuJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDogNDRweDtcblxuLy8gQ29sb3JzIHB1bGxlZCBmcm9tIHRoZSBwcmFjdGl0aW9uZXIgc2lkZWJhciBkZXNpZ24gc3lzdGVtXG4kYXRobGV0ZS1zaWRlYmFyLWJnOiAjZmZmZmZmO1xuXG4vLyBUaGUgbWVudV9iYXIgaW5jbHVkZSB3cmFwcGVyIGJlY29tZXMgdGhlIGZpeGVkIHNpZGViYXIgcmFpbFxuLy8gKG9ubHkgd2hlbiB0aGUgYXRobGV0ZSBtZW51IGFjdHVhbGx5IGhhcyBpdGVtcyB0byBzaG93KS5cbi8vIERlZmF1bHQ6IGZsdXNoIGJlbG93IHRoZSBtYWluIGhlYWRlciAoYXRobGV0ZSB2aWV3IGhhcyBubyBzZWxlY3Rpb24gYmFyKS5cbi5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0O1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gIG1heC13aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZS1zaWRlYmFyLWJnO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICB6LWluZGV4OiA5MDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2UsIG1pbi13aWR0aCAwLjI1cyBlYXNlLCBtYXgtd2lkdGggMC4yNXMgZWFzZTtcbn1cblxuLy8gUHJhY3RpdGlvbmVyIHZpZXc6IGRyb3AgdGhlIHJhaWwgYmVsb3cgdGhlIHNlbGVjdGlvbiBiYXIgd2hlbiBpdCByZW5kZXJzLlxuLm1haW4tdmlldzpoYXMoLmF0aGxldGUtc2VsZWN0aW9uKSB7XG4gIC5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0ICsgJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDtcbiAgfVxufVxuXG4vLyBLZWVwIHRoZSBoZWFkZXIgcGlubmVkIHNvIHRoZSBmaXhlZCBzaWRlYmFyIG9mZnNldCBzdGF5cyB2YWxpZCB3aGlsZSBzY3JvbGxpbmcuXG4vLyBwYWRkaW5nLXRvcCByZXNlcnZlcyBzcGFjZSBzbyBjb250ZW50IGRvZXMgbm90IGp1bXAgdW5kZXIgdGhlIGZpeGVkIGhlYWRlci5cbi5tYWluLXZpZXc6aGFzKD4gLm1lbnUtY29udGVudCAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykge1xuICBwYWRkaW5nLXRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodDtcblxuICA+IC5oZWFkZXItY29udGVudCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDkxMDsgLy8gYWJvdmUgc2lkZWJhciAoOTAwKVxuICB9XG5cbiAgLy8gUGluIHRoZSBzZWNvbmRhcnkgaGVhZGVyIHRvIGEga25vd24gaGVpZ2h0IHNvIHRoZSByYWlsJ3MgYHRvcGAgb2Zmc2V0IGxpbmVzXG4gIC8vIHVwIGV4YWN0bHkgYmVuZWF0aCBpdCAobm8gZ2FwLCBubyBvdmVybGFwKS5cbiAgPiAuaGVhZGVyLWNvbnRlbnQgKyAqIC5hdGhsZXRlLXNlbGVjdGlvbiB7XG4gICAgaGVpZ2h0OiAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuICAgIG1pbi1oZWlnaHQ6ICRhdGhsZXRlLXN1YmhlYWRlci1oZWlnaHQ7XG4gICAgbWF4LWhlaWdodDogJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDtcbiAgfVxufVxuXG4vLyBQcmFjdGl0aW9uZXIgdmlldzogYWxzbyBwaW4gdGhlIHNlbGVjdGlvbi1iYXIgd3JhcHBlciB3aGlsZSBzY3JvbGxpbmcuXG4ubWFpbi12aWV3OmhhcyguYXRobGV0ZS1zZWxlY3Rpb24pOmhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIHtcbiAgcGFkZGluZy10b3A6ICRhdGhsZXRlLWhlYWRlci1oZWlnaHQgKyAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuXG4gIC8vIFNpdHMgYmVsb3cgdGhlIGhlYWRlciAoOTEwKSBhbmQgdGhlIHJhaWwgKDkwMCAvIDkyMCBvbiBtb2JpbGUpLiBOb3RoaW5nIGV2ZXJcbiAgLy8gb3ZlcmxhcHMgaXQgdmVydGljYWxseSDigJQgdGhlIHJhaWwgc3RhcnRzIGJlbmVhdGggdGhpcyBiYXIg4oCUIGFuZCBwb3NpdGlvbjogZml4ZWRcbiAgLy8gYWxvbmUgc3RpbGwgcGFpbnRzIGl0IGFib3ZlIGFsbCBpbi1mbG93IGNvbnRlbnQuXG4gID4gLmhlYWRlci1jb250ZW50ICsgKiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDg5NTtcbiAgfVxufVxuXG4vLyBDb2xsYXBzZWQgcmFpbCAoaWNvbi1vbmx5KVxuLm1lbnUtY29udGVudDpoYXMoLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSB7XG4gIHdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbiAgbWluLXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbiAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbn1cblxuLy8gQ29udHJvbGxlciByb290IGZpbGxzIHRoZSByYWlsIGFzIGEgdmVydGljYWwgY29sdW1uXG4ucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICAvLyBUaGUgcm9vdCBhbHNvIGNhcnJpZXMgLnZpZXctY29udGFpbmVyLCB3aGljaCBwaWNrcyB1cCBhIDE1cHggc2lkZSBndXR0ZXJcbiAgLy8gYmVsb3cgMTA1NHB4IChyZXNwb25kKG1kKSBpbiBfcmVzcG9uc2l2ZW5lc3NfdHdlYWtzKS4gT24gYSA3MHB4IHJhaWwgdGhhdFxuICAvLyBzcXVlZXplcyB0aGUgaGVhZGVyIGFuZCBpdGVtIGJveGVzIGludG8gbmFycm93IHBpbGxzLlxuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgLnNpZGViYXItaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gbGVmdCAyNHB4IGFsaWducyB0aGUgdGl0bGUgd2l0aCB0aGUgaXRlbSBpY29uczsgcmlnaHQgMTJweCBhbGlnbnMgdGhlXG4gICAgLy8gdG9nZ2xlIHdpdGggdGhlIGl0ZW0gYm94ZXMnIHJpZ2h0IGVkZ2VcbiAgICBwYWRkaW5nOiAxNnB4IDEycHggMTZweCAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdlLWJnO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIC8vIFN0YXkgdmlzaWJsZSBpZiB0aGUgbmF2IGxpc3Qgb3ZlcmZsb3dzIGFuZCB0aGUgcmFpbCBzY3JvbGxzIGludGVybmFsbHlcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLnNpZGViYXItaGVhZGVyX190aXRsZSB7XG4gICAgLy8gZ3JvdyB0byBmaWxsIHNvIHRoZSB0b2dnbGUgaXMgcHVzaGVkIHRvIHRoZSBmYXIgcmlnaHQgcmVnYXJkbGVzcyBvZiB0aGVcbiAgICAvLyBiYXNlIC5wcm9maWxlLW1lbnUgZmxleCBydWxlc1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAuc2lkZWJhci1oZWFkZXJfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAvLyBuZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KSB9XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vIHRoZSBhcnJvdyBnbHlwaCBoYXMgd2hpdGVzcGFjZSBvbiBpdHMgcmlnaHQgaW5zaWRlIHRoZSB2aWV3Qm94OyBwdWxsIHRoZVxuICAgIC8vIGJ1dHRvbiByaWdodCBzbyB0aGUgdmlzdWFsIGFycm93IGxpbmVzIHVwIHdpdGggdGhlIGl0ZW0gYm94ZXMnIHJpZ2h0IGVkZ2VcbiAgICBtYXJnaW4tcmlnaHQ6IC02cHg7XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMjJweDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICB9XG4gIH1cblxuICAubWVudS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHggMTJweDtcbiAgfVxuXG4gIC5tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBtYXJnaW46IDAgMCA0cHggMDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogJHNpZGViYXItdGl0bGU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dDtcblxuICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgICAgY29sb3I6ICRzaWRlYmFyLXRpdGxlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5ldXRyYWxpemUgdGhlIG9sZCBob3Jpem9udGFsIHNwYWNpbmcgcnVsZVxuICAubWVudS1pdGVtICsgLm1lbnUtaXRlbSB7IG1hcmdpbi1sZWZ0OiAwOyB9XG5cbiAgLm1lbnUtaXRlbV9faWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG4gIH1cblxuICAubWVudS1pdGVtX19sYWJlbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgdHJpZ2dlciDigJQgaGlkZGVuIG9uIGRlc2t0b3BcbiAgLnNpZGViYXItYnVyZ2VyIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyBQcmFjdGl0aW9uZXIgbWVtYmVyLXZpZXc6IHByb2ZpbGUgYmxvY2sgKyBhZG1pbiBmb290ZXJcbi5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLnByb2ZpbGUtbWVudS0tcHJhY3RpdGlvbmVyIHtcbiAgLnNpZGViYXItbWVtYmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTZweCAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhdGhsZXRlLXNpZGViYXItYmc7XG4gIH1cblxuICAuc2lkZWJhci1tZW1iZXJfX2F2YXRhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZS1iZztcbiAgfVxuXG4gIC5zaWRlYmFyLW1lbWJlcl9faW5mbyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLnNpZGViYXItbWVtYmVyX19uYW1lIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiAjM2MzYzQzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC5zaWRlYmFyLW1lbWJlcl9fc3VidGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiAjOGU4ZTkzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC5zaWRlYmFyLWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF0aGxldGUtc2lkZWJhci1iZztcbiAgfVxuXG4gIC5zaWRlYmFyLWZvb3Rlcl9fYWRtaW4tYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gbmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCkgfVxuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjM2MzYzQzO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIC8vIG5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHggfVxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2UtYmc7XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICB9XG5cbiAgLnNpZGViYXItZm9vdGVyX19hZG1pbi1sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4vLyBDb2xsYXBzZWQ6IGhpZGUgbGFiZWxzICsgdGl0bGUsIGNlbnRlciBpY29uc1xuLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkIHtcbiAgLnNpZGViYXItaGVhZGVyIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnNpZGViYXItaGVhZGVyX190aXRsZSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1lbnUtaXRlbSB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5tZW51LWl0ZW1fX2xhYmVsIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICYucHJvZmlsZS1tZW51LS1wcmFjdGl0aW9uZXIge1xuICAgIC5zaWRlYmFyLW1lbWJlciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgfVxuXG4gICAgLnNpZGViYXItbWVtYmVyX19pbmZvIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLnNpZGViYXItZm9vdGVyIHtcbiAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgIH1cblxuICAgIC5zaWRlYmFyLWZvb3Rlcl9fYWRtaW4tbGFiZWwgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWJ0biB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgZ2FwOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQdXNoIHBhZ2UgY29udGVudCBpbnRvIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0IG9mIHRoZSByYWlsLlxuLy8gU2NvcGVkIHZpYSA6aGFzKCkgc28gcGFnZXMgd2l0aG91dCB0aGUgYXRobGV0ZSBzaWRlYmFyIGFyZSB1bnRvdWNoZWQsXG4vLyBhbmQgbWFyZ2lucyByZXNldCBhdXRvbWF0aWNhbGx5IHdoZW4gbmF2aWdhdGluZyBhd2F5LlxuLy8gTk9URTogdGhlIHNlY29uZGFyeSBoZWFkZXIgKGAuaGVhZGVyLWNvbnRlbnQgKyAqYCkgaXMgaW50ZW50aW9uYWxseSBOT1Rcbi8vIHB1c2hlZCDigJQgaXQgc3BhbnMgZnVsbCB3aWR0aCBhdCB0aGUgZmFyIGxlZnQsIGFib3ZlIHRoZSByYWlsLiBUaGUgcmFpbCdzXG4vLyBgdG9wYCBvZmZzZXQgKGFib3ZlKSBkcm9wcyBpdCBiZWxvdyB0aGUgc2Vjb25kYXJ5IGhlYWRlciBpbnN0ZWFkLlxuLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gID4gLm1lbnUtY29udGVudCB+ICoge1xuICAgIG1hcmdpbi1sZWZ0OiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IDAuMjVzIGVhc2U7XG4gIH1cbn1cblxuLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkge1xuICA+IC5tZW51LWNvbnRlbnQgfiAqIHtcbiAgICBtYXJnaW4tbGVmdDogJGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGg7XG4gIH1cbn1cblxuLyogVGhlIHNjcmltIG9ubHkgZXhpc3RzIGluIHRoZSBvZmYtY2FudmFzIHRpZXIgYmVsb3cuICovXG4uc2lkZWJhci1zY3JpbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE1vYmlsZTogc2lkZWJhciBzbGlkZXMgaW4gZnJvbSB0aGUgbGVmdCwgdG9nZ2xlZCBieSBhIGZpeGVkIGJ1cmdlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC8vIFNpdHMgYWZ0ZXIgdGhlIGRyYXdlcidzIHJpZ2h0IGVkZ2Ugc28gdGhlIHJhaWwgaXRzZWxmIHN0YXlzIGNyaXNwLlxuICAvLyB6LWluZGV4OiAtMSBrZWVwcyBpdCB1bmRlciB0aGUgZHJhd2VyJ3Mgb3duIGNoaWxkcmVuIHdoaWxlIHRoZSBwYXJlbnQnc1xuICAvLyB6LWluZGV4ICg5MjAsIGJlbG93KSBrZWVwcyBpdCBvdmVyIHRoZSBwYWdlLlxuICAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1tb2JpbGUtb3BlbiAuc2lkZWJhci1zY3JpbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgbGVmdDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICB9XG5cbiAgLy8gT25seSBvbmUgbW9iaWxlIG5hdiB0cmlnZ2VyOiBhdGhsZXRlX3NlbGVjdGlvbl9iYXIuaHRtbCBpbnN0YW50aWF0ZXMgYVxuICAvLyBzZWNvbmQgTWVudUJhckNvbnRyb2xsZXIgd2l0aCBpdHMgb3duIGJ1cmdlciwgd2hpY2ggZHVwbGljYXRlZCB0aGlzIG9uZVxuICAvLyB3aGVyZXZlciB0aGUgc2lkZWJhciByZW5kZXJzLlxuICAubWFpbi12aWV3OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykgLmF0aGxldGUtbmF2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUHJhY3RpdGlvbmVyIHZpZXcgc3RhY2tzIGEgNDRweCB0YWIgYmFyIHVuZGVyIHRoZSA2MHB4IGhlYWRlci4gVGhlIGJ1cmdlciBzaXRzXG4gIC8vIGluIHRoZSBoZWFkZXIgaXRzZWxmIChiZWxvdyksIHNvIHRoaXMgYmFyIG9ubHkgbmVlZHMgaXRzIHNjcmltIG9mZnNldCBmaXhlZC5cbiAgLm1haW4tdmlldzpoYXMoLmF0aGxldGUtc2VsZWN0aW9uKSB7XG4gICAgLy8gTWF0Y2ggdGhlIGRyYXdlcidzIHRvcCBzbyB0aGUgdGFiIGJhciBpcyBub3QgZGltbWVkLlxuICAgIC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLW1vYmlsZS1vcGVuIC5zaWRlYmFyLXNjcmltIHtcbiAgICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGUgKyAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBmaXhlZCBidXJnZXIgb3ZlcmxheXMgdGhlIGhlYWRlcidzIGxlZnQgZWRnZTsgcmVzZXJ2ZSB0aGF0IHdpZHRoIHNvIGhlYWRlclxuICAvLyBjb250ZW50IHN0YXJ0cyBjbGVhciBvZiBpdCAtLSB0aGUgbWVtYmVyIGhlYWRlcidzIFZpc29yIG1hcmsgYW5kIHRoZVxuICAvLyBwcmFjdGl0aW9uZXIgdGVhbSBzd2l0Y2hlciB3b3VsZCBib3RoIG90aGVyd2lzZSBiZSBjb3ZlcmVkLlxuICAvLyBUYXJnZXRzIHRoZSBpbm5lciBkYXJrIGVsZW1lbnQsIG5vdCB0aGUgcGxhaW4gLmhlYWRlci1jb250ZW50IHdyYXBwZXIgdGhlIHZpZXdzXG4gIC8vIHB1dCBhcm91bmQgdGhlIGluY2x1ZGUg4oCUIHBhZGRpbmcgb24gdGhlIHdyYXBwZXIgd291bGQgaW5zZXQgdGhlIGRhcmsgYmFyIGl0c2VsZi5cbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgLmhlYWRlci1jb250ZW50LS1hdGhsZXRlLFxuICAgIC5oZWFkZXItY29udGVudC0tcHJhYyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRhdGhsZXRlLWhlYWRlci1oZWlnaHQtbW9iaWxlO1xuICAgIH1cbiAgfVxuXG4gIC5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICBsZWZ0OiAtJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICB3aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IDJweCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC4yNXMgZWFzZTtcblxuICAgIC8vIFRoZSBidXJnZXIgaXMgYSBjaGlsZCBvZiB0aGlzIGZpeGVkLCB6LWluZGV4ZWQgZWxlbWVudCwgc28gaXRzIG93biB6LWluZGV4IGlzXG4gICAgLy8gbG9jYWwgdG8gdGhpcyBjb250ZXh0LiBMaWZ0IHRoZSBjb250ZXh0IGFib3ZlIHRoZSBoZWFkZXIgKDkxMCkgc28gdGhlIGJ1cmdlclxuICAgIC8vIGNhbiBwYWludCBpbiB0aGUgaGVhZGVyJ3MgbGVmdCBjZWxsLiBUaGUgZHJhd2VyIGl0c2VsZiBzdGFydHMgYXQgdGhlIGhlYWRlcidzXG4gICAgLy8gYm90dG9tIGVkZ2UsIHNvIGl0IG5ldmVyIG92ZXJsYXBzIHRoZSBoZWFkZXIgcmVnYXJkbGVzcyBvZiBwYWludCBvcmRlci5cbiAgICB6LWluZGV4OiA5MjA7XG4gIH1cblxuICAubWVudS1jb250ZW50OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1tb2JpbGUtb3Blbikge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAvLyBUaGUgZGVza3RvcCBjb2xsYXBzZSBwcmVmZXJlbmNlIGlzIHBlcnNpc3RlZCBpbiBsb2NhbFN0b3JhZ2VcbiAgLy8gKGF0aGxldGVOYXZDb2xsYXBzZWQpLCBhbmQgaXRzIDcwcHggd2lkdGggcnVsZSBvdXQtc3BlY2lmaWVzIHRoZSBtb2JpbGVcbiAgLy8gd2lkdGggYWJvdmUuIEFuIG9mZi1jYW52YXMgZHJhd2VyIGhhcyBubyByZWFzb24gdG8gYmUgaWNvbi1vbmx5LCBhbmQgYXQgNzBweFxuICAvLyB0aGUgbGFiZWxzIGJlbG93IHdlcmUgcmVuZGVyZWQgYnV0IGNsaXBwZWQgYnkgb3ZlcmZsb3cteDogaGlkZGVuLlxuICAubWVudS1jb250ZW50OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1jb2xsYXBzZWQpIHtcbiAgICB3aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICB9XG5cbiAgLy8gQ29udGVudCBzcGFucyBmdWxsIHdpZHRoIG9uIG1vYmlsZS4gVGhlIC5pcy1jb2xsYXBzZWQgdmFyaWFudCBpcyBsaXN0ZWRcbiAgLy8gZXhwbGljaXRseSBiZWNhdXNlIHRoZSBkZXNrdG9wIHJ1bGUgdGhhdCBpbmRlbnRzIGNvbnRlbnQgYnkgNzBweCBjYXJyaWVzIHRoZVxuICAvLyBzYW1lIHNwZWNpZmljaXR5LCBhbmQgd291bGQgb3RoZXJ3aXNlIHdpbiBieSBtYXRjaGluZyBhIGxvbmdlciBzZWxlY3Rvci5cbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSxcbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkge1xuICAgID4gLmhlYWRlci1jb250ZW50ICsgKjpub3QoLm1lbnUtY29udGVudCksXG4gICAgPiAubWVudS1jb250ZW50IH4gKiB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcyB7XG4gICAgLy8gSGlkZSB0aGUgZGVza3RvcCBjb2xsYXBzZSBoZWFkZXIsIHNob3cgdGhlIG9mZi1jYW52YXMgYnVyZ2VyXG4gICAgLnNpZGViYXItaGVhZGVyIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLy8gU2VhdGVkIGluIHRoZSBkYXJrIGhlYWRlcidzIHRvcC1sZWZ0IGNlbGwgcmF0aGVyIHRoYW4gZmxvYXRpbmcgb3ZlciBjb250ZW50LlxuICAgIC5zaWRlYmFyLWJ1cmdlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICAgIGhlaWdodDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHotaW5kZXg6IDk1MDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBPbiBtb2JpbGUgdGhlIHJhaWwgaXMgYWx3YXlzIGZ1bGwgd2lkdGgsIHNvIGtlZXAgbGFiZWxzIHZpc2libGVcbiAgICAmLmlzLWNvbGxhcHNlZCB7XG4gICAgICAubWVudS1pdGVtIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgICAubWVudS1pdGVtX19sYWJlbCB7IGRpc3BsYXk6IGlubGluZTsgfVxuICAgIH1cblxuICAgICYucHJvZmlsZS1tZW51LS1wcmFjdGl0aW9uZXIuaXMtY29sbGFwc2VkIHtcbiAgICAgIC5zaWRlYmFyLW1lbWJlcl9faW5mbyB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWxhYmVsIHsgZGlzcGxheTogaW5saW5lOyB9XG4gICAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWJ0biB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEF0aGxldGUgd2VsY29tZSBoZWFkZXIgKGhvbWUgcGFnZSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJHdlbGNvbWUtbGFzdC10ZXN0OiAjN2I1Y2M4O1xuJHdlbGNvbWUtc3RyZWFrOiAjZjA4YTI0O1xuJHdlbGNvbWUtdHJhaW5pbmc6ICMyMGI3Njk7XG5cbi52aWV3LWxheW91dDpoYXMoLmF0aGxldGUtd2VsY29tZS1oZWFkZXIpLFxuLnZpZXctbGF5b3V0OmhhcygudG9kYXktYXNrcykge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vLyBuZy1pbmNsdWRlIGluamVjdHMgYW4gdW5zdHlsZWQgd3JhcHBlciBiZXR3ZWVuIC52aWV3LWxheW91dCBhbmQgdGhlIGNhcmQsIGFuZFxuLy8gYXMgYSBmbGV4IGl0ZW0gaXRzIGF1dG9tYXRpYyBtaW5pbXVtIHNpemUgcmVzb2x2ZXMgdG8gdGhlIGNhcmQncyBtaW4tY29udGVudFxuLy8gd2lkdGguIEEgZml4ZWQgY2FyZCB3aWR0aCB0aGVyZWZvcmUgYmVjYW1lIGEgZmxvb3IgdGhlIHJvdyBjb3VsZCBub3Qgc2hyaW5rXG4vLyBiZWxvdywgb3ZlcmZsb3dpbmcgdGhlIHZpZXdwb3J0IG9uIG1vYmlsZS4gbWluLXdpZHRoOiAwIHJlbW92ZXMgdGhlIGZsb29yO1xuLy8gZmxleC93aWR0aCBrZWVwIHRoZSB3cmFwcGVyIHNwYW5uaW5nIHRoZSByb3cgc28gdGhlIGNhcmQgc3RpbGwgZmlsbHMgaXQuXG4udmlldy1sYXlvdXQgPiBkaXY6aGFzKD4gLmF0aGxldGUtd2VsY29tZS1oZWFkZXIpLFxuLnZpZXctbGF5b3V0ID4gZGl2Omhhcyg+IC50b2RheS1hc2tzKSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udmlldy1sYXlvdXQuYXRobGV0ZS1ob21lLXJvdyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmF0aGxldGUtd2VsY29tZS1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMTQ4cHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDE2cHggMjRweCAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICZfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMzJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDQwcHggMTZweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3Byb2ZpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgJl9fYXZhdGFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogOTZweDtcbiAgICBoZWlnaHQ6IDk2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuXG4gICZfX3RpdGxlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuXG4gICAgLmF0aGxldGUtd2VsY29tZS1oZWFkZXJfX3RpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGNvbG9yOiAjOTc2OGViO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gICZfX2FjdGlvbi1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIFNwYWNpbmcgaXMgdGhlIGxhc3QtdGVzdCByb3cncyBnYXAgYW5kIG5vdGhpbmcgZWxzZS4gQSBtYXJnaW4gaGVyZSB3b3VsZCBsYW5kIG9uXG4gIC8vIG9uZSBzaWRlIG9mIHRoZSBzZWNvbmQgZG90IG9ubHkgYW5kIHJlaW50cm9kdWNlIHRoZSB1bmV2ZW4gc2VwYXJhdG9ycy5cbiAgJl9fdGFrZS10ZXN0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX2JhZGdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTcwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19sYXN0LXRlc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgY29sb3I6ICM5NzY4ZWI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgfVxuXG4gICZfX2xhc3QtdGVzdC1kYXRlIHtcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2xhc3QtdGVzdC1zZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGNvbG9yOiAjZDFkMWQxO1xuICB9XG5cbiAgJl9fc3RhdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAzNnB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fc3RhdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3N0YXQtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gRXZlcnkgdGlsZSBnZXRzIHRoZSBzYW1lIDMycHggaWNvbiBib3ggZXZlbiB0aG91Z2ggdGhlIGdseXBocyBpbnNpZGUgZGlmZmVyIGluXG4gIC8vIHNpemUuIFRoZSB0aWxlcyBhcmUgdG9wLWFsaWduZWQgY29sdW1ucywgc28gYW4gaWNvbiBib3ggdGhhdCBpcyA0cHggc2hvcnRlclxuICAvLyBwdXNoZWQgdGhhdCB0aWxlJ3MgdmFsdWUgYW5kIGxhYmVsIG9udG8gdGhlaXIgb3duIHJvd3MuXG4gICZfX3N0YXQtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG5cbiAgICBzdmcsXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgJi0tc3RyZWFrIHtcbiAgICAgIGNvbG9yOiAkd2VsY29tZS1zdHJlYWs7XG4gICAgfVxuXG4gICAgJi0tdHJhaW5pbmcge1xuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1za2VsIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlY2VjZWY7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBhbmltYXRpb246IGhvbWUtc2tlbGV0b24tcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gIH1cblxuICAmX19yaW5nLXRyYWNrIHtcbiAgICBmaWxsOiBub25lO1xuICAgIHN0cm9rZTogI2U1ZTVlNTtcbiAgICBzdHJva2Utd2lkdGg6IDMuNTtcbiAgfVxuXG4gICZfX3JpbmctcHJvZ3Jlc3Mge1xuICAgIGZpbGw6IG5vbmU7XG4gICAgc3Ryb2tlOiAkd2VsY29tZS10cmFpbmluZztcbiAgICBzdHJva2Utd2lkdGg6IDMuNTtcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgZWFzZTtcbiAgfVxuXG4gICZfX3N0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fc3RhdC1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19zdGF0LXN1YmxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX3NrZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZWNlY2VmO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBhbmltYXRpb246IGhvbWUtc2tlbGV0b24tcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcblxuICAgICYtLXZhbHVlIHtcbiAgICAgIHdpZHRoOiA0LjVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cblxuICAgICYtLWxhYmVsIHtcbiAgICAgIHdpZHRoOiA3LjVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cblxuICAgICYtLWxhYmVsLXdpZGUge1xuICAgICAgd2lkdGg6IDExZW07XG4gICAgfVxuXG4gICAgJi0tc3VibGFiZWwge1xuICAgICAgd2lkdGg6IDVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cbiAgfVxuXG4gICZfX2F2YXRhci0tc2tlbGV0b24ge1xuICAgIGJhY2tncm91bmQ6ICNlY2VjZWY7XG4gICAgYW5pbWF0aW9uOiBob21lLXNrZWxldG9uLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIH1cblxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWJhZGdlIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHRhYmxldCkge1xuICAuYXRobGV0ZS13ZWxjb21lLWhlYWRlciB7XG4gICAgJl9faW5uZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAyNHB4O1xuICAgICAgcGFkZGluZzogMTZweCAyNHB4IDE2cHggMjBweDtcbiAgICB9XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBnYXA6IDE2cHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmF0aGxldGUtd2VsY29tZS1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAwO1xuXG4gICAgJl9faW5uZXIge1xuICAgICAgcGFkZGluZzogMTZweCAxNnB4IDE2cHggMTZweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgfVxuXG4gICAgJl9fYXZhdGFyIHtcbiAgICAgIHdpZHRoOiA1NnB4O1xuICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgIH1cblxuICAgIC8vIFN0YXlzIGEgcm93OiBzdGFja2luZyB0aGUgdGhyZWUgdGlsZXMgaW50byBhIGNvbHVtbiBhZGRlZCB+MjEwcHggb2YgaGVpZ2h0LlxuICAgICZfX3N0YXRzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICB9XG5cbiAgICAmX19zdGF0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5hdGhsZXRlLXdlbGNvbWUtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxNnB4IDEycHggMDtcblxuICAgICZfX2lubmVyIHtcbiAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICBnYXA6IDE0cHg7XG4gICAgfVxuXG4gICAgJl9fcHJvZmlsZSB7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fYXZhdGFyIHtcbiAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxNHB4O1xuICAgIH1cblxuICAgICZfX3N0YXQge1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgJl9fc3RhdC1pY29uLFxuICAgICZfX3N0YXQtaWNvbi0tc3RyZWFrLFxuICAgICZfX3N0YXQtaWNvbi0tcHJvZ3JhbXMge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG5cbiAgICAgIHN2ZyxcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RhdC1pY29uLS10cmFpbmluZyBzdmcge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdC12YWx1ZSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdGF0LWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cblxuICAgICZfX3N0YXQtc3VibGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tdGl0bGUge1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDE0MHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcm9ncmVzcyBJbnNpZ2h0cyAoYXRobGV0ZSBob21lKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kaW5zaWdodHMtbGluazogJGJsdWU7XG4kaW5zaWdodHMtdXA6ICMyMGI3Njk7XG4kaW5zaWdodHMtZG93bjogI2M0MmEzYjtcblxuLnByb2dyZXNzLWluc2lnaHRzIHtcbiAgcGFkZGluZzogMTZweCAyNHB4IDA7XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9XG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gIH1cblxuICBidXR0b24gKyBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgJl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDQ5MnB4O1xuICAgIGhlaWdodDogMTQ1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6aGFzKC5wcm9ncmVzcy1pbnNpZ2h0c19fZW1wdHkpIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDE0NXB4O1xuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDE0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkaW5zaWdodHMtbGluaztcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAmX19saW5rLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2VtcHR5LXRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2VtcHR5LWRlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDAgMCAxNHB4O1xuICAgIHdpZHRoOiA0NTJweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNkQ2RDZEO1xuICB9XG5cbiAgJl9fZW1wdHktY3RhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDE2NnB4O1xuICAgIG1pbi13aWR0aDogMTY2cHg7XG4gICAgbWF4LXdpZHRoOiAxNjZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjk7XG4gICAgfVxuICB9XG5cbiAgJl9fY2FyZHMsXG4gICZfX3NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleDogMCAwIDgzcHg7XG4gICAgaGVpZ2h0OiA4M3B4O1xuICAgIG1pbi1oZWlnaHQ6IDgzcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2NhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJsYWNrLTIwMDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbWV0cmljIHtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzZENkQ2RDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAmX19zY29yZS1ibG9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3Njb3JlIHtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuXG4gICZfX2NoYW5nZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICYtLXVwIHtcbiAgICAgIGNvbG9yOiAkaW5zaWdodHMtdXA7XG4gICAgfVxuXG4gICAgJi0tZG93biB7XG4gICAgICBjb2xvcjogJGluc2lnaHRzLWRvd247XG4gICAgfVxuICB9XG5cbiAgJl9fdHJlbmQtaWNvbiB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmVzcy1pbnNpZ2h0cyB7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAucHJvZ3Jlc3MtaW5zaWdodHMge1xuICAgIHBhZGRpbmc6IDEycHggMTJweCAwO1xuXG4gICAgJl9fcGFuZWwge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgJl9fY2FyZCB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICB9XG5cbiAgICAmX19tZXRyaWMge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19lbXB0eS1jdGEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRvZGF5IGFza3MgKGF0aGxldGUgaG9tZSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJHRvZGF5LWFza3MtYWxlcnQtYmc6ICNmZmZhZjA7XG4kdG9kYXktYXNrcy1wcmV2aWV3LWdyZWVuOiAjN2NiYzZlO1xuJHRvZGF5LWFza3MtcHJldmlldy1ncmVlbi1saWdodDogI2M4ZTZiODtcblxuLnRvZGF5LWFza3Mge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMTQ4cHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDE2cHggMjRweCAwO1xuXG4gICZfX3BhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDE2cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgfVxuXG4gICZfX3BhbmVsOmhhcygudG9kYXktYXNrc19fZXhwYW5kYWJsZSk6bm90KDpoYXMoLnRvZGF5LWFza3NfX2FsZXJ0LXJvdykpICZfX2hlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRyb29tLW11dGVkO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gICZfX2NoZXZyb24ge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX2FsZXJ0LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMjBweCAxNnB4IDEycHg7XG4gIH1cblxuICAmX19wYW5lbDpoYXMoLnRvZGF5LWFza3NfX2V4cGFuZGFibGUpICZfX2FsZXJ0LXJvdyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRyb29tLW11dGVkO1xuICB9XG5cbiAgJl9fYWxlcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwIDAgMTZweDtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFtYmVyLTEwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHRvZGF5LWFza3MtYWxlcnQtYmc7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJGFtYmVyO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZfX2FsZXJ0LWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgJGFtYmVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjb2xvcjogJGFtYmVyO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIC5mYSB7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG4gIH1cblxuICAmX19hbGVydC10ZXh0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYW1iZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAmX19hbGVydC1jaGV2cm9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIDQ0cHg7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMjY0cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gUHJlZmVycmVkIDQyMHB4LCBidXQgc2hyaW5rIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNhcmQgb24gYSBuYXJyb3cgZGVza3RvcFxuICAvLyBpbnN0ZWFkIG9mIHBpbm5pbmcgdGhpcyBjb2x1bW4gYW5kIHNxdWVlemluZyBvbmx5IFwiTmV4dCB0byBDb21wbGV0ZVwiLlxuICAmX19saXN0IHtcbiAgICBmbGV4OiAwIDEgNDIwcHg7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDA7XG4gIH1cblxuICAmX19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYtLXNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAudG9kYXktYXNrc19fYmFkZ2U6bm90KC50b2RheS1hc2tzX19iYWRnZS0tZG9uZSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICAgICAgfVxuXG4gICAgICAudG9kYXktYXNrc19faXRlbS1uYW1lIHtcbiAgICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tY29tcGxldGVkIHtcbiAgICAgIC50b2RheS1hc2tzX19pdGVtLW5hbWUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAmLS1kb25lIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlN2Y1ZWU7XG4gICAgICBjb2xvcjogIzEyYjc2YTtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG4gIH1cblxuICAmX19pdGVtLW5hbWUge1xuICAgIG1hcmdpbjogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19kZXRhaWwge1xuICAgIC8vIFByZWZlcnJlZCB3aWR0aCBvZiBwYWRkaW5nICsgYWN0aW9uICsgZ2FwICsgcHJldmlldywgc28gdGhpcyBjb2x1bW5cbiAgICAvLyBzaHJpbmtzIHdpdGggdGhlIGxpc3Qgb24gYSBuYXJyb3cgZGVza3RvcCBpbnN0ZWFkIG9mIGFic29yYmluZyB0aGVcbiAgICAvLyBsZWZ0b3ZlciBhZnRlciBhIHBpbm5lZCA0MjBweCBsaXN0LlxuICAgIGZsZXg6IDEgMSA3MjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogNTZweDtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweCAzMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYmY5ZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgIHVybCgnLi4vLi4vaW1hZ2VzL3RvZGF5LWJhY2tncm91bmQucG5nJyksXG4gICAgICBsaW5lYXItZ3JhZGllbnQoMjc3Ljg5ZGVnLCAjZmJmOWZmIDExLjk5JSwgI2YwZThmZiAyOS42OCUsICNlY2UyZmYgNDUuOTElLCAjZWVlNmZmIDYxLjI1JSwgI2ZmZmZmZiA5MS44NiUpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCwgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXIsIGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGxpZ2h0ZW4sIG5vcm1hbDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19kb25lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICB9XG5cbiAgJl9fZG9uZS1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuXG4gICZfX2RvbmUtZXllYnJvdyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX19kb25lLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gICZfX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgMjEycHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDI0cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAyMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19hY3Rpb24tY29weSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fZXllYnJvdyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX19hY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgfVxuXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC45MjtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cblxuICAmX19jdGEtYXJyb3cge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICZfX3ByZXZpZXcge1xuICAgIGZsZXg6IDAgMSA0MDRweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDQwNHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMTYsIDI0LCA0MCwgMC4wMik7XG4gIH1cblxuICAmX19wcmV2aWV3LWFydCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDE1NnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR0b2RheS1hc2tzLXByZXZpZXctZ3JlZW4tbGlnaHQgMCUsICR0b2RheS1hc2tzLXByZXZpZXctZ3JlZW4gMTAwJSk7XG5cbiAgICAvLyBUaGUgYmFuZCB0YWtlcyB0aGUgcGhvdG8ncyA4MDh4MzEyIHNoYXBlIGl0c2VsZiAoc2VlIF9fcHJldmlldy1waG90byksIHNvIGl0IGlzXG4gICAgLy8gdGhlIHNhbWUgaGVpZ2h0IGJlZm9yZSB0aGUgcGljdHVyZSBhcnJpdmVzIGFzIGFmdGVyLiBBIHNlc3Npb24ncyBwaG90byBpcyBvbmx5XG4gICAgLy8gcmVuZGVyZWQgb25jZSBpdCBoYXMgb25lOyB1bnRpbCB0aGVuLCBhbmQgZm9yIGEgc2Vzc2lvbiB3aXRoIG5vbmUsIHRoZSBncmFkaWVudFxuICAgIC8vIHNob3dzLlxuICAgICYtLXBob3RvIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGFzcGVjdC1yYXRpbzogODA4IC8gMzEyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBzY2hlZHVsZSB0aHVtYm5haWwgaXMgYW4gZXhlcmNpc2UgdmlkZW8ncyBwb3N0ZXIgZnJhbWUsIGFuZCB0aG9zZSBhcmUgbm90IGFsbFxuICAvLyBvbmUgcmF0aW8uIFRoZSBiYW5kIGtlZXBzIHRoZSA4MDh4MzEyIHNoYXBlIG9mIHRoZSBzdG9jayBwaG90byBpdCByZXBsYWNlZCwgd2hpY2hcbiAgLy8gaXMgMTU2cHggaW4gdGhlIDQwNHB4IGNhcmQsIGFuZCBjcm9wcyB0aGUgZnJhbWUgdG8gZmlsbCBpdC4gVGhlIHJlYWRpbmVzcyBwaWN0dXJlXG4gIC8vIGlzIGF1dGhvcmVkIGF0IDgwOHgzMTIsIHNvIHRoYXQgdmFyaWFudCBpcyB1bmNoYW5nZWQuXG4gICZfX3ByZXZpZXctcGhvdG8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBhc3BlY3QtcmF0aW86IDgwOCAvIDMxMjtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxuXG4gICZfX3ByZXZpZXctaWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNDYsIDEyNSwgNTAsIDAuMzUpO1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgxKTtcbiAgICB9XG4gIH1cblxuICAmX19wcmV2aWV3LWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweCAxMnB4O1xuICB9XG5cbiAgJl9fcHJldmlldy1uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzEyMGQxYztcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgfVxuXG4gIC8vIFBsYWluIGRlc2NyaXB0aW9uIHVuZGVyIHRoZSBuYW1lLCBmb3IgYXNrcyB3aG9zZSBjYXRlZ29yeSBpcyBwcm9zZSByYXRoZXIgdGhhbiBhIHRhZy5cbiAgJl9fcHJldmlldy1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX19wcmV2aWV3LXRhZ3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX3ByZXZpZXctdGFnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cbiAgfVxuXG4gICZfX3ByZXZpZXctdGFnLWljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgIC8vIFJhc3RlciB2YXJpYW50ICh0aGUgcHJhY3RpdGlvbmVyLXRpZXIgYmFkZ2UpIC0gc2l6ZWQgaGVyZSBzbyBhIGdsb2JhbCBgaW1nYFxuICAgIC8vIHJ1bGUgaW4gZWl0aGVyIGJ1bmRsZSBjYW5ub3Qgc3RyZXRjaCBpdC5cbiAgICAmLS1pbWcge1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh3aWRlLWRvd24pIHtcbiAgLnRvZGF5LWFza3Mge1xuICAgICZfX2RldGFpbCB7XG4gICAgICBnYXA6IDI0cHg7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHRhYmxldCkge1xuICAudG9kYXktYXNrcyB7XG4gICAgJl9fYm9keSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgZmxleDogbm9uZTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlsIHtcbiAgICAgIGZsZXg6IG5vbmU7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBwYWRkaW5nOiAyNHB4IDIwcHg7XG4gICAgICBnYXA6IDIwcHg7XG4gICAgfVxuXG4gICAgLy8gU3RhY2tlZCBsYXlvdXQ6IGRyb3AgdGhlIGRlc2t0b3AgZmxleC1iYXNpcyBzbyBpdCBpcyBub3QgdHJlYXRlZCBhcyBoZWlnaHQuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgIGZsZXg6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAmX19wcmV2aWV3IHtcbiAgICAgIGZsZXg6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogNDA0cHg7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC50b2RheS1hc2tzIHtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMDtcblxuICAgICZfX2hlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgfVxuXG4gICAgLy8gT25jZSB0aGUgYm9keSBzdGFja3MsIHRoZSBhY3Rpb24gY29sdW1uIGlzIHRoZSBjYXJkJ3Mgb25seSBsZWZ0LWFsaWduZWRcbiAgICAvLyBibG9jaywgc28gZXllYnJvdywgdGl0bGUsIGFuZCBDVEEgYXJlIGNlbnRlcmVkIHRvIG1hdGNoIHRoZSBwYW5lbCBhYm92ZVxuICAgIC8vIGFuZCB0aGUgcHJldmlldyBiZWxvdy4gRGVza3RvcCBrZWVwcyB0aGUgZmxleC1zdGFydCBjb2x1bW4uXG4gICAgJl9fYWN0aW9uLFxuICAgICZfX2FjdGlvbi1jb3B5IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fYWxlcnQtcm93IHtcbiAgICAgIHBhZGRpbmc6IDAgMTZweCAxMnB4IDhweDtcbiAgICB9XG5cbiAgICAmX19hbGVydC10ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAudG9kYXktYXNrcyB7XG4gICAgcGFkZGluZzogMTBweCAxMnB4IDA7XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIH1cblxuICAgIC8vIFJlbGVhc2UgdGhlIDI2NHB4IGZsb29yIG5vdyB0aGF0IHRoZSBib2R5IGlzIHN0YWNrZWQuXG4gICAgJl9fYm9keSB7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cblxuICAgICZfX2RldGFpbCB7XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgZ2FwOiAxNHB4O1xuICAgIH1cblxuICAgICZfX2FjdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb24tY29weSB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIH1cblxuICAgICZfX3ByZXZpZXcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE15IFNjaGVkdWxlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiRteS1zY2hlZHVsZS10aXRsZTogIzFhMWExYTtcbiRteS1zY2hlZHVsZS1tdXRlZDogIzhhOGE4YTtcbiRteS1zY2hlZHVsZS1ib3JkZXI6ICNlOGU4ZTg7XG4kbXktc2NoZWR1bGUtYWNjZW50OiAjNWIzYTllO1xuJG15LXNjaGVkdWxlLWFjY2VudC1ib3JkZXI6ICM4YTcwZDY7XG4kbXktc2NoZWR1bGUtY29udHJvbC1iZzogI2YzZjNmNDtcbiRteS1zY2hlZHVsZS1jb250cm9sLWJvcmRlcjogI2Q4ZDhkODtcblxuLmF0aGxldGUtaG9tZS1yb3cge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAxNnB4IDAgMzJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDIwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMTQ4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gU2hyaW5rYWJsZTogdGhlIHJvdyBuZWVkcyAxMTQ4cHggKDU4OCArIDQ5MiArIDIwIGdhcCArIDQ4IHBhZGRpbmcpIGFuZCB0aGVcbiAgLy8gc2lkZWJhciBlYXRzIGFub3RoZXIgMjQwcHgsIHNvIGZsZXgtc2hyaW5rOiAwIG92ZXJmbG93ZWQgYmV0d2VlbiB0aGVcbiAgLy8gY29sbGFwc2UgYnJlYWtwb2ludCBhbmQgfjEzODhweC5cbiAgJl9fY2FsZW5kYXIge1xuICAgIGZsZXg6IDEgMSA1ODhweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9faW5zaWdodHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgZmxleDogMSAxIDQ5MnB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAubXktc2NoZWR1bGUtd3JhcCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIHJvdydzIGNvbHVtbnMgb3duIHRoZSB3aWR0aCBoZXJlICg1ODgvNDkyIG9uIGRlc2t0b3AsIDEwMCUgb25jZVxuICAvLyBzdGFja2VkKSwgc28gdGhlIGNhcmRzIG11c3Qgbm90IHJlLWNhcCB0aGVtc2VsdmVzLlxuICAubXktc2NoZWR1bGUge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC5wcm9ncmVzcy1pbnNpZ2h0cyB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5wcm9ncmVzcy1pbnNpZ2h0c19fcGFuZWwge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC51cGNvbWluZy1zZXNzaW9uIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLnVwY29taW5nLXNlc3Npb25fX3BhbmVsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAuYm9keW1hcC1jYXJkIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmJvZHltYXAtY2FyZF9fcGFuZWwge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHRhYmxldCkge1xuICAuYXRobGV0ZS1ob21lLXJvdyB7XG4gICAgJl9faW5uZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAmX19jYWxlbmRhcixcbiAgICAmX19pbnNpZ2h0cyB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVsZWFzZSB0aGUgZGVza3RvcCBoZWlnaHQgbG9jazsgd2lkdGggaXMgYWxyZWFkeSBmbHVpZC5cbiAgLm15LXNjaGVkdWxlIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAuYXRobGV0ZS1ob21lLXJvdyB7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDI4cHg7XG5cbiAgICAvLyBUaGUgcm93IG93bnMgdGhlIGd1dHRlciBvbmNlIHN0YWNrZWQuIEtlZXBpbmcgdGhlIGlubmVyIHBhZGRpbmcgaGVyZVxuICAgIC8vIHdvdWxkIGluc2V0IE15IFNjaGVkdWxlIGFuZCBQcm9ncmVzcyBJbnNpZ2h0cyBhbiBleHRyYSAyNHB4IHBlciBzaWRlLFxuICAgIC8vIGxlYXZpbmcgdGhlbSBuYXJyb3dlciB0aGFuIGV2ZXJ5IG90aGVyIGNhcmQgb24gdGhlIHBhZ2UuXG4gICAgJl9faW5uZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAuYXRobGV0ZS1ob21lLXJvdyB7XG4gICAgcGFkZGluZzogMTBweCAxMnB4IDI0cHg7XG4gIH1cbn1cblxuLm15LXNjaGVkdWxlLXdyYXAge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiA4cHggMjRweCAzMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXktc2NoZWR1bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDI0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBoZWlnaHQ6IDUyMHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAvLyBOZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlIH1cbiAgLy8gRG8gbm90IHNldCBoZWlnaHQ6IGF1dG8gaGVyZSDigJQgaXQgb3V0LXNwZWNpZmllcyBjb21wb25lbnQgaGVpZ2h0IGxvY2tzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gIH1cblxuICAmX19lZGl0LWxpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjg1O1xuICAgIH1cbiAgfVxuXG4gICZfX2VkaXQtaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIH1cblxuICAmX19jb250cm9scyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4IDhweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuXG4gICAgJi0tbW9udGgge1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgfVxuXG4gICZfX3dlZWssXG4gICZfX21vbnRoIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgJl9fdG9kYXktYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRteS1zY2hlZHVsZS1jb250cm9sLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJG15LXNjaGVkdWxlLWNvbnRyb2wtYmc7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogZGFya2VuKCRteS1zY2hlZHVsZS1jb250cm9sLWJnLCAzJSk7XG4gICAgfVxuICB9XG5cbiAgJl9fbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogMzZweDtcblxuICAgICYtLWNvbXBhY3Qge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICB9XG5cbiAgJl9fbmF2LWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbWluLWhlaWdodDogMzJweDtcbiAgICBtYXgtaGVpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAuZmEge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJG15LXNjaGVkdWxlLWNvbnRyb2wtYmc7XG4gICAgfVxuICB9XG5cbiAgJl9fcmFuZ2Uge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19yYW5nZS1lbXBoYXNpcyB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gICZfX3JhbmdlLWljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJl9fdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMzNweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGdhcDogMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlN2U3ZTc7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNmY2ZjY7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3RvZ2dsZS1idG4ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtbXV0ZWQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX21vbnRoLW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAmX19tb250aC1uYW1lIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICB9XG5cbiAgJl9fZGF5LXN0cmlwIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKTtcbiAgICBnYXA6IDRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDkwcHg7XG4gICAgbWluLWhlaWdodDogOTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAmX19kYXktY2VsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogOTBweDtcbiAgICBtaW4taGVpZ2h0OiA5MHB4O1xuICAgIG1heC1oZWlnaHQ6IDkwcHg7XG4gICAgcGFkZGluZzogMTJweCAycHggMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5pcy1zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGJvcmRlci1jb2xvcjogJG15LXNjaGVkdWxlLWFjY2VudC1ib3JkZXI7XG4gICAgfVxuXG4gICAgJjpob3Zlcjpub3QoLmlzLXNlbGVjdGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICAgIH1cbiAgfVxuXG4gICZfX2RheS1uYW1lIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICB9XG5cbiAgJl9fZGF5LW51bWJlciB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG5cbiAgJl9fZGF5LWRvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBtaW4taGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICB9XG5cbiAgJl9fZG90IHtcbiAgICB3aWR0aDogNXB4O1xuICAgIGhlaWdodDogNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkbXktc2NoZWR1bGUtYWNjZW50O1xuICB9XG5cbiAgJl9fZGF5LXN1bW1hcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtbXV0ZWQ7XG4gIH1cblxuICAmX19kYXktc3VtbWFyeS1kYXRlIHtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cblxuICAmX19kYXktc3VtbWFyeS13ZWVrZGF5IHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgJl9fZGF5LXN1bW1hcnktcmVzdCB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuXG4gICZfX2RheS1zdW1tYXJ5LW1ldGEge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS1tdXRlZDtcbiAgfVxuXG4gICZfX3RyYWluaW5ncyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgfVxuXG4gICZfX3RyYWluaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRteS1zY2hlZHVsZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRteS1zY2hlZHVsZS1ib3JkZXIsIDglKTtcbiAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgfVxuICB9XG5cbiAgJl9fdHJhaW5pbmctdGh1bWIge1xuICAgIGZsZXg6IDAgMCA0OHB4O1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJG15LXNjaGVkdWxlLWNvbnRyb2wtYmc7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9ubHkgcmVuZGVyZWQgb25jZSB0aGVyZSBpcyBhIHBpY3R1cmUsIHNvIHRoZSB0aWxlIG5ldmVyIGhvbGRzIGFuIGltYWdlIHdpdGggbm8gc3JjLlxuICAmX190cmFpbmluZy10aHVtYi1pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxuXG4gICZfX3RyYWluaW5nLXRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX190cmFpbmluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgfVxuXG4gICZfX3RyYWluaW5nLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzNnB4IDE2cHggMjBweDtcblxuICAgICYtLW1vZGFsIHtcbiAgICAgIHBhZGRpbmc6IDI4cHggMTJweDtcbiAgICB9XG4gIH1cblxuICAmX19lbXB0eS1tZXNzYWdlIHtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICB9XG5cbiAgJl9fZW1wdHktY3RhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogOHB4IDE2cHggOHB4IDEycHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGJsdWUsIDYlKTtcbiAgICB9XG4gIH1cblxuICAmX19lbXB0eS1jdGEtaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgLy8gSWNvbiBhc3NldCBpcyBwdXJwbGU7IGludmVydCB0byB3aGl0ZSBvbiB0aGUgZmlsbGVkIENUQVxuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7XG4gIH1cblxuICAmX19lbXB0eS1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAmX19mb290ZXItYnRuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDEycHggMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX21vbnRoLWxhYmVscyxcbiAgJl9fbW9udGgtZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cblxuICAmX19tb250aC1sYWJlbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2Y4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX21vbnRoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS1tdXRlZDtcbiAgfVxuXG4gICZfX21vbnRoLWNlbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDU2cHg7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBwYWRkaW5nOiA4cHggNHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYuaXMtZW1wdHkge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5pcy1zZWxlY3RlZCAubXktc2NoZWR1bGVfX21vbnRoLWRheS1udW1iZXIsXG4gICAgJi5pcy10b2RheSAubXktc2NoZWR1bGVfX21vbnRoLWRheS1udW1iZXIge1xuICAgICAgYmFja2dyb3VuZDogJG15LXNjaGVkdWxlLWNvbnRyb2wtYmc7XG4gICAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICAgIH1cblxuICAgICYuaXMtc2VsZWN0ZWQgLm15LXNjaGVkdWxlX19tb250aC1kYXktbnVtYmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgICAgY29sb3I6ICRteS1zY2hlZHVsZS1hY2NlbnQ7XG4gICAgfVxuICB9XG5cbiAgJl9fbW9udGgtZGF5LW51bWJlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gIH1cblxuICAmX19tb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDEyMDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gIH1cblxuICAmX19tb2RhbC1iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIH1cblxuICAmX19tb2RhbC1wYW5lbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiA2NDhweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0OHB4KTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwYWRkaW5nOiAyMHB4IDIycHggMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkMWQxO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgNHB4IDZweCAtMnB4IHJnYmEoMTYsIDI0LCA0MCwgMC4wMyksXG4gICAgICAwIDEycHggMTZweCAtNHB4IHJnYmEoMTYsIDI0LCA0MCwgMC4wOCk7XG4gIH1cblxuICAmX19tb2RhbC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbXktc2NoZWR1bGUtYm9yZGVyO1xuICB9XG5cbiAgJl9fbW9kYWwtdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICB9XG5cbiAgJl9fbW9kYWwtY2xvc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgbWF4LWhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS1tdXRlZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRteS1zY2hlZHVsZS1jb250cm9sLWJnO1xuICAgICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLm15LXNjaGVkdWxlLXdyYXAge1xuICAgIHBhZGRpbmc6IDhweCAxNnB4IDI4cHg7XG4gIH1cblxuICAubXktc2NoZWR1bGUge1xuICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICAvLyBXcmFwcGluZyBpcyBwb2ludGxlc3Mgd2hpbGUgdGhlIHJvdyBpcyBmcm96ZW4gYXQgMzZweDogdGhlIG92ZXJmbG93IGp1c3RcbiAgICAvLyBlc2NhcGVzIHRoZSBjYXJkLiBMZXQgaXQgZ3JvdyBpbnN0ZWFkLlxuICAgICZfX2NvbnRyb2xzIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIH1cblxuICAgICZfX2RheS1uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG5cbiAgICAmX19kYXktc3RyaXAge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAmX19kYXktY2VsbCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4taGVpZ2h0OiA3MnB4O1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDEwcHggMXB4IDhweDtcbiAgICB9XG5cbiAgICAmX190cmFpbmluZy10aHVtYiB7XG4gICAgICBmbGV4LWJhc2lzOiA0MHB4O1xuICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLy8gQW5jaG9ycyB0aGUgdmlldyB0b2dnbGUsIHdoaWNoIGlzIGxpZnRlZCBvdXQgb2YgdGhlIGNyYW1wZWQgY29udHJvbHMgcm93LlxuICAubXktc2NoZWR1bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGdhcDogMTZweDtcblxuICAgIC8vIFRpdGxlIGFuZCBFZGl0IFNjaGVkdWxlIHN0YWNrIG9uIHRoZSBsZWZ0IHNvIG5laXRoZXIgcnVucyB1bmRlciB0aGVcbiAgICAvLyB0b2dnbGUgbm93IHBpbm5lZCB0byB0aGUgY2FyZCdzIHRvcC1yaWdodCBjb3JuZXIuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgcGFkZGluZy1yaWdodDogMTA4cHg7XG4gICAgfVxuXG4gICAgJl9fY29udHJvbHMge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC8vIEJvdGggdmlldyB2YXJpYW50cyByZW5kZXIgYSB0b2dnbGUsIGJ1dCBvbmx5IG9uZSBhdCBhIHRpbWUgKG5nLWlmKSwgc28gYVxuICAgIC8vIHNpbmdsZSBhYnNvbHV0ZSBzbG90IHNlcnZlcyB3ZWVrIGFuZCBtb250aCB2aWV3IGFsaWtlLlxuICAgICZfX3RvZ2dsZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEycHg7XG4gICAgICByaWdodDogMTJweDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogMjhweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgcGFkZGluZzogM3B4O1xuICAgIH1cblxuICAgIC8vIFNpemVkIGJ5IHRoZWlyIGxhYmVsLCBub3Qgc3RyZXRjaGVkOiB0aGUgY29udGFpbmVyIGlzIGF1dG8td2lkdGggbm93LlxuICAgICZfX3RvZ2dsZS1idG4ge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG5cbiAgICAmX19uYXYge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgcm93LWdhcDogNnB4O1xuICAgIH1cblxuICAgICZfX3JhbmdlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgJl9fbW9udGgtbmF2IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHJvdy1nYXA6IDZweDtcbiAgICB9XG5cbiAgICAmX19kYXktc3RyaXAge1xuICAgICAgZ2FwOiAycHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIH1cblxuICAgICZfX2RheS1jZWxsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgICBwYWRkaW5nOiA4cHggMCA2cHg7XG4gICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAmX19kYXktbmFtZSB7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fZGF5LW51bWJlciB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuXG4gICAgLy8gNyBjb2x1bW5zIGhhdmUgdG8gZml0IH4zMjVweCBvZiBpbm5lciB3aWR0aFxuICAgICZfX21vbnRoLWNlbGwge1xuICAgICAgZ2FwOiAycHg7XG4gICAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgfVxuXG4gICAgJl9fbW9udGgtZGF5LW51bWJlciB7XG4gICAgICB3aWR0aDogMjZweDtcbiAgICAgIGhlaWdodDogMjZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG5cbiAgICAmX19tb250aC1sYWJlbCB7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fdHJhaW5pbmctdGh1bWIge1xuICAgICAgZmxleC1iYXNpczogMzZweDtcbiAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyogU2hhcmVkIGZpcnN0LXBhaW50IHBsYWNlaG9sZGVycyBmb3IgaG9tZSBkYXNoYm9hcmQgY2FyZHMuIFB1bHNlLCBkb24ndFxuICAgc2hvdyBlbXB0eS1zdGF0ZSBjb3B5IOKAlCB0aGF0IHdvdWxkIHJlYWQgYXMgXCJub3RoaW5nIHNjaGVkdWxlZFwiIHRoZW4ganVtcC4gKi9cbkBrZXlmcmFtZXMgaG9tZS1za2VsZXRvbi1wdWxzZSB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC40NTtcbiAgfVxufVxuXG4uaG9tZS1za2VsZXRvbi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjZWNlY2VmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGFuaW1hdGlvbjogaG9tZS1za2VsZXRvbi1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuXG4gICYtLWJhZGdlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgJi0tbGluZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gIH1cblxuICAmLS1saW5lLXNob3J0IHtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDk2cHg7XG4gIH1cblxuICAmLS1wcmV2aWV3IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDE0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICYtLXRodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJi0tZGF5IHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJi0tY2FyZCB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cbn1cblxuLnRvZGF5LWFza3NfX3NrZWxldG9uLXJvdyxcbi5teS1zY2hlZHVsZV9fc2tlbGV0b24tdHJhaW5pbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE2cHg7XG4gIHBhZGRpbmc6IDEycHggMjBweDtcbn1cblxuLnRvZGF5LWFza3NfX3NrZWxldG9uLXByZXZpZXcge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ubXktc2NoZWR1bGVfX3NrZWxldG9uLWRheXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbn1cblxuLm15LXNjaGVkdWxlX19za2VsZXRvbi10cmFpbmluZyB7XG4gIHBhZGRpbmc6IDEycHggMDtcbn1cblxuLnByb2dyZXNzLWluc2lnaHRzX19jYXJkLS1za2VsZXRvbiAuaG9tZS1za2VsZXRvbi1ibG9jay0tbGluZSB7XG4gIG1heC13aWR0aDogODhweDtcbiAgaGVpZ2h0OiAyOHB4O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBVcGNvbWluZyBzZXNzaW9uIChhdGhsZXRlIGhvbWUg4oCUIHJpZ2h0IGNvbHVtbiB1bmRlciBQcm9ncmVzcyBJbnNpZ2h0cylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJHVwY29taW5nLWNhcmQtYm9yZGVyOiAkYmxhY2stMjAwO1xuJHVwY29taW5nLWxhYmVsOiAjNGY0ZjRmO1xuJHVwY29taW5nLXZhbHVlOiAjMWExYTFhO1xuJHVwY29taW5nLXByaW1hcnk6ICRibHVlO1xuJHVwY29taW5nLWRhbmdlcjogI2U4NTAzYTtcbiR1cGNvbWluZy1tZW51LWJvcmRlcjogI2UwZTBlMDtcblxuLnVwY29taW5nLXNlc3Npb24ge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0OTJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAvLyBOZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlIH1cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmX19wYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDkycHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR1cGNvbWluZy1jYXJkLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICYtLWJvb2tlZC1jb21wYWN0IHtcbiAgICAgIGhlaWdodDogMTcwcHg7XG4gICAgICBtaW4taGVpZ2h0OiAxNzBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDE3MHB4O1xuICAgICAgLy8gRG8gbm90IGNsaXAgdGhlIGtlYmFiIG1lbnU7IGl0IGhhbmdzIGJlbG93IHRoZSBmaXhlZC1oZWlnaHQgY2FyZC5cbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAvLyBDZW50ZXIgdGhlIGFjY2VudCBibG9jayBpbiB0aGUgYXJlYSBiZWxvdyB0aGUgdGl0bGUgc28gdGhlIGdhcCBmcm9tXG4gICAgICAvLyB0aGUgdGl0bGUgYmFzZWxpbmUgdG8gdGhlIHRvcCBvZiB0aGUgYmFyIG1hdGNoZXMgdGhlIGdhcCBmcm9tIHRoZSBiYXJcbiAgICAgIC8vIHRvIHRoZSBjYXJkIGJvdHRvbS5cbiAgICAgIC51cGNvbWluZy1zZXNzaW9uX19ib2R5LS1uby1qb2luIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC51cGNvbWluZy1zZXNzaW9uX19zZXNzaW9uLFxuICAgICAgLnVwY29taW5nLXNlc3Npb25fX21lbnUge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLnVwY29taW5nLXNlc3Npb25fX21lbnUtbGlzdCB7XG4gICAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiAxNHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHVwY29taW5nLXByaW1hcnk7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgfVxuICB9XG5cbiAgJl9fbGluay1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAmX19za2VsZXRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAuaG9tZS1za2VsZXRvbi1ibG9jay0tbGluZSB7XG4gICAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMjRweCAyMHB4IDI4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAmX19lbXB0eS10ZXh0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiAkdXBjb21pbmctbGFiZWw7XG4gIH1cblxuICAmX19zY2hlZHVsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWF4LWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHVwY29taW5nLXByaW1hcnk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkdXBjb21pbmctcHJpbWFyeTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICB9XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMjBweCAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmLS1uby1qb2luIHtcbiAgICAgIGdhcDogMDtcbiAgICB9XG4gIH1cblxuICAmX19zZXNzaW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gRml4ZWQgaGVpZ2h0IHBlciBkZXNpZ247IHNlc3Npb24gdGV4dCBpcyB2ZXJ0aWNhbGx5IGNlbnRlcmVkIGFnYWluc3QgdGhlIGJhci5cbiAgJl9fYWNjZW50IHtcbiAgICBmbGV4OiAwIDAgNHB4O1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiA4NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAkdXBjb21pbmctcHJpbWFyeTtcbiAgfVxuXG4gICZfX2luZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAmX19oZWFkaW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG4gICAgLy8gUmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGtlYmFiIHdpdGhvdXQgZ3Jvd2luZyB0aGUgcm93IHRhbGxlciB0aGFuIHRoZSB0aXRsZS5cbiAgICBwYWRkaW5nLXJpZ2h0OiAzNnB4O1xuICB9XG5cbiAgJl9fbmFtZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19kZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX19kZXRhaWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX2RldGFpbC1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWluLXdpZHRoOiAxNnB4O1xuICAgIG1heC13aWR0aDogMTZweDtcbiAgICBtaW4taGVpZ2h0OiAxNnB4O1xuICAgIG1heC1oZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX2RldGFpbC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICR1cGNvbWluZy12YWx1ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fZGV0YWlsLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogJHVwY29taW5nLXZhbHVlO1xuICB9XG5cbiAgJl9fZGl2aWRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjay0zMDA7XG4gIH1cblxuICAmX19qb2luIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHVwY29taW5nLXByaW1hcnk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC45MjtcbiAgICB9XG4gIH1cblxuICAmX19tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMnB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fa2ViYWIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgbWluLXdpZHRoOiAyNHB4O1xuICAgIG1heC13aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWluLWhlaWdodDogMjRweDtcbiAgICBtYXgtaGVpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUtbGlzdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgNHB4KTtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkdXBjb21pbmctbWVudS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIC8vIEl0ZW1zIHJ1biBlZGdlIHRvIGVkZ2Ugc28gdGhlIGRpdmlkZXIgc3BhbnMgdGhlIGZ1bGwgd2lkdGg7IGNsaXAgdGhlbVxuICAgIC8vIGJhY2sgdG8gdGhlIHJhZGl1cyBzbyBob3ZlciBkb2VzIG5vdCBzcXVhcmUgb2ZmIHRoZSBjb3JuZXJzLlxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuXG4gICAgJi5oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE0cHggMThweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkdXBjb21pbmctdmFsdWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJiArICYge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR1cGNvbWluZy1tZW51LWJvcmRlcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuICAgIH1cblxuICAgICYtLWRhbmdlciB7XG4gICAgICBjb2xvcjogJHVwY29taW5nLWRhbmdlcjtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLnVwY29taW5nLXNlc3Npb24ge1xuICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICZfX3BhbmVsIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTRweCAxNnB4IDA7XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMTZweDtcbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMjRweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAudXBjb21pbmctc2Vzc2lvbiB7XG4gICAgJl9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDEycHggMTJweCAwO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDEycHggMTJweCAxNHB4O1xuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDE2cHggMTJweCAyMHB4O1xuICAgIH1cblxuICAgICZfX2RldGFpbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICByb3ctZ2FwOiAycHg7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlsLXZhbHVlIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgJl9fbWVudS1saXN0IHtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgIG1heC13aWR0aDogODB2dztcbiAgICB9XG5cbiAgICAmX19zY2hlZHVsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQm9keU1BUCBjYXJkIChhdGhsZXRlIGhvbWUg4oCUIGJldHdlZW4gVXBjb21pbmcgU2Vzc2lvbiBhbmQgUHJvZ3Jlc3MgSW5zaWdodHMpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiRib2R5bWFwLWNhcmQtYm9yZGVyOiAkYmxhY2stMjAwO1xuJGJvZHltYXAtbGFiZWw6ICM0ZjRmNGY7XG4kYm9keW1hcC1tdXRlZDogIzZkNmQ2ZDtcbiRib2R5bWFwLXByaW1hcnk6ICRibHVlO1xuJGJvZHltYXAtcG9vcjogI0YwNDQzODtcbiRib2R5bWFwLW1vZGVyYXRlOiAjRTVBNjMzO1xuJGJvZHltYXAtZ29vZDogIzEyQjc2QTtcbiRib2R5bWFwLXJpbmctdHJhY2s6ICNlOGU4ZTg7XG5cbi5ib2R5bWFwLWNhcmQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0OTJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAvLyBOZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlIH1cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmX19wYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDkycHg7XG4gICAgaGVpZ2h0OiAzMTBweDtcbiAgICBtaW4taGVpZ2h0OiAzMTBweDtcbiAgICBtYXgtaGVpZ2h0OiAzMTBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvZHltYXAtY2FyZC1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19za2VsZXRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAuaG9tZS1za2VsZXRvbi1ibG9jay0tbGluZSB7XG4gICAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAyOHB4IDI0cHggMzJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2VtcHR5LXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiAkYm9keW1hcC1sYWJlbDtcbiAgfVxuXG4gICZfX2VtcHR5LWRlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiAzNDBweDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkYm9keW1hcC1tdXRlZDtcbiAgfVxuXG4gICZfX3N0YXJ0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvZHltYXAtcHJpbWFyeTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRib2R5bWFwLXByaW1hcnk7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjk7XG4gICAgfVxuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDEycHggMjBweCAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgLy8gUmluZyBzdGF5cyBsZWZ0OyBsYXJnZXIgZ2FwIGtlZXBzIHRoZSBsZWdlbmQgYXQgaXRzIGN1cnJlbnQgKGNlbnRlcmVkKSBzcG90LlxuICAgIGdhcDogNjVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3Jpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgaGVpZ2h0OiAxODBweDtcbiAgfVxuXG4gICZfX3Jpbmctc3ZnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgfVxuXG4gICZfX3JpbmctdHJhY2sge1xuICAgIHN0cm9rZTogJGJvZHltYXAtcmluZy10cmFjaztcbiAgfVxuXG4gICZfX3JpbmctcHJvZ3Jlc3Mge1xuICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuMzVzIGVhc2U7XG4gIH1cblxuICAmX19yaW5nLWxhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX3JpbmctdG90YWwge1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNmQ2ZDZkO1xuICAgIC8vIEV4dHJhIHNwYWNlIGFib3ZlIHRoZSBsYXJnZSBudW1lcmFsIOKAlCBOdWRpc3RhIGRpZ2l0cyBzaXQgaGlnaCBpbiB0aGVcbiAgICAvLyBlbSBib3gsIHNvIGVxdWFsIENTUyBnYXBzIHN0aWxsIGxvb2sgdGlnaHRlciBhYm92ZSB0aGUgc2NvcmUuXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gICZfX3Jpbmctc2NvcmUge1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAzNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gICZfX3JpbmctYmFuZCB7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogIzZkNmQ2ZDtcbiAgfVxuXG4gICZfX2xlZ2VuZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2xlZ2VuZC1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fbGVnZW5kLWRvdCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICYtLXBvb3Ige1xuICAgICAgYmFja2dyb3VuZDogJGJvZHltYXAtcG9vcjtcbiAgICB9XG5cbiAgICAmLS1tb2RlcmF0ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYm9keW1hcC1tb2RlcmF0ZTtcbiAgICB9XG5cbiAgICAmLS1nb29kIHtcbiAgICAgIGJhY2tncm91bmQ6ICRib2R5bWFwLWdvb2Q7XG4gICAgfVxuICB9XG5cbiAgJl9fbGVnZW5kLW5hbWUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi13aWR0aDogNzJweDtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRib2R5bWFwLW11dGVkO1xuICB9XG5cbiAgJl9fbGVnZW5kLXJhbmdlIHtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2hpbnQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRib2R5bWFwLW11dGVkO1xuICB9XG5cbiAgJl9fdXBkYXRlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYm9keW1hcC1wcmltYXJ5O1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5ib2R5bWFwLWNhcmQge1xuICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICZfX3BhbmVsIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTRweCAxNnB4IDA7XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTRweDtcbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICBwYWRkaW5nOiAyNHB4IDE2cHggMjhweDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGdhcDogMTZweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2xlZ2VuZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX3Jpbmcge1xuICAgICAgd2lkdGg6IDE2MHB4O1xuICAgICAgaGVpZ2h0OiAxNjBweDtcbiAgICB9XG5cbiAgICAmX19yaW5nLXNjb3JlIHtcbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAuYm9keW1hcC1jYXJkIHtcbiAgICAmX19oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTJweCAxMnB4IDA7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgICZfX2JvZHkge1xuICAgICAgcGFkZGluZzogMTBweCAxMnB4IDEycHg7XG4gICAgfVxuXG4gICAgJl9fZW1wdHkge1xuICAgICAgcGFkZGluZzogMjBweCAxMnB4IDI0cHg7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgZ2FwOiAxMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3VwZGF0ZSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19zdGFydCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qIFNjaGVkdWxlIC8gcmVzY2hlZHVsZSAvIGNhbmNlbCBtb2RhbHMgZm9yIHRoZSB1cGNvbWluZyBzZXNzaW9uIGNhcmQgKi9cblxuLy8gU2NoZWR1bGUgYW5kIHJlc2NoZWR1bGUgc2hhcmUgdGhpcyBibG9jayAoYW5kIHRlbXBsYXRlcy9zZXNzaW9uX3Nsb3RfcGlja2VyLmh0bWwpLlxuLy8gUmVzY2hlZHVsZSBwaWNrZXIsIHBvcnRlZCBmcm9tIHRoZSBhcHAncyByZXNjaGVkdWxlLXNlc3Npb24tbW9kYWwgcGx1cyBpdHNcbi8vIGRhdGUtdGltZS1waWNrZXIgLyBjYWxlbmRhci1ncmlkIChUYWlsd2luZCB0aGVyZSwgc28gdGhlc2UgYXJlIHRoZSBkZS1AYXBwbHknZFxuLy8gdG9rZW4gdmFsdWVzKS4gTGlrZSAudXBjb21pbmctY2FuY2VsIGl0IGlzIGEgY3VzdG9tIHJvb3QgcmF0aGVyIHRoYW5cbi8vIC5tb2RhbC1jb250YWluZXIsIHNvIG5vbmUgb2YgdGhlIGxlZ2FjeSBtb2RhbCBjaHJvbWUgYXBwbGllcy5cbiR1cGNvbWluZy1yZXNjaGVkdWxlLXdpZHRoOiAgICAgICAgICAgIDY0MHB4O1xuJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyOiAgICAgICAgICAgMjRweDtcbiR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZTogICAgIDIwcHg7XG4kdXBjb21pbmctcmVzY2hlZHVsZS1jYWwtd2lkdGg6ICAgICAgICAyODBweDsgLy8gNyB4IDM0cHggZGF5IGNlbGxzICsgMiB4IDIwcHggcGFuZWwgcGFkZGluZ1xuLy8gVGhlIGFwcCdzIHBpY2tlciBzdGFja3MgYXQgNjQwcHguIFRoYXQgaXMgYSBwcm9wZXJ0eSBvZiB0aGlzIHR3by1wYW5lbCBsYXlvdXQsXG4vLyBub3QgYSBwcm9qZWN0IHRpZXIsIHNvIGl0IGlzIGEgYmFyZSBxdWVyeSByYXRoZXIgdGhhbiByZXNwb25kKCkgLSB0aGUgcmVwbydzXG4vLyB0aWVycyBhcmUgJGJwLW1vYmlsZSA3NjhweCBhbmQgJGJwLXBob25lIDQ4MHB4LCBuZWl0aGVyIG9mIHdoaWNoIGlzIHRoaXMuXG4kdXBjb21pbmctcmVzY2hlZHVsZS1zdGFjazogICAgICAgICAgICA2NDBweDtcbiR1cGNvbWluZy1yZXNjaGVkdWxlLXZpZXdwb3J0LW1hcmdpbjogIDE2cHg7XG4kdXBjb21pbmctcmVzY2hlZHVsZS1wdXJwbGUtZGlzYWJsZWQ6ICAjYzNhZGYyO1xuJHVwY29taW5nLXJlc2NoZWR1bGUtZ2hvc3QtaG92ZXI6ICAgICAgI2ViZWJlYjtcblxuLy8gZm9udC1hd2Vzb21lJ3MgZmEtc3BpbiBydW5zIDAgLT4gMzU5ZGVnLCB3aGljaCBoaXRjaGVzIG9uY2UgcGVyIHJldm9sdXRpb24uXG4vLyBMb2NhbCBrZXlmcmFtZXMgc28gYm90aCBzcGlubmVycyB0dXJuIGNsZWFubHkuXG5Aa2V5ZnJhbWVzIHVwY29taW5nLXJlc2NoZWR1bGUtc3BpbiB7XG4gIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4udXBjb21pbmctcmVzY2hlZHVsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR1cGNvbWluZy1yZXNjaGVkdWxlLXdpZHRoO1xuICAvLyAubW9kYWwgaXMgYSBjb250ZW50LXNpemVkIGZsZXggaXRlbSBpbnNpZGUgLm1vZGFsLXZpZXcsIHNvIGEgcGVyY2VudGFnZVxuICAvLyBtYXgtd2lkdGggaGFzIG5vIGRlZmluaXRlIHBhcmVudCB3aWR0aCB0byByZXNvbHZlIGFnYWluc3QuXG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JHVwY29taW5nLXJlc2NoZWR1bGUtdmlld3BvcnQtbWFyZ2luICogMn0pO1xuICAvLyBUaGUgYXBwIHVzZXMgZHZoLiBUaGVyZSBpcyBubyBhdXRvcHJlZml4ZXIgaW4gdGhpcyBidWlsZCwgYW5kIGFuXG4gIC8vIHVuc3VwcG9ydGVkIHVuaXQgZHJvcHMgdGhlIHdob2xlIGRlY2xhcmF0aW9uIC0gd2hpY2ggd291bGQgbGVhdmUgdGhlIHBhbmVsXG4gIC8vIHdpdGggbm8gbWF4LWhlaWdodCBhdCBhbGwgLSBzbyB2aCBnb2VzIGZpcnN0IGFzIHRoZSBmYWxsYmFjay5cbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDQ4cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgxNiwgMjQsIDQwLCAwLjE4KTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2cHg7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMCA0MHB4IDAgMDsgLy8ga2VlcHMgdGhlIHRpdGxlIGNsZWFyIG9mIHRoZSBjbG9zZSBidXR0b25cbiAgICBwYWRkaW5nOiAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXIgJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyIDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAvLyBTY2hlZHVsZSBtb2RhbCBvbmx5OiB0aGUgcmVhZC1vbmx5IFwiTWVldGluZyBUeXBlIHwgUHJhY3RpdGlvbmVyXCIgcm93IHRoZVxuICAvLyBhcHAgc2hvd3MgdW5kZXIgdGhlIHRpdGxlIGluIG1lbWJlciBtb2RlLlxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcGFkZGluZzogMTZweCAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXIgMDtcbiAgfVxuXG4gICZfX21ldGEtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjE0cHg7XG4gIH1cblxuICAmX19tZXRhLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX21ldGEtdmFsdWUge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19tZXRhLXNlcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMjAwO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjBweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAvLyBXaXRob3V0IHRoaXMgdGhlIHNjcm9sbCBjb250YWluZXIgcmVmdXNlcyB0byBzaHJpbmsgYmVsb3cgaXRzIGNvbnRlbnQgaW5cbiAgICAvLyBhIGNvbHVtbiBmbGV4IHBhcmVudCBhbmQgdGhlIHJvb3QncyBtYXgtaGVpZ2h0IGRvZXMgbm90aGluZy5cbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogMjBweCAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXIgMDtcbiAgfVxuXG4gICZfX3N1bW1hcnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyMHB4O1xuICB9XG5cbiAgJl9fc3VtbWFyeS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fc3VtbWFyeS1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3N1bW1hcnktdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjE0cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19kaXZpZGVyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IDAgLSN7JHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyfTtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMjAwO1xuICB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNnB4O1xuICB9XG5cbiAgJl9fc2VjdGlvbi10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4xNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fdHoge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjE0cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX190ei1pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgfVxuXG4gICZfX3BpY2tlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gU3RhY2tlZC1vbmx5IHN1bW1hcnkgYmFyOyB0aGUgbWVkaWEgcXVlcnkgYmVsb3cgaXMgd2hhdCByZXZlYWxzIGl0LlxuICAmX19jb2xsYXBzZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE2cHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyLXBob25lIDEycHg7XG4gIH1cblxuICAmX19jb2xsYXBzZWQtZGF0ZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRncmF5LTkwMDtcbiAgfVxuXG4gICZfX2NvbGxhcHNlZC1jaGFuZ2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJl9fY2FsIHtcbiAgICBmbGV4OiAwIDAgJHVwY29taW5nLXJlc2NoZWR1bGUtY2FsLXdpZHRoO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweCAyMHB4O1xuICB9XG5cbiAgJl9fY2FsLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB9XG5cbiAgJl9fY2FsLW1vbnRoIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICB9XG5cbiAgJl9fY2FsLW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gICZfX2NhbC1hcnJvdyB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICB9XG5cbiAgICAvLyBidXR0b246ZGlzYWJsZWQgaW4gX2Jhc2Uuc2NzcyBzZXRzIGNvbG91ciwgYm9yZGVyLWNvbG91ciBhbmQgY3Vyc29yOyBhbGxcbiAgICAvLyB0aHJlZSBoYXZlIHRvIGJlIHJlc3RhdGVkIG9yIGl0cyBncmV5cyBsZWFrIHRocm91Z2guXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogJGJsYWNrLTMwMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cblxuICAmX19kb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmX19kb3ctY2VsbCB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGdyYXktNzAwO1xuICB9XG5cbiAgJl9fd2Vla3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gICZfX3dlZWsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAvLyBBIGZpeGVkIGhlaWdodCByYXRoZXIgdGhhbiB0aGUgYXBwJ3MgYXNwZWN0LXJhdGlvOiAxLzEgLSBsaWJzYXNzIHBhcnNlcyBhXG4gIC8vIGJhcmUgYDEgLyAxYCBpbiBhIHZhbHVlIGFzIGRpdmlzaW9uLCBhbmQgdGhlIHByb3BlcnR5IGhhcyBubyBmYWxsYmFjayBoZXJlLlxuICAmX19kYXkge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgLy8gYnV0dG9uICsgYnV0dG9uIGluIF9iYXNlLnNjc3Mgd291bGQgb3RoZXJ3aXNlIGluZGVudCBldmVyeSBjZWxsIGFmdGVyIHRoZVxuICAgIC8vIGZpcnN0IGluIGVhY2ggd2VlayByb3cuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5pcy1wYXN0IHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAvLyBQYXN0IGRheXMgY2FycnkgbmctZGlzYWJsZWQsIGFuZCBidXR0b246ZGlzYWJsZWQgaW4gX2Jhc2Uuc2NzcyAoMCwxLDEpXG4gICAgLy8gb3V0cmFua3MgdGhpcyBjbGFzcyAoMCwxLDApIC0gd2l0aG91dCByZXN0YXRpbmcgaXQgdGhlIGdyZXllZCBib3JkZXJcbiAgICAvLyBwYWludHMgb3ZlciB0aGUgdHJhbnNwYXJlbnQgb25lIGFuZCBib3hlcyBldmVyeSBwYXN0IGRhdGUuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLy8gRXZlcnkgYm9va2FibGUgZGF5IGdldHMgdGhlIHRpbnRlZCBzcXVhcmUuIERlY2xhcmVkIGJlZm9yZSBpcy1zZWxlY3RlZCBzb1xuICAgIC8vIHRoZSBzb2xpZCBwdXJwbGUgb2YgdGhlIHNlbGVjdGVkIGRheSB3aW5zIG9uIHRoZSBzYW1lIHNwZWNpZmljaXR5LlxuICAgICYuaXMtYXZhaWxhYmxlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS0yMDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICB9XG5cbiAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcblxuICAgICAgLnVwY29taW5nLXJlc2NoZWR1bGVfX2RheS1udW0ge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19kYXktbnVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuXG4gICAgJi5pcy1vdGhlciAgeyBjb2xvcjogJGJsYWNrLTMwMDsgfVxuICAgICYuaXMtcGFzdCAgIHsgY29sb3I6ICRibGFjay0zMDA7IH1cbiAgICAmLmlzLXdlZWtlbmQgeyBjb2xvcjogJG11dGVkOyB9XG4gICAgJi5pcy10b2RheSAge1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICAgIGNvbG9yOiAkbXV0ZWQ7XG4gICAgfVxuICB9XG5cbiAgJl9fdmRpdmlkZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JheS0yMDA7XG4gIH1cblxuICAmX19zbG90cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHggMjBweDtcbiAgfVxuXG4gICZfX3Nsb3RzLWRheSB7XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICB9XG5cbiAgJl9fc3Bpbm5lci13cmFwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMzJweCAwO1xuICB9XG5cbiAgJl9fc3Bpbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJvcmRlcjogMi41cHggc29saWQgJHB1cnBsZS0xMDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGFuaW1hdGlvbjogdXBjb21pbmctcmVzY2hlZHVsZS1zcGluIDAuNnMgbGluZWFyIGluZmluaXRlO1xuICB9XG5cbiAgJl9fc2xvdHMtZW1wdHkge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBwYWRkaW5nOiAyNHB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGdyYXktNTAwO1xuICB9XG5cbiAgJl9fc2xvdHMtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIG1heC1oZWlnaHQ6IDM0MHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICAmX19zbG90IHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC8vIFRoZSBsaXN0IGlzIGEgY29sdW1uIGZsZXggY29udGFpbmVyIHdpdGggYSBtYXgtaGVpZ2h0LCBzbyB3aXRob3V0IHRoaXNcbiAgICAvLyB0aGUgc2xvdHMgc2hyaW5rIHRvIGZpdCBpbnN0ZWFkIG9mIHNjcm9sbGluZyAtIGEgbG9uZyBkYXkncyBzbG90cyB3b3VsZFxuICAgIC8vIHJlbmRlciBhcyBzcXVhc2hlZCBzbGl2ZXJzLlxuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIC8vIGJ1dHRvbiArIGJ1dHRvbiBhZ2FpbiAtIHRoaXMgbGlzdCBpcyBhIHNpYmxpbmcgcnVuIG9mIGJ1dHRvbnMuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRncmF5LTkwMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5pcy1zZWxlY3RlZCB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fc2xvdC1jaGVjayB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAmX19lcnJvciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEycHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyIDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcmVkLTUwMDtcbiAgfVxuXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nOiAxMnB4ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlciAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXI7XG4gIH1cblxuICAmX19idG4ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gdW5zdHlsZS1idXR0b24gY2xlYXJzIG1pbi9tYXgtaGVpZ2h0IGJ1dCBub3QgaGVpZ2h0LCBhbmQgdGhlIGdsb2JhbCBidXR0b25cbiAgICAvLyBydWxlIGluIF9iYXNlLnNjc3MgcGlucyBoZWlnaHQ6IDUwcHguXG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIC8vIGJ1dHRvbiArIGJ1dHRvbiBpbiBfYmFzZS5zY3NzIGFkZHMgYSBsZWZ0IG1hcmdpbiB0aGF0IHdvdWxkIHN0YWNrIG9uIHRoZVxuICAgIC8vIGdhcCBhYm92ZS5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTFweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4zMnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmLS1naG9zdCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwMDtcbiAgICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuXG4gICAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVwY29taW5nLXJlc2NoZWR1bGUtZ2hvc3QtaG92ZXI7XG4gICAgICB9XG5cbiAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBib3JkZXItY29sb3I6ICRibGFjay0zMDA7XG4gICAgICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuXG4gICAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZS02MDA7XG4gICAgICB9XG5cbiAgICAgIC8vIFNhbWUgcmVzdGF0ZW1lbnQgYXMgdGhlIGNhbGVuZGFyIGFycm93czogX2Jhc2Uuc2NzcyB3b3VsZCBncmV5IHRoaXMgb3V0LlxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1cGNvbWluZy1yZXNjaGVkdWxlLXB1cnBsZS1kaXNhYmxlZDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYnRuLXNwaW5uZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGFuaW1hdGlvbjogdXBjb21pbmctcmVzY2hlZHVsZS1zcGluIDAuNnMgbGluZWFyIGluZmluaXRlO1xuICB9XG59XG5cbi8vIEhvdmVyIGJvcmRlcnMgb25seSB3aGVyZSBob3ZlcmluZyBpcyByZWFsLCBzbyBhIHRhcCBvbiB0b3VjaCBkb2Vzbid0IGxlYXZlIGFcbi8vIHNsb3QgbG9va2luZyBzZWxlY3RlZC5cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gIC51cGNvbWluZy1yZXNjaGVkdWxlX19zbG90Om5vdCguaXMtc2VsZWN0ZWQpOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG59XG5cbi8vIEFib3ZlIHRoZSBzdGFjayBicmVha3BvaW50IHRoZSBzZWN0aW9uIGhlYWRlciBhbmQgdGhlIG1ldGEgcm93IGFyZSByb3dzLlxuQG1lZGlhIChtaW4td2lkdGg6ICN7JHVwY29taW5nLXJlc2NoZWR1bGUtc3RhY2sgKyAxcHh9KSB7XG4gIC51cGNvbWluZy1yZXNjaGVkdWxlX19tZXRhIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgLnVwY29taW5nLXJlc2NoZWR1bGVfX21ldGEtc2VwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC51cGNvbWluZy1yZXNjaGVkdWxlX19zZWN0aW9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkdXBjb21pbmctcmVzY2hlZHVsZS1zdGFjaykge1xuICAudXBjb21pbmctcmVzY2hlZHVsZSB7XG4gICAgJl9fcGlja2VyICAgICB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAmX19jYWwgICAgICAgIHsgZmxleDogMCAwIGF1dG87IH1cbiAgICAmX192ZGl2aWRlciAgIHsgd2lkdGg6IGF1dG87IGhlaWdodDogMXB4OyB9XG4gICAgJl9fc2xvdHMtbGlzdCB7IG1heC1oZWlnaHQ6IDIyMHB4OyB9XG5cbiAgICAvLyBPbmNlIGEgZGF5IGlzIHBpY2tlZCB0aGUgY2FsZW5kYXIgZm9sZHMgYXdheSB0byB0aGUgc3VtbWFyeSBiYXIuXG4gICAgJl9fcGlja2VyLmlzLWNvbGxhcHNlZCB7XG4gICAgICAudXBjb21pbmctcmVzY2hlZHVsZV9fY29sbGFwc2VkIHsgZGlzcGxheTogZmxleDsgfVxuXG4gICAgICAudXBjb21pbmctcmVzY2hlZHVsZV9fY2FsLFxuICAgICAgLnVwY29taW5nLXJlc2NoZWR1bGVfX3ZkaXZpZGVyLFxuICAgICAgLnVwY29taW5nLXJlc2NoZWR1bGVfX3Nsb3RzLWRheSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLnVwY29taW5nLXJlc2NoZWR1bGUge1xuICAgICZfX3RpdGxlICB7IHBhZGRpbmc6ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZSAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXItcGhvbmUgMDsgfVxuICAgICZfX21ldGEgICB7IHBhZGRpbmc6IDE2cHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyLXBob25lIDA7IH1cbiAgICAmX19ib2R5ICAgeyBwYWRkaW5nOiAxNnB4ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZSAwOyB9XG4gICAgLy8gTXVzdCB0cmFjayB0aGUgcmVkdWNlZCBndXR0ZXIgb3IgdGhlIHJ1bGUgc3RvcHMgc2hvcnQgb2YgdGhlIHBhbmVsIGVkZ2UuXG4gICAgJl9fZGl2aWRlciB7IG1hcmdpbjogMCAtI3skdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXItcGhvbmV9OyB9XG4gICAgJl9fZXJyb3IgIHsgcGFkZGluZzogMTJweCAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXItcGhvbmUgMDsgfVxuICAgICZfX2FjdGlvbnMgeyBwYWRkaW5nOiAxMnB4ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZSAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXItcGhvbmU7IH1cbiAgfVxufVxuIiwiLy8gQ2FuY2VsIGNvbmZpcm1hdGlvbiwgcG9ydGVkIGZyb20gdGhlIGFwcCdzIGNvbXBvbmVudHMvY2FuY2VsLXNlc3Npb24tbW9kYWxcbi8vIChUYWlsd2luZCB0aGVyZSwgc28gdGhlc2UgYXJlIHRoZSBkZS1AYXBwbHknZCB0b2tlbiB2YWx1ZXMpLiBMaWtlXG4vLyAucHJvZ3JhbS1kZWxldGUgaXQgaXMgYSBjdXN0b20gcm9vdCByYXRoZXIgdGhhbiAubW9kYWwtY29udGFpbmVyLCBzbyBub25lIG9mXG4vLyB0aGUgbGVnYWN5IG1vZGFsIGNocm9tZSBhcHBsaWVzIGFuZCBub3RoaW5nIGhlcmUgaGFzIHRvIHVuZG8gaXQuXG4kdXBjb21pbmctY2FuY2VsLXdpZHRoOiA1MTJweDtcbiR1cGNvbWluZy1jYW5jZWwtZ3V0dGVyOiAyNHB4O1xuJHVwY29taW5nLWNhbmNlbC1naG9zdC1ob3ZlcjogI2ViZWJlYjtcbiR1cGNvbWluZy1jYW5jZWwtZGFuZ2VyLWhvdmVyOiAjYzAzOTJiO1xuJHVwY29taW5nLWNhbmNlbC12aWV3cG9ydC1tYXJnaW46IDE2cHg7XG5cbi51cGNvbWluZy1jYW5jZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAkdXBjb21pbmctY2FuY2VsLXdpZHRoO1xuICAvLyAubW9kYWwgaXMgYSBjb250ZW50LXNpemVkIGZsZXggaXRlbSBpbnNpZGUgLm1vZGFsLXZpZXcsIHNvIGEgcGVyY2VudGFnZVxuICAvLyBtYXgtd2lkdGggaGFzIG5vIGRlZmluaXRlIHBhcmVudCB3aWR0aCB0byByZXNvbHZlIGFnYWluc3QuIEEgdmlld3BvcnQgdW5pdFxuICAvLyBpcyB3aGF0IGFjdHVhbGx5IGJvdW5kcyB0aGUgY2FyZCBvbiBhIHBob25lLlxuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyR1cGNvbWluZy1jYW5jZWwtdmlld3BvcnQtbWFyZ2luICogMn0pO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skdXBjb21pbmctY2FuY2VsLXZpZXdwb3J0LW1hcmdpbiAqIDJ9KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMTYsIDI0LCA0MCwgMC4xOCk7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2Nsb3NlIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW46IDAgNDBweCAwIDA7IC8vIGtlZXBzIHRoZSBxdWVzdGlvbiBjbGVhciBvZiB0aGUgY2xvc2UgYnV0dG9uXG4gICAgcGFkZGluZzogJHVwY29taW5nLWNhbmNlbC1ndXR0ZXIgJHVwY29taW5nLWNhbmNlbC1ndXR0ZXIgMDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHggJHVwY29taW5nLWNhbmNlbC1ndXR0ZXI7XG4gIH1cblxuICAmX19wcm9tcHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcblxuICAgIC8vIFRoZSBib2xkIHNwYW5zIGNvbWUgZnJvbSB0aGUgdHJhbnNsYXRpb24gc3RyaW5nLCBzbyB0aGV5IGFyZSBzdHlsZWQgaGVyZVxuICAgIC8vIHJhdGhlciB0aGFuIGluIHRoZSB0ZW1wbGF0ZS5cbiAgICBiIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fb3B0aW9uYWwge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19oaW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJG11dGVkO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIgLnVwY29taW5nLWNhbmNlbF9fdG9vbHRpcCxcbiAgICAmOmZvY3VzLXdpdGhpbiAudXBjb21pbmctY2FuY2VsX190b29sdGlwIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgJl9fdG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogY2FsYygxMDAlICsgNnB4KTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgei1pbmRleDogNTA7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMTEwcHg7IC8vIHRyYW5zbGF0ZVgoLTUwJSkgd2l0aG91dCBhIHRyYW5zZm9ybSBvbiB0aGUgYXJyb3cncyBjb250YWluaW5nIGJsb2NrXG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICR0b29sdGlwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgICAgYm9yZGVyOiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkdG9vbHRpcDtcbiAgICB9XG4gIH1cblxuICAmX19yZWFzb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8vIHJvd3M9XCI0XCIgYWxvbmUgZG9lcyBub3Qgc3Vydml2ZSBoZXJlOiB0aGUgYmFyZSBgdGV4dGFyZWFgIHJ1bGUgaW5cbiAgICAvLyBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucyBwaW5zIGhlaWdodDogMTI3cHgsIHdoaWNoIG92ZXJyaWRlcyB0aGVcbiAgICAvLyBpbnRyaW5zaWMgcm93IGhlaWdodCBhbmQgcmVuZGVycyBhcyBmaXZlIGxpbmVzLiBBbiBleHBsaWNpdCBoZWlnaHQgb24gdGhlXG4gICAgLy8gY2xhc3Mgb3V0cmFua3MgaXQuIEZvdXIgMjJweCBsaW5lcyArIDEwcHggcGFkZGluZyB0b3AvYm90dG9tICsgMXB4IGJvcmRlclxuICAgIC8vIHRvcC9ib3R0b20sIHNpemVkIGFnYWluc3QgdGhlIGJvcmRlci1ib3ggc2V0IGFib3ZlLlxuICAgIGhlaWdodDogMTEwcHg7XG4gICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAvLyBGaXhlZCByYXRoZXIgdGhhbiB1bml0bGVzcyBzbyB0aGUgbW9iaWxlIDE2cHggYnVtcCBiZWxvdyBkb2VzIG5vdCBjaGFuZ2VcbiAgICAvLyB0aGUgYm94IGhlaWdodC5cbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRtdXRlZDtcbiAgICB9XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcGFkZGluZzogMTJweCAkdXBjb21pbmctY2FuY2VsLWd1dHRlciAkdXBjb21pbmctY2FuY2VsLWd1dHRlcjtcbiAgfVxuXG4gICZfX2J0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvLyB1bnN0eWxlLWJ1dHRvbiBjbGVhcnMgbWluL21heC1oZWlnaHQgYnV0IG5vdCBoZWlnaHQsIGFuZCB0aGUgZ2xvYmFsIGJ1dHRvblxuICAgIC8vIHJ1bGUgaW4gX2Jhc2Uuc2NzcyBwaW5zIGhlaWdodDogNTBweCAtIHdoaWNoIHdvdWxkIG92ZXJyaWRlIHRoZSA0OHB4IGhlcmUuXG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIC8vIGJ1dHRvbiArIGJ1dHRvbiBpbiBfYmFzZS5zY3NzIGFkZHMgYSBsZWZ0IG1hcmdpbiB0aGF0IHdvdWxkIHN0YWNrIG9uIHRoZVxuICAgIC8vIGdhcCBhYm92ZS5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTFweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4zMnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmLS1naG9zdCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTEwMDtcbiAgICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVwY29taW5nLWNhbmNlbC1naG9zdC1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1kYW5nZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZC01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1cGNvbWluZy1jYW5jZWwtZGFuZ2VyLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAvLyBfYmFzZS5zY3NzIHJhaXNlcyBldmVyeSBjb250cm9sIHRvIDE2cHggb24gbW9iaWxlIHNvIGlPUyBTYWZhcmkgc3RvcHNcbiAgLy8gYXV0by16b29taW5nIG9uIGZvY3VzLiBUaGUgY2xhc3MgYWJvdmUgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIHRoYXQgcnVsZSwgc29cbiAgLy8gdGhlIGV4ZW1wdGlvbiBoYXMgdG8gYmUgcmVzdGF0ZWQuXG4gIC51cGNvbWluZy1jYW5jZWxfX3JlYXNvbiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLnVwY29taW5nLWNhbmNlbCB7XG4gICAgJl9fdGl0bGUge1xuICAgICAgcGFkZGluZzogMjBweCAyMHB4IDA7XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICBwYWRkaW5nOiAxMnB4IDIwcHggMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQXRobGV0ZSBQcm9maWxlIHBhZ2UgKC8jL3Byb2ZpbGUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi52aWV3LWZsZXguYXRobGV0ZS1wcm9maWxlLXBhZ2Uge1xuICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAtd2Via2l0LWZsZXg6IDEgMCBhdXRvO1xuICAtbW96LWJveC1mbGV4OiAxO1xuICAtbXMtZmxleDogMSAwIGF1dG87XG4gIGZsZXg6IDEgMCBhdXRvO1xuICAvLyBGaWdtYSdzIHBhZ2UgZ3JleTsgb3ZlcnJpZGVzIHRoZSBzaGFyZWQgLmdyZXliZyAoI2VmZWZlZikgZm9yIHRoaXMgcGFnZSBvbmx5LlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNmY3O1xufVxuXG4kYXRobGV0ZS1wcm9maWxlLWFjY2VudC1ob3ZlcjogIzVmNDQ5OTtcbiRhdGhsZXRlLXByb2ZpbGUtYm9yZGVyOiAjZTVlNWU1O1xuXG4uYXRobGV0ZS1wcm9maWxlIHtcbiAgLy8gVGhlIHRlYW0gZGFzaGJvYXJkIGNhcmQgcmV1c2VzIC5hdGhsZXRlLXByb2ZpbGUgZm9yIGl0cyBwaG90byBjb2x1bW5cbiAgLy8gKF9kYXNoYm9hcmRfYXRobGV0ZS5zY3NzKSwgc28gdGhlIHBhZ2UgYm94IG9ubHkgYXBwbGllcyBpbnNpZGUgdGhlIHByb2ZpbGVcbiAgLy8gcGFnZSB3cmFwcGVyLiBUaGUgX19lbGVtZW50IHJ1bGVzIGJlbG93IHN0YXkgdW5zY29wZWQuXG4gIC5hdGhsZXRlLXByb2ZpbGUtcGFnZSAmIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgLy8gNjQwcHggY29udGVudCBjb2x1bW4gKyAyNHB4IHBhZGRpbmcgZWFjaCBzaWRlLCBzbyB0aGUgdGFicywgY2FyZHMgYW5kXG4gICAgLy8gU2F2ZSBmaWxsIHRoZSBib3ggYW5kIHRoZSBwYWdlIGNlbnRyZXMgb24gdGhlIHNhbWUgYXhpcyBhcyB0aGUgZm9vdGVyLlxuICAgIG1heC13aWR0aDogNjg4cHg7XG4gICAgcGFkZGluZzogMzJweCAyNHB4IDQ4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgKixcbiAgICAqOjpiZWZvcmUsXG4gICAgKjo6YWZ0ZXIge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cblxuICAmX19iYWNrIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiAjOTc2OEVCO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAvLyBmb250LXN0eWxlIHBpbnMgdGhlIFNlbWlCb2xkIGZhY2Ug4oCUIE51ZGlzdGEgYWxzbyBzaGlwcyBhIDYwMCBpdGFsaWMuXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgLy8gVGhlIHRpdGxlIGNsZWFycyAyMHB4LCBidXQgdGhlIHRhYiBidXR0b25zIGFyZSA1MHB4IHRhbGwgKGdsb2JhbCBgYnV0dG9uYClcbiAgICAvLyB3aXRoIDIwcHggdGV4dCBjZW50cmVkIGluIHRoZW0sIHNvIH4xMnB4IG9mIHRoYXQgZ2FwIGlzIGRlYWQgc3BhY2UgaW5zaWRlXG4gICAgLy8gdGhlIHRhYi4gMzBweCBoZXJlIHB1dHMgdGhlIHNhbWUgfjMycHggb2YgZGF5bGlnaHQgdW5kZXIgdGhlIGJhY2sgbGluay5cbiAgICBtYXJnaW46IDAgMCAzMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYXRobGV0ZS1wcm9maWxlLWFjY2VudC1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAmX19iYWNrLWFycm93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gIH1cblxuICAvLyBNYXRjaCB0aGUgbGFiZWwncyBsaW5lIGJveCB0byB0aGUgMjBweCBpY29uIHNvIGFsaWduLWl0ZW1zOiBjZW50ZXIgbGluZXNcbiAgLy8gdGhlIGNoZXZyb24ncyBtaWRwb2ludCB1cCB3aXRoIHRoZSB0ZXh0J3MgbWlkcG9pbnQuXG4gICZfX2JhY2stbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIC8vIE51ZGlzdGEncyBnbHlwaHMgc2l0IGhpZ2ggaW4gdGhlIGxpbmUgYm94OyBudWRnZSBkb3duIHRvIG9wdGljYWxseSBjZW50cmUuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgfVxuXG4gICZfX3RhYnMge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYXRobGV0ZS1wcm9maWxlLWJvcmRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIC8vIE1hdGNoZXMgdGhlIDY0MHB4IGNhcmRzL2FjdGlvbnMgc28gdGhlIHJ1bGUgZW5kcyBhdCBTYXZlJ3MgcmlnaHQgZWRnZS5cbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xuICB9XG5cbiAgJl9fdGFiIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgIC8vIEdsb2JhbCBgYnV0dG9uYCBmbG9vcnMgd2lkdGggYXQgMTEwcHgsIHdoaWNoIHN0cmV0Y2hlZCB0aGUgYWN0aXZlIHRhYidzXG4gICAgLy8gdW5kZXJsaW5lIH4yOXB4IHBhc3QgXCJQaHlzaWNhbCBJbmZvXCIuIFRoZSB1bmRlcmxpbmUgaXMgdGhpcyBib3JkZXIsIHNvXG4gICAgLy8gdGhlIHdpZHRoIGhhcyB0byBjb21lIGZyb20gdGhlIGxhYmVsIHBsdXMgdGhlIDRweCBGaWdtYSBzaG93cyBlYWNoIHNpZGUuXG4gICAgbWluLXdpZHRoOiAwO1xuICAgIC8vIEdsb2JhbCBgYnV0dG9uYCBhbHNvIGxvY2tzIGhlaWdodCBhdCA1MHB4IChib3JkZXItYm94KSBhbmQgY2VudGVycyB0aGVcbiAgICAvLyBsYWJlbCBpbiBpdCwgc28gdGhlIDEycHggdG9wIHBhZCBsb3dlcnMgdGhlIHRleHQgNnB4IHdpdGhvdXQgbW92aW5nXG4gICAgLy8gdGhlIHVuZGVybGluZSBvciBhbnl0aGluZyBiZWxvdyBpdC5cbiAgICBwYWRkaW5nOiAxMnB4IDRweCA0cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHB1cnBsZS02MDA7XG4gICAgICBjb2xvcjogJHB1cnBsZS02MDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHB1cnBsZS02MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZXJyb3Ige1xuICAgIGJhY2tncm91bmQ6ICNmZGVjZWM7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGNvbG9yOiAkcmVkLTUwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gIH1cblxuICAmX190b2FzdCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjMzUzNTRCO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAvLyBGaXhlZCB0byB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydCwgbWF0Y2hpbmcgdGhlIHByb2dyYW1zIHRvYXN0XG4gICAgLy8gKC5wcm9ncmFtcy10b2FzdCBpbiBfcHJvZ3JhbV9jYXJkcy5zY3NzKS4gVGhlIHJhaWwgb2Zmc2V0cyBmb3IgdGhlXG4gICAgLy8gY2VudHJlIGxpbmUgbGl2ZSBiZWxvdyB0aGUgYmxvY2suXG4gICAgYm90dG9tOiAzMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgxNiwgMjQsIDQwLCAwLjI0KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IDMycHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMzJweCk7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDhweCA4cHggOHB4IDE2cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgLy8gT3ZlciB0aGUgcGFnZSBhbmQgaXRzIHN0aWNreSBoZWFkZXI7IGJlbG93IC5tb2RhbC12aWV3ICgxMDAwKS5cbiAgICB6LWluZGV4OiA5MDA7XG4gIH1cblxuICAmX190b2FzdC1jaGVjayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgd2lkdGg6IDIwcHg7XG4gIH1cblxuICAmX190b2FzdC1tZXNzYWdlIHtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX190b2FzdC1jbG9zZSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDI4cHggIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2lkdGg6IDI4cHggIWltcG9ydGFudDtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB3aWR0aDogMTZweDtcbiAgICB9XG4gIH1cblxuICAmX19waG90byB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG5cbiAgJl9fYXZhdGFyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDk2cHg7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgd2lkdGg6IDk2cHg7XG4gIH1cblxuICAmX19waG90by1hY3Rpb25zIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgJl9fdXBsb2FkLWJ0biB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmY3O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay00MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBHbG9iYWwgYGJ1dHRvbmAgc2V0cyBtaW4vbWF4LWhlaWdodCA1MHB4OyBib3RoIG11c3QgYmUgb3ZlcnJpZGRlbi5cbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgd2lkdGg6IDEyNXB4O1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBib3JkZXItY29sb3I6ICM5MDkwOTA7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgIH1cbiAgfVxuXG4gICZfX2RlbGV0ZS1idG4ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiAkcmVkLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICBwYWRkaW5nOiA4cHggMnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICZfX3Bob3RvLWhpbnQge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gICZfX2ZpbGUtaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRhdGhsZXRlLXByb2ZpbGUtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgLy8gRmlnbWEgc2l6ZXMgdGhlIHByb2ZpbGUgY2FyZHMgYXQgNjQwIHdpZGUgb24gYm90aCB0YWJzLlxuICAgIG1heC13aWR0aDogNjQwcHg7XG4gICAgcGFkZGluZzogMjRweDtcblxuICAgICYtLXNwYWNlZCB7XG4gICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIH1cblxuICAgIC8vIFRoZSBQaHlzaWNhbCBJbmZvIGNhcmQgaXMgNjQweDIwNC5cbiAgICAmLS1waHlzaWNhbCB7XG4gICAgICBtaW4taGVpZ2h0OiAyMDRweDtcbiAgICB9XG4gIH1cblxuICAmX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLS1mdWxsIC5hdGhsZXRlLXByb2ZpbGVfX2ZpZWxkIHtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX2ZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgJi0tZnVsbCB7XG4gICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICB9XG4gIH1cblxuICAmX19ncm91cC1zZWxlY3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYtLW9wZW4ge1xuICAgICAgLmF0aGxldGUtcHJvZmlsZV9fZ3JvdXAtc2VsZWN0LXRyaWdnZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNjAwO1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS1wcm9maWxlX19ncm91cC1jYXJldCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDEyIDgnJTNFJTNDcGF0aCBmaWxsPSclMjM3MzU1QjUnIGQ9J00xLjQuNkw2IDUuMiAxMC42LjYgMTIgMiA2IDggMCAyeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2dyb3VwLXNlbGVjdC10cmlnZ2VyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDFkMTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA2cHggMzZweCA2cHggMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAvLyBHbG9iYWwgYGJ1dHRvbmAgdXBwZXJjYXNlczsgdGhlIHRhZ3MgaW5oZXJpdCBpdCB3aXRob3V0IHRoaXMuXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmX19ncm91cC10YWdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDZweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19ncm91cC10YWcge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI0YyRURGQztcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAvLyBUaGUgdHJpZ2dlciBpcyBhIDxidXR0b24+LCBzbyB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGhhbmRzIGl0cyBjaGlsZHJlblxuICAgIC8vIEhlbHZldGljYSBhbmQgMXB4IHRyYWNraW5nOyBib3RoIGhhdmUgdG8gYmUgbmFtZWQgZXhwbGljaXRseSBoZXJlLlxuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8vIGZvbnQtc3R5bGUgcGlucyB0aGUgU2VtaUJvbGQgZmFjZSDigJQgTnVkaXN0YSBhbHNvIHNoaXBzIGEgNjAwIGl0YWxpYy5cbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fZ3JvdXAtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG4gICZfX2dyb3VwLWNhcmV0IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzgnIHZpZXdCb3g9JzAgMCAxMiA4JyUzRSUzQ3BhdGggZmlsbD0nJTIzNmQ2ZDZkJyBkPSdNMS40LjZMNiA1LjIgMTAuNi42IDEyIDIgNiA4IDAgMnonLyUzRSUzQy9zdmclM0VcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbiAgICB3aWR0aDogMTJweDtcbiAgfVxuXG4gICZfX2dyb3VwLWRyb3Bkb3duIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRhdGhsZXRlLXByb2ZpbGUtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG1heC1oZWlnaHQ6IDI4MHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLy8gNnB4IGluc2V0IGVhY2ggc2lkZSBsZWF2ZXMgdGhlIHJvd3MgYXQgdGhlIDU3NnB4IEZpZ21hIHdpZHRoLlxuICAgIHBhZGRpbmc6IDZweDtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fZ3JvdXAtb3B0aW9uIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGdhcDogOHB4O1xuICAgIC8vIEdsb2JhbCBgYnV0dG9uYCBwaW5zIG1pbi9tYXgtaGVpZ2h0IHRvIDUwcHg7IGJvdGggbmVlZCBvdmVycmlkaW5nLlxuICAgIGhlaWdodDogMzZweDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmICsgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICA+IHNwYW46bGFzdC1jaGlsZCB7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJi0tc2VsZWN0ZWQge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgxMTUsIDg1LCAxODEsIDAuMDgpO1xuICAgIH1cbiAgfVxuXG4gICZfX2dyb3VwLWNoZWNrYm94IHtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkICRwdXJwbGUtNjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxOHB4O1xuXG4gICAgLy8gRmlnbWEga2VlcHMgdGhlIGJveCBvdXRsaW5lZCB3aGVuIGNoZWNrZWQgYW5kIGRyYXdzIHRoZSB0aWNrIGluIGFjY2VudCxcbiAgICAvLyByYXRoZXIgdGhhbiBmaWxsaW5nIHRoZSBib3ggYW5kIHJldmVyc2luZyB0aGUgdGljayBvdXQgaW4gd2hpdGUuXG4gICAgJi0tY2hlY2tlZDo6YWZ0ZXIge1xuICAgICAgYm9yZGVyOiBzb2xpZCAkcHVycGxlLTYwMDtcbiAgICAgIGJvcmRlci13aWR0aDogMCAycHggMnB4IDA7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogOXB4O1xuICAgICAgbGVmdDogNXB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB3aWR0aDogNXB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIH1cblxuICAmX19pbnB1dCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkMWQxO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIFRoZSBtaXhpbiBlbWl0cyBvbmUgcnVsZSBwZXIgdmVuZG9yIHNlbGVjdG9yOyBncm91cGluZyB0aGVtIHdvdWxkIG1ha2VcbiAgICAvLyBicm93c2VycyBkcm9wIHRoZSB3aG9sZSBsaXN0IG92ZXIgdGhlIG9uZSBwc2V1ZG8tZWxlbWVudCB0aGV5IGRvbid0IGtub3cuXG4gICAgLy8gSXQgcHJlZGF0ZXMgc3RhbmRhcmQgOjpwbGFjZWhvbGRlciwgc28gdGhhdCBnZXRzIGl0cyBvd24gcnVsZSBiZWxvdy5cbiAgICAvLyBvcGFjaXR5IGJlY2F1c2UgRmlyZWZveCBkaW1zIHBsYWNlaG9sZGVycyBieSBkZWZhdWx0LlxuICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJsYWNrLTQwMDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNjAwO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmNmY2Zjc7XG4gICAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgLy8gZmxhdHBpY2tyJ3MgdmlzaWJsZSBhbHQgaW5wdXQgaXMgcmVhZG9ubHkgYW5kIG9wZW5zIHRoZSBjYWxlbmRhciBvblxuICAgIC8vIGNsaWNrLCBzbyBpdCBzaG91bGQgcmVhZCBhcyBjbGlja2FibGUgbGlrZSB0aGUgc2VsZWN0cyBiZXNpZGUgaXQuXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICYtLWludmFsaWQge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkLTUwMDtcbiAgICB9XG5cbiAgICAmLS11bml0IHtcbiAgICAgIC8vIEZpZ21hIHNpemVzIHRoZSB1bml0IGlucHV0cyBhdCAyNTlweDsgc2hyaW5rIG9ubHkgaWYgdGhlIGNhcmQgaXMgbmFycm93ZXIuXG4gICAgICBmbGV4OiAwIDEgMjU5cHg7XG4gICAgICBtYXgtd2lkdGg6IDI1OXB4O1xuICAgICAgd2lkdGg6IDI1OXB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJlYXQgZ2xvYmFsIGlucHV0W3R5cGU9J3RleHQnXSB7IGJvcmRlci1yYWRpdXM6IDJweCB9IGZyb20gX2Jhc2Uuc2Nzc1xuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0LFxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J3RleHQnXSxcbiAgaW5wdXQuYXRobGV0ZS1wcm9maWxlX19pbnB1dFt0eXBlPSdlbWFpbCddLFxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J251bWJlciddLFxuICBzZWxlY3QuYXRobGV0ZS1wcm9maWxlX19pbnB1dCB7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgLy8gU2FtZSBnbG9iYWwgcnVsZSBhbHNvIHNldHMgYm9yZGVyOiAxcHggc29saWQgJGdyZXkgYW5kIHBhZGRpbmc6IDNweCwgd2hpY2hcbiAgLy8gbGVmdCB0ZXh0IGZpZWxkcyBkYXJrZXItZWRnZWQgYW5kIGZsdXNoIGxlZnQgbmV4dCB0byB0aGUgZW1haWwgZmllbGQuIFRoZVxuICAvLyBzdGF0ZSBtb2RpZmllcnMgYXJlIHJlcGVhdGVkIGhlcmUgc28gdGhleSBzdGlsbCB3aW4gYXQgdGhpcyBzcGVjaWZpY2l0eS5cbiAgaW5wdXQuYXRobGV0ZS1wcm9maWxlX19pbnB1dFt0eXBlPSd0ZXh0J10sXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXRbdHlwZT0nZW1haWwnXSxcbiAgaW5wdXQuYXRobGV0ZS1wcm9maWxlX19pbnB1dFt0eXBlPSdudW1iZXInXSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDFkMTtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS02MDA7XG4gICAgfVxuXG4gICAgJi5hdGhsZXRlLXByb2ZpbGVfX2lucHV0LS1pbnZhbGlkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHJlZC01MDA7XG4gICAgfVxuICB9XG5cbiAgLy8gTm8gc3Bpbm5lciBhcnJvd3Mgb24gdGhlIG51bWVyaWMgZmllbGRzLlxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J251bWJlciddIHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlbGVjdC13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmX19zZWxlY3Qge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDEyIDgnJTNFJTNDcGF0aCBmaWxsPSclMjM2ZDZkNmQnIGQ9J00xLjQuNkw2IDUuMiAxMC42LjYgMTIgMiA2IDggMCAyeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxMnB4IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmY2Zjc7XG4gICAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgLy8gOjpwbGFjZWhvbGRlciBkb2Vzbid0IGFwcGx5IHRvIDxzZWxlY3Q+LiBuZ01vZGVsIGFkZHMgLm5nLWVtcHR5IGZvciB1cyxcbiAgICAvLyBhbmQgaXQga2V5cyBvZmYgJGlzRW1wdHksIHNvIGEgbGVnaXRpbWF0ZSBpZCBvZiAwIHN0aWxsIGNvdW50cyBhcyBjaG9zZW4uXG4gICAgJi5uZy1lbXB0eSB7XG4gICAgICBjb2xvcjogJGJsYWNrLTQwMDtcbiAgICB9XG5cbiAgICAvLyBUaGUgb3BlbiBkcm9wZG93biBzdGF5cyByZWFkYWJsZSB3aGlsZSB0aGUgY2xvc2VkIGNvbnRyb2wgcmVhZHMgZ3JleS5cbiAgICBvcHRpb24ge1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdW5pdC1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgJl9fdW5pdC1maWVsZCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fdW5pdCB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxuICAvLyBBY2NvdW50IHRhYjogQWN0aXZlIC8gU2lnbi1pbiBhY2Nlc3MgLyBXZWxjb21lIGVtYWlsLiBBIHBhaXIgb2YgYnV0dG9uc1xuICAvLyByYXRoZXIgdGhhbiByYWRpbyBpbnB1dHMsIHRvIG1hdGNoIHRoZSB0YWIgc3RyaXAgYW5kIGdyb3VwIHBpY2tlciBhYm92ZS5cbiAgJl9fY2hvaWNlLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fY2hvaWNlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQxZDE7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIC8vIEdsb2JhbCBgYnV0dG9uYCBwaW5zIG1pbi9tYXgtaGVpZ2h0IHRvIDUwcHg7IGJvdGggbmVlZCBvdmVycmlkaW5nLlxuICAgIGhlaWdodDogNDBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgbWluLXdpZHRoOiA3MnB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICY6aG92ZXI6bm90KC5hdGhsZXRlLXByb2ZpbGVfX2Nob2ljZS0tc2VsZWN0ZWQpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzkwOTA5MDtcbiAgICB9XG5cbiAgICAmLS1zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjNlZWZmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYXRobGV0ZS1wcm9maWxlLWFjY2VudC1ob3ZlcjtcbiAgICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2FjY291bnQtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fYWNjb3VudC1idG4ge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gICZfX2ZpZWxkLWVycm9yIHtcbiAgICBjb2xvcjogJHJlZC01MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gICZfX2ZpZWxkLWhpbnQge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgLy8gS2VlcHMgU2F2ZSBhbGlnbmVkIHRvIHRoZSByaWdodCBlZGdlIG9mIHRoZSA2NDBweCBjYXJkcy5cbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJl9fc2F2ZSB7XG4gICAgYmFja2dyb3VuZDogI0MzQURGMjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi13aWR0aDogMTQ4cHg7XG4gICAgcGFkZGluZzogMTJweCAyMnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcblxuICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogI2IxOWFlNjtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmF0aGxldGUtcHJvZmlsZSB7XG4gICAgLy8gUGFnZSBib3ggb25seTsgc2VlIHRoZSBzY29waW5nIG5vdGUgb24gdGhlIG1haW4gLmF0aGxldGUtcHJvZmlsZSBibG9jay5cbiAgICAuYXRobGV0ZS1wcm9maWxlLXBhZ2UgJiB7XG4gICAgICBwYWRkaW5nOiAyNHB4IDE2cHggNDBweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuXG4gICAgJl9fcGhvdG8ge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICZfX3JvdyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICZfX2lucHV0LS11bml0IHtcbiAgICAgIG1heC13aWR0aDogMjU5cHg7XG4gICAgICB3aWR0aDogMjU5cHg7XG4gICAgfVxuICB9XG59XG5cbi8vIENlbnRyZSB0aGUgc2F2ZSB0b2FzdCBvbiB0aGUgY29udGVudCBjb2x1bW4gcmF0aGVyIHRoYW4gdGhlIHZpZXdwb3J0LCBzYW1lXG4vLyA6aGFzKCkgY29uZGl0aW9ucyAucHJvZ3JhbXMtdG9hc3QgdXNlcyB0byBhZGQgdGhlIHJhaWwgd2lkdGggYmFjay5cbi5tYWluLXZpZXc6aGFzKD4gLm1lbnUtY29udGVudCAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykgLmF0aGxldGUtcHJvZmlsZV9fdG9hc3Qge1xuICBsZWZ0OiBjYWxjKDUwJSArICN7JGF0aGxldGUtc2lkZWJhci13aWR0aH0gLyAyKTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gI3skYXRobGV0ZS1zaWRlYmFyLXdpZHRofSAtIDMycHgpO1xufVxuXG4ubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSAuYXRobGV0ZS1wcm9maWxlX190b2FzdCB7XG4gIGxlZnQ6IGNhbGMoNTAlICsgI3skYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aH0gLyAyKTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gI3skYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aH0gLSAzMnB4KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0LFxuICAubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0LFxuICAubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSAuYXRobGV0ZS1wcm9maWxlX190b2FzdCB7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIGdhcDogMTZweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIH1cbn1cbiIsIlxuLmNhdGFsb2ctZmVhdHVyZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmY2ZjZjtcbiAgaGVpZ2h0OiA0MDBweDtcblxuICAuZmVhdHVyZS1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiB0b3A7XG4gICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5ydW5uaW5nLW1hbiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWFnZXMvcHJvZ3JhbV9jYXRhbG9nX2JhY2tncm91bmQucG5nJyk7XG4gICAgICBcbiAgICAgIC5mZWF0dXJlLWNvbnRlbnQge1xuICAgICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICB9XG5cbiAgICAgIC5tZXNzYWdlLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZlYXR1cmUtY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDQwcHg7XG4gICAgICBsZWZ0OiA4MHB4O1xuICAgICAgd2lkdGg6IDQwMHB4O1xuICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuOTU7XG5cbiAgICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICBoMiwgLnRpdGxlLXRleHQge1xuICAgICAgICBmb250LXNpemU6IDU1cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIHAsIC5tZXNzYWdlLXRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmVhdHVyZS1idXR0b24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAzNXB4O1xuICAgICAgbGVmdDogODBweDtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB9XG4gIH1cblxuICAubWFya2VycyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAubWFya2VyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBtYXJnaW46IDZweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0MWJhZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jYXRhbG9nLXNlbGVjdGVkIHtcbiAgcGFkZGluZzogMzVweDtcbiAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICB9XG5cbiAgLnRpdGxlLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIH1cblxuICAgIC5uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICB9XG5cbiAgICAucmV0dXJuLWxpbmsge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IGkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGV0YWlsLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuaW5mby1yb3ctaGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmluZm8tcm93IHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGhlaWdodDogOTBweDtcbiAgICAgICAgd2lkdGg6IDEzMHB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYgKyBkaXYge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG5cbiAgICAgIC5pbmZvIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uLXJvdyB7XG4gICAgICBmb250LXNpemU6MTJweDtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIH1cbiAgICAgIC5sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBidXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNhbXBsZS1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIC8vIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICB9XG5cbiAgICAgIC52aWRlby1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnZpZGVvLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIzOXB4O1xuICAgICAgICBtYXgtd2lkdGg6IDQyNXB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyMzlweDtcbiAgICAgICAgLy8gQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgLy8gbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAvLyB9XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1pc3NpbmctbWVkaWEge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgd2lkdGg6IDk5JTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZXhlcmNpc2Utc2VsZWN0ZWQge1xuICBwYWRkaW5nOiAzNXB4O1xuXG4gIC50aXRsZS1jb250YWluZXIge1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIH1cbiAgICAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgfVxuXG4gICAgLm5hbWUge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgIC5yZXR1cm4tbGluayB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICA+IGkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGV0YWlsLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuaW5mby1yb3ctaGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMTMwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mby1yb3cge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgbWluLWhlaWdodDogOTBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxMzBweDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgID4gZGl2ICsgZGl2IHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgfVxuXG4gICAgICAuaW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIH1cblxuICAgICAgLmxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbi1yb3cge1xuICAgICAgZm9udC1zaXplOjEycHg7XG4gICAgICBtYXJnaW46IDIwcHggMDtcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICB9XG4gICAgICAubGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW46IDIwcHggMDtcbiAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zYW1wbGUtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAvLyBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgfVxuXG4gICAgICAudmlkZW8tbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC52aWRlby1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMzlweDtcbiAgICAgICAgbWF4LXdpZHRoOiA0MjVweDtcbiAgICAgICAgbWluLWhlaWdodDogMjM5cHg7XG4gICAgICAgIC8vIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIC8vIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgLy8gfVxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICAgIH1cblxuICAgICAgICAubWlzc2luZy1tZWRpYSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICB3aWR0aDogOTklO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmV4ZXJjaXNlLWluZm8tY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCA0MDBweCk7XG4gIH1cblxuICAuc2FtcGxlLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgMzUwcHgpO1xuXG4gICAgLmZpbGUtaW5wdXQtd3JhcHBlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG5cbiAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgbWluLWhlaWdodDogMzVweDtcbiAgICAgICAgbWF4LWhlaWdodDogMzVweDtcbiAgICAgIH1cblxuICAgICAgPiBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5mb3JtLWZpZWxkcyAge1xuICAgIFxuICAgIC53ZWVrLXNlbGVjdGlvbiB7XG4gICAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRibHVlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGJsdWU7XG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGJsdWU7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICAgICAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWJkN2VhO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsICB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICAgIHBhZGRpbmc6IDJweDtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlucHV0ICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgICAgICB0ZXh0LWluZGVudDogM3B4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2VsZWN0ICsgaS5pY29uLWNhcmV0LWRvd24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIGNvbG9yOiAjRDlEQkRDO1xuICAgICAgICBmb250LXNpemU6IDhweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5wcm9ncmFtLWhlYWRlci1jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4KDEpO1xufVxuXG4ucHJvZ3JhbS1lZGl0LWhlYWRlciB7XG4gIG1pbi1oZWlnaHQ6IDg1cHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDtcbn1cblxuLnByb2dyYW0tdHlwZS1zZWxlY3Rpb24ge1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICA+IC50eXBlLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQwcHgpO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC5waWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGJhY2tncm91bmQ6ICNBRkIxQjQ7XG4gICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICBjb2xvcjogIzc1Nzg3YjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gIH1cbiAgPiAudHlwZS1pdGVtICsgLnR5cGUtaXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIH1cbiAgPiAuY29weS1jb250cm9scyB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICB9XG59XG5cbi5wcm9ncmFtLXNjaGVkdWxlLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDVweCk7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMzBweCk7XG4gIH1cbn1cblxuLnByb2dyYW0tZWRpdCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcblxuICAucHJvZ3JhbS1zdHJhdGVneS1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAucHJvZ3JhbS1zdHJhdGVneSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICBpIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgwIDMwcHgpO1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgICAgLnN0cmF0ZWd5LW5hbWUge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEgYXV0byk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgfVxuICAgICAgLnN0cmF0ZWd5LWFjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMCAxODBweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM1cHgpO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucHJvZ3JhbS1zdHJhdGVneS1jb250YWluZXIgKyAucHJvZ3JhbS1zdHJhdGVneS1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAucHJvZ3JhbS10ZWNobmlxdWUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogI2VmZWZlZjtcbiAgICAuY291bnRlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0NXB4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIC5uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgPiBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmFjdGlvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgXG4gICAgICAuaWNvbi1wbHVzIHtcbiAgICAgICAgZm9udC1zaXplOiA4cHg7XG4gICAgICB9XG4gICAgICA+IHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcm9ncmFtLWV4ZXJjaXNlLWNvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICA+IGRpdiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgbWFyZ2luOiAxcHggMDtcbiAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgICYuYWN0aXZlLWl0ZW0ge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAucHJvZ3JhbS1leGVyY2lzZSB7XG4gICAgICAgICAgLmRyYWctaWNvbiB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgLnNvcnQtaWNvbnMgLmljb246Zmlyc3QtY2hpbGQge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICAgID4gZGl2Omxhc3QtY2hpbGQge1xuICAgICAgLnNvcnQtaWNvbnMgLmljb246bGFzdC1jaGlsZCB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gICAgLnByb2dyYW0tbm90ZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDkwcHg7XG4gICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIH1cbiAgICAucHJvZ3JhbS1leGVyY2lzZSB7XG4gICAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgICAgbWluLXdpZHRoOiA2MDBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBtaW4td2lkdGg6IDBcbiAgICAgIH1cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLmRyYWctaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDI4cHgpO1xuICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDg1cHgpO1xuICAgICAgICBjb2xvcjogI2JiYjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIC5zb3J0LWljb25zIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoODVweCk7XG4gICAgICAgIGNvbG9yOiAjYmJiO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBjb2xvcjogI2RlZGVkZTtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmluZm8ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICAudGl0bGUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgICAgIC5hdHRyaWJ1dGVzIHtcbiAgICAgICAgICBnYXA6IDVweCAyNXB4O1xuICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5hY3Rpb25zIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzhweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTgwcHgpO1xuICAgICAgICBjb2xvcjogI2RkZDtcbiAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ucHJvZ3JhbS1lZGl0LWZvb3RlciB7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgbWFyZ2luOiAxNXB4IDMwcHg7XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLndoaXRlYm9hcmQge1xuICBtaW4td2lkdGg6IDY0MHB4O1xuICB3aWR0aDogMTAwJTtcblxuICAmID4gc2VjdGlvbiB7XG4gICAgbWFyZ2luOiAxNXB4IDMwcHg7XG4gIH1cbn1cblxuLndoaXRlYm9hcmQtc2NoZWR1bGUge1xuICB3aWR0aDogMTAwJTtcblxuICAud2hpdGVib2FyZC1wcm9ncmFtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgcGFkZGluZzogMzBweCAwIDE1cHg7XG4gIH1cbn1cblxuLndoaXRlYm9hcmQtcHJvZ3JhbSB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDE0MHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgcGFkZGluZzogMzBweCAzMHB4IDE1cHg7XG5cbiAgLm5hbWUge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICB9XG5cbiAgLm9yaWdpbiB7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAuZWRpdCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxufVxuXG4ud2hpdGVib2FyZC1kYXRlIHtcbiAgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5kYXRlLWlucHV0IHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0MHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEzMHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG4gICAgaW5wdXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgdGV4dC1pbmRlbnQ6IDVweDtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgLmlucHV0LWljb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgzMHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsdWU7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuXG4gICAgICBpLmZhIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kYXRlLWRpc2FibGVkIHtcbiAgICAuaW5wdXQtaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRfZ3JleTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodF9ncmV5O1xuICAgIH1cbiAgfVxuXG59XG5cblxuXG4ud2Vlay1saXN0IHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIHBhZGRpbmc6IDEwcHggMzBweDtcblxuICAud2Vlay1pdGVtIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGJsdWU7XG4gICAgfVxuXG4gICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC53ZWVrLWNvcHkge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIDAlKTtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgfVxufVxuXG4uZGF5LWxpc3Qge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0NXB4KTtcbiAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgLmRheS1pdGVtIHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsdWU7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgIG1pbi13aWR0aDogODBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY1LCAxODcsIDIzMSwgMC41KTtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRibHVlO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICAgIH1cbiAgfVxufVxuXG4uZGF5LWxpc3Qtc2NoZWR1bGUge1xuXG4gIC5kYXktaXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2JiYjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAuZHJhZy1pY29uIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDIwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgzMHB4KTtcbiAgICAgIGN1cnNvcjogbW92ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubmFtZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIC5kYXktaXRlbSArIC5kYXktaXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbn1cblxuLnByb2dyYW0tc2VjdGlvbiB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuXG4gICYuYWNjZXB0LWRyb3Age1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIC5hY3Rpb24td2l0aC1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5uYW1lID4gaSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5uYW1lIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcblxuICAgIHNwYW4ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLmFjdGlvbiB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDExMHB4KTtcbiAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICBpLmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICB9XG4gIH1cbn1cblxuLnByb2dyYW0tc2VjdGlvbi1wbGFjZWhvbGRlciB7XG5cbiAgJiA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2JiYjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgbWFyZ2luOiA0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBzcGFuLnRleHQge1xuICAgICAgY29sb3I6ICNiYmI7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gIH1cbn1cblxuLnByb2dyYW0tZXhlcmNpc2UtY29udGFpbmVyIHtcbiAgbWluLWhlaWdodDogODZweDtcblxuICAmID4gZGl2IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBtYXJnaW46IDJweDtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5hY3RpdmUtaXRlbSB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgLnByb2dyYW0tZXhlcmNpc2Uge1xuICAgICAgICAuZHJhZy1pY29uIHtcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgICAgLmFjdGlvbnMge1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hZGQtZXhlcmNpc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgY29sb3I6ICNhYWE7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjQ0REM0Q3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFRkVGRUY7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICNDREQzRDc7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9ncmFtLW5vdGUge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDkwcHg7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgfVxuXG4gIC5wcm9ncmFtLWV4ZXJjaXNlIHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIG1pbi13aWR0aDogNjAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtaW4td2lkdGg6IDBcbiAgICB9XG5cbiAgICAuZHJhZy1pY29uIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDI4cHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg4NXB4KTtcbiAgICAgIGNvbG9yOiAjYmJiO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pbmZvIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG5cbiAgICAgIC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cblxuICAgICAgLmF0dHJpYnV0ZXMge1xuICAgICAgICBnYXA6IDVweCAyNXB4O1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgY29sb3I6ICNkZGQ7XG4gICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgfVxuICB9XG59XG5cbi5hY2NlcHQtZHJvcC1jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogI2NkY2RjZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjUsIDIyNSwgMjI1LCAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMjRweDtcblxuICA+IHNwYW4ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICYuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zb3J0LW9yZGVyLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2RjZGNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIC41KTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAyNHB4O1xuXG4gID4gc3BhbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNjaGVkdWxlLXNlbGVjdGVkLWF0aGxldGVzIHtcbiAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gIG1hcmdpbi1ib3R0b206IGF1dG87XG4gIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgfVxuICAuYXRobGV0ZS1uYW1lcyB7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAuYXRobGV0ZS1uYW1lcy1tb3JlIHtcbiAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxuICB9XG59XG5cbi5idWxrLXNjaGVkdWxlLWRpdmlkZXIge1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiA0N3B4O1xuICBpIHtcbiAgICBjb2xvcjogI0Q3RDlEQTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cblxuLndoaXRlYm9hcmQtZm9vdGVyIHtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmNhbGVuZGFyLW1lbnUge1xuICBtYXJnaW46IDIwcHggMDtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgY29sb3I6ICNhMGE0YTg7XG4gICAgXG4gICAgQGluY2x1ZGUgbGFyZ2UtdGFicy1zdHlsZTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2EwYTRhODtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICA+IGRpdiArIGRpdiB7XG4gICAgbWFyZ2luLWxlZnQ6ICRsYXJnZS10YWJzLXNwYWNpbmc7XG4gIH1cbn1cblxuLmNhbGVuZGFyLXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhbGVuZGFyLW1vbnRoIHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgNjkwcHgpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDY5MHB4KTtcbiAgbWFyZ2luOiAxcHggMCAwOyBcblxuICAuY2FsZW5kYXItaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbjogLTFweCAwIDAgLTFweDtcblxuICAgIFxuICAgIC5mYSAge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgcGFkZGluZzogMTBweDsgICAgICBcbiAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIH1cblxuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjBweCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjBweCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgLnllYXItY29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHNlbGVjdC55ZWFyLXNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2UobWVudWxpc3QpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4KC4xIDAgMCk7ICAgICAgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIG1hcmdpbjogMXB4O1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICBjb2xvcjogJGdyZXk7XG4gICAgICAgIHRleHQtaW5kZW50OiAwcHg7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi1tcy1leHBhbmQge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgaS5pY29uLWNhcmV0LWRvd24ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDEwcHg7ICAgICAgICBcbiAgICAgICAgICByaWdodDogLTEycHg7XG4gICAgICAgICAgY29sb3I6ICNEOURCREM7XG4gICAgICAgICAgZm9udC1zaXplOiA2cHg7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud2Vlay1kYXktbGFiZWxzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuICAgIGNvbG9yOiAjYzBjMGMwO1xuXG4gICAgJi5sZWZ0IHtcbiAgICAgID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg5OS41cHgpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogIzk5OTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIG1hcmdpbjogLTFweCAwIDAgLTFweDtcblxuICAgICAgLmFjY2VwdC1kcm9wLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoOTcuNXB4KTtcbiAgICAgICAgcmlnaHQ6IGluaXRpYWw7XG4gICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjY2NjO1xuICAgIH1cblxuICAgIGRpdjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2NjYztcbiAgICB9XG4gIH1cblxuICAuY2FsZW5kYXItZGF5cyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG5cbiAgICAuY2FsZW5kYXItZGF5IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg5OS41cHgpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIG1hcmdpbjogLTFweCAwIDAgLTFweDtcbiAgICAgIHBhZGRpbmc6IDhweCAxMnB4OyBcblxuICAgICAgJi5kYXktYWN0aXZpdGllcyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMEI5NkQ7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICAmLmN1cnJlbnQtZGF5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tOiA2cHggc29saWQgJGJsdWU7XG4gICAgICB9XG4gICAgICBcbiAgICAgICYucHJvZ3JhbS1yYW5nZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cblxuICAgICAgJi5lbXB0eSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1kYXktbnVtYmVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgID4gLm1vbnRoLWFiYnJldiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1kYXktY29uY2VybiwgLmNhbGVuZGFyLWRheS1leGlzdGluZyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoODVweCk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcblxuICAgICAgICBpIHtcbiAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2FsZW5kYXItZGF5LWNvbmNlcm4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuY2FsZW5kYXItZGF5LXNjaGVkdWxlZCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoODVweCk7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgIGZvbnQtc2l6ZTogOXB4O1xuXG4gICAgICAgIGkge1xuICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5pbnB1dC1jdGwge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIDI4MHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDI4MHB4KTtcbiAgICBib3gtc2hhZG93OiA2cHggNnB4IDE4cHggMHB4ICM0YTRhNGE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0MHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTA7XG4gICAgbWFyZ2luOiAxcHggMDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgJi5yaWdodCB7XG4gICAgICBsZWZ0OiBpbmhlcml0O1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLmNhbGVuZGFyLWhlYWRlciB7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzNXB4KTtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAuaWNvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FsZW5kYXItd2Vlay1oZWFkZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1jb250ZW50KGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjhweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWFhO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzVweCk7XG4gICAgICAgIGNvbG9yOiAjZGZkZmRmO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyOiAyLjEyNzVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhbGVuZGFyLWRheXMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgICAuY2FsZW5kYXItZGF5IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzVweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzVweCk7XG4gICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICBib3JkZXI6IDIuMTI3NXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICYuZW1wdHkge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQtZGF5IHtcbiAgICAgICAgICBib3JkZXI6IDIuMTI3NXB4IHNvbGlkICM5NzY4RUI7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQtcmFuZ2Uge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWY1ZmQ7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuY2FsZW5kYXItZGF5LW51bWJlciB7XG4gICAgICAgICAgICBjb2xvcjogIzhkOGQ4ZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCguZW1wdHkpIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jYWxlbmRhci1kYXktbnVtYmVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNhbGVuZGFyLWRheS1pbmZvIHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoMzAwcHgpO1xuICBcbiAgLmRheS1kYXRlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBtYXJnaW46IDM1cHggMCAyMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgID4gLmljb24tY2FsZW5kYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIH1cbiAgfVxuXG4gIC5kYXktcHJvZ3JhbSB7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgyOTVweCk7XG4gICAgXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNzVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIC5saWdodC1ncmV5LXRleHQgIHtcbiAgICAgIGNvbG9yOiAjQTdBOEE3O1xuICAgIH1cblxuICAgICYuYWN0aW9uIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLndlZWstbWFpbi13cmFwcGVyIHtcbiAgcGFkZGluZzogMCFpbXBvcnRhbnQ7XG59XG5cbi53ZWVrLXdyYXBwZXIge1xuICBwYWRkaW5nOiAwIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIG1pbi1oZWlnaHQ6IDQyNXB4O1xuICAvKiBoZWlnaHQ6IDQyNTsgKi9cblxuICAmLnNtYWxsIHtcbiAgICBtaW4taGVpZ2h0OiAyMjVweDtcbiAgICAvKiBoZWlnaHQ6IDIyNXB4OyAqL1xuICB9XG4gIFxuICAud2Vlay1idXR0b24tY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4td2lkdGg6IDIwcHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7ICAgICAgICAgICAgIFxuICAgIH1cbiAgICBAaW5jbHVkZSByZXNwb25kKGxnKSAge1xuICAgICAgJHdlZWstYnV0dG9uLWVkZ2UtcHVsbDogLTI1cHg7XG4gICAgICAuZmEtYW5nbGUtbGVmdCAge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHdlZWstYnV0dG9uLWVkZ2UtcHVsbDtcbiAgICAgIH1cbiAgICAgIC5mYS1hbmdsZS1yaWdodCAge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICR3ZWVrLWJ1dHRvbi1lZGdlLXB1bGw7XG4gICAgICB9IFxuICAgIH0gICBcbiAgfVxuXG4gIC53ZWVrLWRheS1jb2x1bW4ge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZDtcbiAgICBtaW4td2lkdGg6IDE0MHB4O1xuXG4gICAgLmRheS1udW1iZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGZsZXgtc3RhcnQpO1xuICAgICAgY29sb3I6ICNhYWE7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBtYXJnaW46IDEwcHggMTVweDtcbiAgICB9XG5cbiAgICAud2Vlay1kYXktaW5mby1jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xuXG4gICAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNhYWE7XG4gICAgICB9XG5cbiAgICAgIC53ZWVrLWRheS1wcm9ncmFtIHtcbiAgICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgY29sb3I6ICNiYmI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgbWFyZ2luOiA0cHggMDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGdhcDogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3Rpb24ge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDtcbiAgICB9XG5cbiAgICAmLmN1cnJlbnQtZGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuICAgICAgLmRheS1udW1iZXIge1xuICAgICAgICBjb2xvcjogIzgwODA4MDtcbiAgICAgIH1cblxuICAgICAgLndlZWstZGF5LWluZm8tY29udGFpbmVyIHtcbiAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRibHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLndlZWstZGF5LXByb2dyYW0ge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAgICAgICAud2Vlay1kYXktcHJvZ3JhbS10aXRsZTpub3QoLmxpZ2h0LWdyZXktdGV4dCkge1xuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC53ZWVrLWRheS1wcm9ncmFtLW5hbWU6bm90KC5saWdodC1ncmV5LXRleHQpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjODg4ODg4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmNoYXJ0LW1lbnUge1xuICBtYXJnaW46IDUwcHggMCAzMHB4IDA7XG5cbiAgLmNoYXJ0LW1lbnUtaXRlbSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgQGluY2x1ZGUgbGFyZ2UtdGFicy1zdHlsZTtcbiAgICBjb2xvcjogI2EwYTRhODtcbiAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGJsdWU7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2EwYTRhODtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLmxpbmUtY2hhcnQge1xuICBtYXJnaW46IDI1cHggMCAwIDA7XG5cbiAgLmxpbmUtY2hhcnQtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzNTBweCk7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCg3MDBweCk7XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDI3NXB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNTUwcHgpO1xuICAgIH1cbiAgfVxuXG4gIC5saW5lLWNoYXJ0LW1lbnUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW46IDI1cHggMDtcbiAgfVxufVxuXG4ucHJvZ3JhbS1jaGFydCB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChmbGV4LXN0YXJ0KTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCg3MDBweCk7XG4gIG1hcmdpbjogMjVweCAwIDAgMDtcbiAgbWluLWhlaWdodDogMzUwcHg7XG5cbiAgLnByb2dyYW0tY29tcGxldGUge1xuICAgIG1hcmdpbjogNXB4IDE1cHg7XG5cbiAgICAucHJvZ3JhbS1pbmZvIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcblxuICAgICAgLnByb2dyYW0tdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAucHJvZ3JhbS1uYW1lIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmljb24ge1xuICAgICAgICBjb2xvcjogI2NkY2RjZDtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNhbnZhcyB7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICB3aWR0aDogMzEwcHg7XG4gICAgfVxuICB9XG59XG5cbi5zZWxlY3Rpb24tY29tcG9uZW50IHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEwMHB4KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgY29udGVudDogJz4nO1xuICAgIGZvbnQ6IDYwMCAxMnB4ICdDb25zb2xhcycsIG1vbm9zcGFjZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA2cHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgcGFkZGluZzogMCAwIDNweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xuICAgIHRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICByaWdodDogNnB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5jaGFydC1sZWdlbmQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbjogMCAyMHB4O1xuXG4gICYgPiAuZmEge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuXG4gICAgJi5hdmVyYWdlIHtcbiAgICAgIGNvbG9yOiByZ2JhKDIwNywgMjE4LCAyMjAsIDAuNSk7XG4gICAgfVxuXG4gICAgLy8gc2NvcmVNdWx0aXBsZUxpbmVDaGFydCwgd2hpY2ggaXMgd2hhdCB0ZWFtcmVwb3J0Lmh0bWwgcmVuZGVycywgc3RpbGxcbiAgICAvLyBkcmF3cyB0aGlzIGN5YW4gKFNjb3JlTXVsdGlwbGVMaW5lQ2hhcnQuanM6NjQpLlxuICAgICYuc2NvcmUge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMTgyLCAyMzUsIDAuOSk7XG4gICAgfVxuXG4gICAgLy8gc2NvcmVMaW5lQ2hhcnQgd2VudCB0byB0aGUgcmVkZXNpZ24gcHVycGxlLCBhbmQgdGhlIHR3byBkaXJlY3RpdmVzIHNoYXJlXG4gICAgLy8gdGhpcyBsZWdlbmQsIHNvIHRoZXkgbmVlZCBzZXBhcmF0ZSBrZXlzIHJhdGhlciB0aGFuIG9uZSByZXBhaW50ZWQgcnVsZS5cbiAgICAvLyBVc2VkIGJ5IHRlbXBsYXRlcy9jaGFydF8qX3Rlc3QuaHRtbDsgdGhlIHByb2dyZXNzIHJlcG9ydCdzIE92ZXJ2aWV3IGNhcmRcbiAgICAvLyBoYXMgaXRzIG93biAucHJvZ3Jlc3Mtb3ZlcnZpZXdfX2xlZ2VuZC1kb3QuXG4gICAgJi5zY29yZS1saW5lIHtcbiAgICAgIGNvbG9yOiByZ2JhKDE1MSwgMTA0LCAyMzUsIDAuOSk7XG4gICAgfVxuXG4gICAgJi50ZWFtLWF2ZXJhZ2Uge1xuICAgICAgY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC43NSk7XG4gICAgfVxuXG4gICAgJi5jb21wbGV0ZWQge1xuICAgICAgY29sb3I6IHJnYmEoMzIsIDE4MywgMTA1LCAwLjgpO1xuICAgIH1cblxuICAgICYuc2NoZWR1bGVkIHtcbiAgICAgIGNvbG9yOiByZ2JhKDIyMywgMjIzLCAyMjMsIDEpO1xuICAgIH1cbiAgfVxufVxuXG4uY2hhcnQtZGV0YWlscyB7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoMzAwcHgpO1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuXG4gIC5jaGFydC1kYXRlLWhlYWRlciAge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBpICB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBkaXNwbGF5OiBub25lOyAvLyBcInNoYXJlXCIgZmVhdHVyZSB3aWxsIGNvbWUgbGF0ZXIuLi5cbiAgICB9XG4gIH1cblxuICAuY2hhcnQtZGF0ZSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjJweCk7XG4gICAgY29sb3I6ICM3NTc3N0E7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5tYWluLXNjb3JlIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gIH1cblxuICAudmFsdWUtYmFkZ2Uge1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNnB4O1xuICB9XG5cbiAgLnZhbHVlLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgfVxuXG4gIC52YWx1ZS1sYXJnZSB7XG4gICAgZm9udC1zaXplOiA1NnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICB9XG5cbiAgLnZhbHVlLWNoYW5nZS1pY29uIHtcbiAgICAmLmZhLXNvcnQtYXNjIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuXG4gICAgJi5mYS1zb3J0LWRlc2Mge1xuICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICB9XG5cbiAgICAmLnVuY2hhbmdlZCB7XG4gICAgICBjb2xvcjogJGdyZXk7XG4gICAgfVxuXG4gICAgJi5pbmNyZWFzZSB7XG4gICAgICBjb2xvcjogJGdyZWVuO1xuICAgIH1cblxuICAgICYuZGVjcmVhc2Uge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuICB9XG5cbiAgLnZhbHVlLWNoYW5nZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcblxuICAgICYudW5jaGFuZ2VkIHtcbiAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICB9XG5cbiAgICAmLmluY3JlYXNlIHtcbiAgICAgIGNvbG9yOiAkZ3JlZW47XG4gICAgfVxuXG4gICAgJi5kZWNyZWFzZSB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICB9XG4gIH1cblxuICAuaW5mby1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuY2hhcnQtc3RhdHMtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG4gIFxuICAudGVzdC1yZXN1bHRzLWJ1dHRvbi1jb250YWluZXIge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogMTVweCAwcHg7XG4gIH1cblxuICAuY2hhcnQtc3RhdHMge1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgcGFkZGluZzogMTVweCAwO1xuXG4gICAgLm5hbWUge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgIC52YWx1ZSB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gICAgfVxuICB9XG5cbiAgLmNoYXJ0LXN0YXRzLWdyaWQge1xuICAgIC5jaGFydC1zdGF0cyB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMCA1MCUpO1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcblxuICAgICAgJjpudGgtY2hpbGQoLW4rMikge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBpZS1jaGFydC1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gIH1cblxuICAucGllLWNoYXJ0IHtcbiAgICBjb2xvcjogI2FhYTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICYgPiBkaXYge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAucGllLWNoYXJ0LWNhbnZhcyB7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg3MHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNzBweCk7XG4gICAgfVxuICB9XG5cbiAgLnJwZS1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAucmVkLXRleHQsIC5ncmVlbi10ZXh0IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIH1cblxuICAgIGRpdiArIGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB9XG4gIH1cblxuICAucHJvZ3JhbS13ZWVrIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIHBhZGRpbmc6IDE4cHggMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgfVxuXG4gIC50cm9waGllcyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcblxuXG4gICAgLnRyb3BoeS1pbWFnZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLXRvcDogLTEzcHg7XG4gICAgICAmLnRyb3BoeS1pbWFnZS0tYmFkZ2UgIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRyb3BoeS1pY29uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDI4cHgpO1xuICAgICAgbWFyZ2luLXRvcDogLTExcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgIGltZyAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudHJvcGh5LXBsYWNlIHtcbiAgICAgIC8vIEBpbmNsdWRlIGZsZXgoMCAxIGF1dG8pO1xuICAgICAgLy8gQGluY2x1ZGUgZmxleCgxKVxuICAgICAgcGFkZGluZzogMCA2cHg7XG4gICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICBmb250LXdlaWdodDogMTAwO1xuICAgIH1cblxuICAgIC50cm9waHktbmFtZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoMTUwcHgpO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEzcHg7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB9XG4gIH1cblxuICAubm8tZGV0YWlscyB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzAwcHgpO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuQG1peGluIGRheWNvbHdpZHRoICB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiBub25lO1xuICB3aWR0aDogMTAwLzcqMSU7XG59XG5cbi5ub3Rlcy1tZW51IHtcbiAgbWFyZ2luOiAxNXB4IDA7XG5cbiAgLm5vdGVzLW1lbnUtaXRlbSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgY29sb3I6ICNhMGE0YTg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibHVlO1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJjpub3QoLmFjdGl2ZSk6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNhMGE0YTg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLm5vdGVzLW1lbnUtaXRlbSArIC5ub3Rlcy1tZW51LWl0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICB9XG59XG5cbi5ub3Rlcy1jYWxlbmRhciB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDQ5MnB4KTtcblxuICAuY2FsZW5kYXItaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgICBtYXJnaW46IDFweCAxcHggMCAtMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgLmljb24ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC53ZWVrLWRheS1sYWJlbHMge1xuICAgIG1hcmdpbjogMCAxcHggMCAwO1xuICAgID4gZGl2IHtcbiAgICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoNjBweCk7XG4gICAgICBAaW5jbHVkZSBkYXljb2x3aWR0aDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3c7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC5jYWxlbmRhci1kYXlzIHtcbiAgICBtYXJnaW46IDAgMXB4IDVweCAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgLmNhbGVuZGFyLWRheSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIC8vIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM4cHgpO1xuICAgICAgLy8gQGluY2x1ZGUgbG9jay13aWR0aCg2MHB4KTtcbiAgICAgIEBpbmNsdWRlIGRheWNvbHdpZHRoO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDYycHg7XG4gICAgICBtYXJnaW46IC0xcHggMHB4IDBweCAtMXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NkY2RjZDtcblxuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiAjY2RjZGNkO1xuICAgICAgJi5jdXJyZW50LWRheSAge1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vICYuZW1wdHkgeyAgICAgICAgXG4gICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgICAvLyB9XG5cbiAgICAgICAmLmRheS1hY3Rpdml0aWVzIHtcbiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDhiMDA7XG4gICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgLy9ib3JkZXItY29sb3I6ICNjMmQ0NzQ7XG4gICAgICAgICAvL2NvbG9yOiAjZWZlZmVmO1xuICAgICAgICAgLy9jdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAvLyY6aG92ZXIge1xuICAgICAgICAgLy8gIGJhY2tncm91bmQtY29sb3I6ICNjMmQ0NzQ7XG4gICAgICAgICAvLyAgY29sb3I6ICNmZmY7XG4gICAgICAgICAvL31cbiAgICAgICB9XG5cbiAgICAgIC8vICYuY3VycmVudC1kYXkge1xuICAgICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJkNDc0O1xuICAgICAgLy8gICBib3JkZXItYm90dG9tOiA0cHggc29saWQgIzU0N2I0MjtcbiAgICAgIC8vICAgY29sb3I6ICNmZmY7XG4gICAgICAvLyB9XG5cbiAgICAgICY6bm90KC5lbXB0eSk6bm90KC5kYXktYWN0aXZpdGllcykge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1kYXktbnVtYmVyIHtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYmMtc2VjdGlvbiwgLnRsLXNlY3Rpb24sIC5zb2FwLXNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4uc29hcC1sYWJlbCB7XG4gICYuZmllbGRzLWhlYWRlci5oaWdoLWxldmVsLWZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgfVxufVxuXG4uYmMtYm9keWZhdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgd2lkdGg6IDgwcHg7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJSc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA2MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjb2xvcjogI2JiYjtcbiAgfVxufVxuXG4uYmMtYWxlcnQge1xuICB3aWR0aDogNzUlO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4udGwtdG90YWwtbG9hZCB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgd2lkdGg6IDcwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjZGNkY2Q7XG4gICAgY29sb3I6ICRibHVlO1xuICB9XG59XG5cbi5iYy1lbnRyeS1oZWFkZXIsIC5iYy1lbnRyeSB7XG4gID4gLmZpZWxkLWxhYmVsICsgLmZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTY4cHgpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5iYy1pbnB1dCB7IFxuICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgbWF4LXdpZHRoOiAxNjBweDtcbiAgfVxuXG4gIC5iYy1maWxsZXIge1xuICAgIG1pbi13aWR0aDogMTBweDtcbiAgICBtYXgtd2lkdGg6IDEwcHg7XG4gIH1cbn1cblxuLmJjLWZpbGxlci1yZXNwIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU2OHB4KSB7XG4gICAgbWluLXdpZHRoOiAwIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwIWltcG9ydGFudDtcbiAgfVxufVxuXG4udGwtZW50cnktaGVhZGVyLCAudGwtZW50cnkge1xuICA+IC5maWVsZC1sYWJlbCArIC5maWVsZC1sYWJlbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIH1cblxuICAudGwtc2VsZWN0IHtcbiAgICBtaW4td2lkdGg6IDIxNXB4O1xuICAgIG1heC13aWR0aDogMjE1cHg7XG4gIH1cblxuICAudGwtaW5wdXQgeyBcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIG1heC13aWR0aDogMTAwcHg7XG4gIH1cblxuICAudGwtZmlsbGVyIHtcbiAgICBtaW4td2lkdGg6IDEwcHg7XG4gICAgbWF4LXdpZHRoOiAxMHB4O1xuICB9XG59XG5cbi5yZXNwLW5vdGVzLWNvbHVtbiB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uYmMtZW50cnkge1xuICAuYmMtaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgPiAuYmFzaWMtaW5wdXQuc21hbGwge1xuICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgICBwYWRkaW5nOiAwIDI4cHggMCAxM3B4OyBcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG4gIC5iYy1pbnB1dC1iZiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDAhaW1wb3J0YW50O1xuXG4gICAgPiAuYmFzaWMtaW5wdXQuc21hbGwge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICAgIHBhZGRpbmc6IDAgMjhweCAwIDEzcHg7IFxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cblxuICAuYmMtdW5pdCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0zNHB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICBjb2xvcjogI2JiYjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5iYy11bml0LWJmIHtcbiAgICBtYXJnaW4tbGVmdDogLTI0cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAjYmJiO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLnRsLWVudHJ5IHtcbiAgLnRsLXNlbGVjdC1pbnB1dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkOGQ4ZDg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBhZGRpbmc6IDVweCAxM3B4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgIC5zZWxlY3QtdG9nZ2xlIHtcbiAgICAgIG1pbi13aWR0aDogMTg1cHg7XG4gICAgICBtYXgtd2lkdGg6IDE4NXB4O1xuXG4gICAgICBpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDE0cHg7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAub3B0aW9ucyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDM3cHg7XG4gICAgICBsZWZ0OiAwcHg7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgICAgIG1pbi13aWR0aDogMjIwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiAxODBweDtcbiAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgICAgbWluLWhlaWdodDogMjhweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAudGwtaW5wdXQgeyBcbiAgICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuICB9XG5cbiAgLnRsLWNhbGN1bGF0ZWQtbG9hZCB7XG4gICAgPiAuYmFzaWMtaW5wdXQuc21hbGwge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2RjZGNkO1xuICAgIH1cbiAgfVxuXG4gIC50bC1kZWxldGUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi5iYy1mcmVlLWZvcm0sIC50bC1mcmVlLWZvcm0ge1xuICB3aWR0aDogNzUlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5zb2FwLWRhdGUge1xuICA+ICoge1xuICAgIHdpZHRoOiAxNzBweDtcbiAgfVxuXG4gIC5kYXRlLWlucHV0ID4gLmlucHV0LWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgbWluLWhlaWdodDogMzVweDtcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgbWF4LXdpZHRoOiA0MHB4O1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuXG4uc29hcC10ZXh0LWNvbnRhaW5lciB7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbn1cblxuLnNvYXAtdHJlYXRtZW50cyB7XG4gIC5jaGVja2JveC1pbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICB9XG5cbiAgLnNvYXAtdHJlYXRtZW50LW9wdGlvbnMge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAuY2hlY2tib3gtaW5wdXQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cbiAgfVxuXG4gIC5zb2FwLXRyZWF0bWVudC10ZXh0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XG4gICAgLmJhc2ljLWlucHV0IHtcbiAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG4gIH1cbn1cblxuLnNvYXAtb2JqZWN0aXZlIHtcbiAgJi5maWVsZCBkaXYgdGV4dGFyZWEge1xuICAgIGhlaWdodDogODVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG59XG5cbi5mYS1ub3RlcyB7XG4gICAgbWFyZ2luOiAtMTBweCAwcHggMHB4IDEycHg7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGZvbnQtc2l6ZTogN3B4O1xufVxuXG4ucmVzcC1mb3JtLXBvc3QtYnV0dG9ucyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1NjhweCkge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgbWFyZ2luOiAyMHB4IDAgNjBweCAwIWltcG9ydGFudDtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICA+IGJ1dHRvbiB7XG4gICAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi50b29sdGlwSGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLnRvb2x0aXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1pbi13aWR0aDogMzAwcHg7XG5cdG1heC13aWR0aDogMzYwcHg7XG5cdHdpZHRoOiBtYXgtY29udGVudDtcbiAgd2lkdGg6IC13ZWJraXQtbWF4LWNvbnRlbnQ7XG5cdG1pbi1oZWlnaHQ6IDcycHg7XG5cdHRvcDogLTEzMCU7XG5cdGxlZnQ6IDY1cHg7XG5cdHotaW5kZXg6IDEwO1xuXHRib3JkZXItcmFkaXVzOiA2cHg7XG5cdHBhZGRpbmc6IDIwcHggMjVweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LWZhbWlseTogTnVkaXN0YS13ZWI7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYig0Niw0Niw0Nik7XG5cdGNvbG9yOiB3aGl0ZTtcblx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGxldHRlci1zcGFjaW5nOiAuMzVweDtcblxuXHQudHRDb250ZW50IHtcblx0XHRjb2xvcjogIzkyOTM5Mjtcblx0XHRmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHR9O1xuXG5cdC50dFRpdGxlIHtcblx0XHRoZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdH07XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdHBhZGRpbmc6IDE1cHggMThweDtcblx0fVxufVxuXG4udG9vbHRpcC1yaWdodCB7IC8vIHJpZ2h0IGlzIHRoZSBkZWZhdWx0XG5cdEBleHRlbmQgLnRvb2x0aXA7XG59XG5cbi50b29sdGlwLWJvdHRvbSB7XG5cdEBleHRlbmQgLnRvb2x0aXA7XG5cdHRvcDogNTVweDtcblx0bGVmdDogLTEyNXB4O1xufVxuXG4udG9vbHRpcC1sZWZ0IHtcblx0QGV4dGVuZCAudG9vbHRpcDtcblx0bGVmdDogaW5oZXJpdDtcblx0cmlnaHQ6IDQ1cHg7XG59XG5cbi50b29sdGlwOmFmdGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAtMjBweDtcblx0dG9wOiAxNXB4O1xuXHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHJnYig0Niw0Niw0Nik7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMjBweCAyMHB4IDIwcHggMHB4O1xuXHRoZWlnaHQ6IDBweDtcblx0d2lkdGg6IDBweDtcblx0Y29udGVudDogXCIgXCI7XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4udG9vbHRpcC1yaWdodDphZnRlciB7XG5cdEBleHRlbmQgLnRvb2x0aXAsIDphZnRlcjtcbn1cblxuLnRvb2x0aXAtYm90dG9tOmFmdGVyIHtcblx0QGV4dGVuZCAudG9vbHRpcCwgOmFmdGVyO1xuXHRsZWZ0OiAxMzBweDtcblx0dG9wOiAtMjBweDtcblx0Ym9yZGVyLWNvbG9yOiByZ2IoNDYsNDYsNDYpIHRyYW5zcGFyZW50O1xuXHRib3JkZXItd2lkdGg6IDBweCAyMHB4IDIwcHggMjBweDtcbn1cblxuLnRvb2x0aXAtbGVmdDphZnRlciB7XG5cdEBleHRlbmQgLnRvb2x0aXAsIDphZnRlcjtcblx0bGVmdDogaW5oZXJpdDtcblx0cmlnaHQ6IC0yMHB4O1xuXHRib3JkZXItd2lkdGg6IDIwcHggMHB4IDIwcHggMjBweDtcbn1cblxuLnRvb2x0aXBDbG9zZSB7XG5cdGZsb2F0OiByaWdodDtcblx0cGFkZGluZzogMHB4IDEwcHggM3B4IDBweDtcblx0Y29sb3I6IGxpZ2h0Ymx1ZTtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRmb250LXNpemU6IDI0cHg7XG59XG5cbkBtaXhpbiBjaGFydC10b29sdGlwLWNhcmV0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMHB4O1xuXHRoZWlnaHQ6IDBweDtcblx0bWFyZ2luOiBhdXRvO1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRjb250ZW50OiAnJztcbn1cblxuLmNoYXJ0LXRvb2x0aXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1pbi13aWR0aDogMjU1cHg7XG5cdG1heC13aWR0aDogMzAwcHg7XG5cdG1pbi1oZWlnaHQ6IDEwMHB4O1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xuXHR6LWluZGV4OiAxO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdC5oZWFkZXIge1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGNvbG9yOiAjZWZlZmVmO1xuXHR9XG5cblx0LmNvbnRlbnQge1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRtYXJnaW4tdG9wOiA2cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXG5cdFx0PiBkaXYge1xuXHRcdFx0QGluY2x1ZGUgZmxleC1yb3coKTtcblx0XHRcdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0XHRcdG1pbi1oZWlnaHQ6IDIwcHg7XG5cdFx0XHRtYXgtaGVpZ2h0OiAyMHB4O1xuXG5cdFx0XHQ+IGkgeyBtaW4td2lkdGg6IDE2cHg7IH1cblx0XHRcdD4gZGl2IHsgbWFyZ2luLWxlZnQ6IDZweDsgfVxuXG5cdFx0XHQmLmNvbXBsZXRlZCB7IGNvbG9yOiAjMTY4ODRlOyB9XG5cdFx0fVxuXHR9XG5cblx0Ji5oaWRkZW4ge1xuXHRcdHZpc2libGl0eTogaGlkZGVuO1xuXHR9XG5cblx0Ji5ib3R0b206YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMmUyZTJlIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMTBweCAxMHB4IDAgMTBweDtcblx0fVxuXG5cdCYuYm90dG9tLWxlZnQ6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0bGVmdDogMTBweDtcblx0XHRib3R0b206IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMmUyZTJlIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMTBweCAxMHB4IDAgMTBweDtcblx0fVxuXG5cdCYuYm90dG9tLXJpZ2h0OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBjaGFydC10b29sdGlwLWNhcmV0O1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHRcdGJvdHRvbTogLThweDtcblx0XHRib3JkZXItY29sb3I6ICMyZTJlMmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMCAxMHB4O1xuXHR9XG5cblx0Ji50b3A6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMmUyZTJlIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMCAxMHB4IDEwcHggMTBweDtcblx0fVxuXG5cdCYudG9wLWxlZnQ6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0bGVmdDogMTBweDtcblx0XHR0b3A6IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMmUyZTJlIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci13aWR0aDogMCAxMHB4IDEwcHggMTBweDtcblx0fVxuXG5cdCYudG9wLXJpZ2h0OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBjaGFydC10b29sdGlwLWNhcmV0O1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHRcdHRvcDogLThweDtcblx0XHRib3JkZXItY29sb3I6ICMyZTJlMmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIDEwcHggMTBweCAxMHB4O1xuXHR9XG5cblx0Ji5sZWZ0OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBjaGFydC10b29sdGlwLWNhcmV0O1xuXHRcdHRvcDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogLThweDtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMyZTJlMmU7XG5cdFx0Ym9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMTBweCAwO1xuXHR9XG5cblx0Ji5yaWdodDphZnRlciB7XG5cdFx0QGluY2x1ZGUgY2hhcnQtdG9vbHRpcC1jYXJldDtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHJpZ2h0OiAtOHB4O1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzJlMmUyZTtcblx0XHRib3JkZXItd2lkdGg6IDEwcHggMCAxMHB4IDEwcHg7XG5cdH1cbn1cblxuLmZhIHsgLy8gdGhpcyBmb250IGF3ZXNvbWUgc3R5bGUgKHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkpIGlzIGJyZWFraW5nIHotaW5kZXggYmVoYXZpb3IgYW5kIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGFueSB2aXN1YWwgZWZmZWN0LiAgU28gSSdtIHR1cm5pbmcgaXQgb2ZmLlxuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLnVwbG9hZC1jb250YWluZXIge1xuICAudXBsb2FkLXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDIwMHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDQwMHB4KTtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgI2RkZDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgY29sb3I6ICNiYmI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgID4gLnVwbG9hZC1tZXNzYWdlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgPiAudXBsb2FkLXByZXZpZXcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgfVxuICB9XG5cbiAgPiBpbnB1dFt0eXBlPSdmaWxlJ10ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH0gIFxufVxuXG5kaXYuaW1hZ2UtY29udHJvbFxue1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCgyODBweCk7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIC5pbWFnZS1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gIH1cbiAgLnNpbGVudC1maWxlLWlucHV0IHtcbiAgICB3aWR0aDogMjQwcHg7XG4gIH0gICAgICAgICAgICAgICAgXG59XG5cbi5pbWFnZS1idXR0b25zIHtcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgyNXB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDg1cHgpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxufVxuXG4uYWN0aXZlLXVwbG9hZCB7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoMzUwcHgpO1xuICBcbiAgLmZpbGUtaW5mbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLmZpbGUtaW5mby1zaXplIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gIH1cblxuICAucHJvZ3Jlc3MtYmFyLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMThweCk7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWRlZGU7XG5cbiAgICA+IC5wcm9ncmVzcy1iYXIge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMThweCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogI2VmZWZlZjtcbiAgICAgIHRleHQtaW5kZW50OiA2cHg7XG5cbiAgICAgICYuc3VjY2VzcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgfVxuXG4gICAgICAmLmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FmMGEyZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVzc2FnZSB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxufSIsIi5leGVyY2lzZV9jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4KDEgMCA0MDBweCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmV4ZXJjaXNlX25hdiB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIDQwMHB4KTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCg0MDBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcblxuICAuc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JiYjtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYmJiO1xuXG4gICAgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgaGVpZ2h0OiA0OXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICB0ZXh0LWluZGVudDogMTVweDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgYnV0dG9uW3R5cGU9J3Jlc2V0J10ge1xuICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNjBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBtYXJnaW46IDAgMTBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgfVxuXG4gICAgYnV0dG9uW3R5cGU9J3N1Ym1pdCddIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDMwcHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICB9XG5cbiAgICBpLmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGNvbG9yOiAjYmJiO1xuICAgIH1cbiAgfVxuXG4gIC5hZGQge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNiYmI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiYmI7XG4gICAgcGFkZGluZzogMTBweDtcblxuICAgIGkuZmEge1xuICAgICAgQGluY2x1ZGUgZmxleCguMSk7XG4gICAgfVxuXG4gICAgc3Ryb25nIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoLjk3NSk7XG4gICAgfVxuICB9XG5cbiAgLmxpc3Qge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNiYmI7XG4gICAgbWluLWhlaWdodDogMTBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgJiA+IGRpdjpub3QoLmZpbGxlcikge1xuICAgICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JiYjtcblxuICAgICAgLmRldGFpbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cbiAgICAgICAgLnZpZXctZGV0YWlsIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICAgICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG5cbiAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgNnB4O1xuXG4gICAgICAgICAgICAmLmluYWN0aXZlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJvZHktc2lkZXMge1xuICAgICAgICAgIG1hcmdpbjogMjBweCAwO1xuXG4gICAgICAgICAgJiA+IGRpdiBsYWJlbCBzcGFuIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOXB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYgPiBkaXYgKyBkaXYge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5oaWRkZW4ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gZGl2LmZpbGxlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSAxMDAlKTtcbiAgICB9XG4gIH1cblxuICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIC5saXN0IHtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLmV4ZXJjaXNlX3NlbGVjdCB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIDMwMHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC5saXN0IHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICBtaW4taGVpZ2h0OiAxMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAmID4gZGl2Om5vdCguZmlsbGVyKSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuXG4gICAgICAuZXhlcmNpc2UtaXRlbSB7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICB9XG4gICAgICAgIC5uYW1lIHtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNpcmNsZWQtaWNvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwIDEycHg7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZGV0YWlsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcblxuICAgICAgICAudmlldy1kZXRhaWwge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgICAgcGFkZGluZzogNHB4IDhweDtcblxuICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XG5cbiAgICAgICAgICAgICYuaW5hY3RpdmUge1xuICAgICAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm9keS1zaWRlcyB7XG4gICAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICAgICAgICAmID4gZGl2IGxhYmVsIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJiA+IGRpdiArIGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYgPiBkaXYuZmlsbGVyIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIDEwMCUpO1xuICAgIH1cbiAgfVxuXG4gIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gICAgLmxpc3Qge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4uZmlsdGVycyB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDEwMHB4KTtcblxuICA+IGZ1c2lvbi1kcm9wLWRvd24sXG4gID4gZnVzaW9uLW9yZGVyZWQtZHJvcC1kb3duLFxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgNTAlKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAvKioqKiogTk9URSAqKioqKipcbiAgICBzaW5jZSB0aGUgaGVpZ2h0IGlzIGJlaW5nIHJlY2FsY3VsYXRlZFxuICAgIG9ubHkgc2V0IHRoZSBtaW4taGVpZ2h0XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gICAgKioqKiogRUJEIE5PVEUgKioqKioqL1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmJiO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNiYmI7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cbiAgICAuc2VsZWN0LXRvZ2dsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG4gICAgICAgIGkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoLjkpO1xuICAgICAgfVxuXG4gICAgICBpLmZhIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCguMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm9wdGlvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MHB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIGJvcmRlci1jb2xvcjogIzk5OTtcbiAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCAjOTk5O1xuICAgICAgbWF4LWhlaWdodDogMjE1cHg7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICB6LWluZGV4OiAzO1xuXG4gICAgICAmID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gZnVzaW9uLWRyb3AtZG93biA+IGRpdixcbiAgPiBmdXNpb24tb3JkZXJlZC1kcm9wLWRvd24gPiBkaXYge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ4cHgpO1xuICB9XG5cbiAgPiBmdXNpb24tZHJvcC1kb3duLnJlcXVpcmVkLFxuICA+IGZ1c2lvbi1vcmRlcmVkLWRyb3AtZG93bi5yZXF1aXJlZCB7XG4gICAgLnNlbGVjdC10b2dnbGUgPiBzcGFuIHtcbiAgICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgIH1cbiAgfVxufVxuXG4uZXhlcmNpc2UtaXRlbSB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIG1hcmdpbjogMTBweDtcblxuICAuaWNvbiB7XG4gICAgQGluY2x1ZGUgZmxleCguMSk7XG5cbiAgICAmLnRvZ2dsZSB7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzBweCk7XG4gICAgICBmb250LXNpemU6IDZweDtcblxuICAgICAgJi5kb3duIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgICB9XG5cbiAgICAgICYucmlnaHQge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmFtZSB7XG4gICAgQGluY2x1ZGUgZmxleCguOSk7XG5cbiAgICAubm8td3JhcC1lbGxpcHNlIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgJi5hY3RpdmUtaXRlbSB7XG4gICAgei1pbmRleDogMTtcblxuICAgIC5pY29uIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAmLmRyYWdnaW5nLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDY1cHgpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xLCAxLjEpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyICFpbXBvcnRhbnQ7XG5cbiAgICAuaWNvbiB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG59XG5cbi5uby1tYXRjaCB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luOiAxMHB4O1xufVxuXG4vKiBtb2RhbCBqdW5rICovXG4ubW9kYWwtY29udGFpbmVyIHtcbiAgJi5tb2RhbC1leGVyY2lzZS1kZXRhaWwge1xuICAgIGhlYWRlciB7XG4gICAgICAvKiBAaW5jbHVkZSBsb2NrLWhlaWdodCg3NXB4KTsgKi9cbiAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9vdGVyIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDc1cHgpO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIHNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1pbi13aWR0aDogNjAwcHg7XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgIH1cblxuICAgICAgJi52aWRlby12aWV3IHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgbWluLXdpZHRoOiA2MDBweDtcbiAgICAgIH1cblxuICAgICAgJi5pbWFnZS12aWV3IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgICAgICA+IGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgICBtaW4td2lkdGg6IDM2MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1pc3NpbmctbWVkaWEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgICAgY29sb3I6ICNkZWRlZGU7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgIH1cbiAgfVxuXG4gICYubW9kYWwtZXhlcmNpc2UtZm9ybSB7XG4gICAgaGVhZGVyIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9vdGVyIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDc1cHgpO1xuICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAmLnNtYWxsZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSBsYWJlbCBidXR0b25bdHlwZT0ncmVzZXQnXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGhlaWdodDogMzNweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgICAgbWFyZ2luOiAwcHggMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWluLXdpZHRoOiA2MDBweDtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgfVxuXG4gICAgICAuZmlsdGVycyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICAmID4gc3BhbiB7XG4gICAgICAgIG1hcmdpbjogMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICYubW9kYWwtZXJyb3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIzMHB4O1xuICAgICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZXh0YXJlYSB7XG4gICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDQwcHggMTBweCAwO1xuICAgICAgICBoZWlnaHQ6IDE0MHB4O1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcblxuICAgICAgICAmLmxhcmdlIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgfVxuICAgICAgICAmLmxhcmdlciB7XG4gICAgICAgICAgbWluLWhlaWdodDogNDUwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmJiO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgNTAlKTtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIG1hcmdpbjogMXB4O1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIHRleHQtaW5kZW50OiAxMHB4O1xuXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYgKyBpLmZhIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuc2luZ2xlLWxpbmUtZm9ybS1maWVsZHMgbGFiZWwgLmJvZHktc2lkZXMge1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGRpdiArIGRpdiB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5zaW5nbGUtbGluZS1mb3JtLWZpZWxkcyAuZXZlbi1jb2xzIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICAgID4gc2VsZWN0IHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDQwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBjb2xvcjogIzc1Nzc3YTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCArIGxhYmVsIHtcbiAgICAgICAgICA+IHNlbGVjdCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLndlZWstc2VsZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAjYTBhNGE4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6ICM3NTc3N2E7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJsdWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiBkcmFnLW4tZHJvcCBqdW5rICovXG4vKiBzaG91bGQgYmUgbW92ZWQgdG8gb3duIGZpbGUgKGNsZWFybHkpICovXG4uZHJhZy1oaWRkZW4ge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59O1xuXG4uZHJhZy1tb3ZlLXNjcm9sbC1hbmNob3Ige1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1NSwgMTU1LCAxNTUsIC4yNzUpO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDE7XG5cbiAgJi50b3Age1xuICAgIHRvcDogMDtcbiAgfVxuXG4gICYuYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gIH1cbn07XG5cbi5kcm9wLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kcm9wLXRhcmdldCB7XG5cbiAgJjpub3QoLmRyb3AtZW1wdHkpIHtcbiAgICBib3JkZXI6IDJweCBkYXNoZWQgI2NkZDNkNztcbiAgfVxuXG4gICYuZHJvcC10YXJnZXQtb3ZlciB7XG4gICAgJjpub3QoLmFkZC1zZWN0aW9uKSB7XG4gICAgICBib3JkZXI6IDJweCBkYXNoZWQgIzRjYmIxNyAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYuYWRkLXNlY3Rpb24gPiBkaXYge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjNGNiYjE3ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmFkZC1leGVyY2lzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4uZHJhZ2dpbmctZWxlbWVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAycHggc29saWQgIzg4ODtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjkwLCAwLjkwKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlciAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIucmVzcC1wcm9ncmFtLW1lbnUge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAuY2F0YWxvZ19jb250YWluZXIgPiBkaXYge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgICAub3BlbmVkLWNvbnRhaW5lcixcbiAgICAuY2xvc2VkLWNvbnRhaW5lciB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG4gICAgLmNhdGFsb2ctYmFubmVyLFxuICAgIC5jYXRhbG9nLXNlYXJjaCxcbiAgICAuY2F0YWxvZ19uYXZfd3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC5jYXRhbG9nX2NvbnRhaW5lciB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgfVxuICAgIHVsLmNhdGFsb2dfbmF2IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbi5jYXRhbG9nX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIDM1MHB4KTtcbiAgbWluLWhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA+IGRpdi5jYXRhbG9nLXNjcm9sbGFibGUge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICA+IGRpdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgPiBkaXYge1xuICAgICAgJi5vcGVuZWQtY29udGFpbmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAmLmNsb3NlZC1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMSA1MnB4KTtcbiAgICAgICAgbWF4LWhlaWdodDogNTJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNhdGFsb2ctYmFubmVyIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlYmViZWI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzY4RUI7XG4gIG1hcmdpbjogMXB4IDA7XG5cbiAgaS5jaXJjbGVkLWljb24ge1xuICAgIG1hcmdpbjogMCAxNXB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRibHVlO1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgfVxuXG4gIHNwYW4ge1xuICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuXG4uY2F0YWxvZy1zZWFyY2gge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ViZWJlYjtcbiAgXG4gIGZvcm0ge1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcblxuICAgIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgaGVpZ2h0OiA0OXB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzlweDtcbiAgICAgIHRleHQtaW5kZW50OiAxNXB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICBidXR0b25bdHlwZT0ncmVzZXQnXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGhlaWdodDogMzNweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzM3B4O1xuICAgICAgbWFyZ2luOiAwcHggMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jYXRhbG9nX25hdl93cmFwcGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2F0YWxvZ19uYXYge1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDM1MHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWJlYmViO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG5cbiAgLmNhdGVnb3J5LWljb24ge1xuICAgIG1hcmdpbjogMCAxOHB4O1xuICAgIG1pbi13aWR0aDogMjBweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cblxuICAuYWRkLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW46IDAgMTVweDtcbiAgICBtaW4td2lkdGg6IDEycHg7XG4gIH1cbn1cblxudWwuY2F0YWxvZ19uYXYge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbGkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIH1cblxuICAgIC5jYXRlZ29yeS1zdGF0ZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbWFyZ2luOiAwIDIwcHg7XG4gICAgICBtaW4td2lkdGg6IDEycHg7XG4gICAgfVxuXG4gICAgLmNhdGVnb3J5LW9wZW4ge1xuICAgICAgLmNhdGVnb3J5LXN0YXRlOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlNjIwXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhdGVnb3J5LWNsb3NlIHtcbiAgICAgIC5jYXRlZ29yeS1zdGF0ZTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcZTYyZlwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxpLmV4ZXJjaXNlLXRlY2huaXF1ZSB7XG4gICAgPiBzcGFuIHtcbiAgICAgIHRleHQtaW5kZW50OiAyMHB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgID4gdWwge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgbGkge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBtaW4taGVpZ2h0OiAyNHB4O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMjRweDtcbiAgICAgICAgICB0ZXh0LWluZGVudDogMzBweDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxpID4gdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEwcHggMCAwIDA7XG5cbiAgICBsaSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDMwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgID4gdWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgdGV4dC1pbmRlbnQ6IDUwcHg7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5sb2dpbi1jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuXG4gIC5sb2dpbi1tb2RhbCB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNDc2cHgpO1xuICAgIFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0ZDRkM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VmZWZlZjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZzogNDdweCAwIDIycHg7XG5cbiAgICA+IGltZyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTtcbiAgICB9XG5cbiAgICAubG9naW4tYmFubmVyIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICBtYXJnaW46IDI4cHggMTVweCAzMHB4O1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cblxuICAgIC5sb2dpbi1mb3JtIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7ICAgICAgXG5cbiAgICAgIC8vID4gaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgLy8gICBmb250LXdlaWdodDogMjAwO1xuICAgICAgLy8gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAvLyB9XG5cbiAgICAgIC8vID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgLy8gICBmb250LXdlaWdodDogMjAwO1xuICAgICAgLy8gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAvLyB9XG5cbiAgICAgID4gaW5wdXQ6Oi1tcy1jbGVhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgID4gaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MXB4KTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIgIHtcbiAgICAgICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICBcbiAgICAgICAgICBvcGFjaXR5OiAxOyAgXG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4OyAgICAgXG4gICAgICAgIH1cbiAgICAgICAgKyBpbnB1dCAge1xuICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmxvZ2luLWJ1dHRvbnMge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1ldmVubHkpO1xuICAgICAgICBtYXJnaW46IDBweCAzMHB4O1xuICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGNlbnRlcik7XG4gICAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTdweCk7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgXG4gICAgfVxuXG4gICAgLnJlc2V0LWZvcm0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTsgICAgICBcblxuICAgICAgPiBpbnB1dDo6LW1zLWNsZWFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgPiBpbnB1dCB7XG4gICAgICAgIG1hcmdpbjogMjhweCAwIDA7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUxcHgpO1xuXG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciAge1xuICAgICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgICAgIFxuICAgICAgICAgIG9wYWNpdHk6IDE7ICAgICAgIFxuICAgICAgICB9XG4gICAgICAgICsgaW5wdXQgIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zZWNvbmRQYXNzd29yZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDA7XG4gICAgICB9XG5cbiAgICAgIC5idXR0b24tY29sbGVjdGlvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGNlbnRlcik7XG4gICAgICAgICAgbWFyZ2luOiAyOHB4IDAgMDtcbiAgICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1N3B4KTtcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVzc2FnZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIC8vIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICAgICAgbWFyZ2luOiAxMXB4IDE1cHg7IC8vIHdoZW4gYSBtZXNzYWdlIGlzIGhlcmUgaXMgc2hvdWxkIGJlIHZlcml0Y2FsbHkgc3BhY2VkIGEgYml0XG4gICAgfVxuXG4gICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNzBweCk7XG4gICAgICBtYXJnaW46IDExcHggMTVweDsgLy8gd2hlbiBhIG1lc3NhZ2UgaXMgaGVyZSBpcyBzaG91bGQgYmUgdmVyaXRjYWxseSBzcGFjZWQgYSBiaXRcbiAgICB9XG5cbiAgICAubG9naW4tbGluayB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgICAgZm9udC1zaXplOiAxMnB4O1xuXG4gICAgICA+IGEge1xuICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgd29yZC1zcGFjaW5nOiAycHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4ubG9naW5SZW1lbWJlck1lICB7XG4gIG1hcmdpbjogMjhweCAwIDA7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihjZW50ZXIpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLmNoZWNrYm94LWlucHV0ICB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGkgIHtcbiAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICB9XG4gICAgc3BhbiAge1xuICAgICAgY29sb3I6ICM3NTc3N0E7XG4gICAgfSBcbiAgfSAgXG59XG4ubG9naW5Gb3Jnb3RQYXNzTGluayAge1xuICBtYXJnaW46IDMxcHggMCAwO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTsgXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICNBQUIwQjc7XG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYSAge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIlxuLm1vZGFsLWNvbnRhaW5lciBzZWN0aW9uLnByb2ZpbGUtZm9ybSB7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICBtYXJnaW46IDEwcHg7XG4gIG1pbi13aWR0aDogNDAwcHg7XG4gIFxuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgIG1hcmdpbjogNXB4IDlweDtcbiAgICBtYXgtd2lkdGg6IDMyNXB4O1xuXG4gICAgc3BhbiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufSIsIi5tb2RhbC1jb250YWluZXIge1xuXG4gICYubW9kYWwtYXRobGV0ZS1mb3JtIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogNzQwcHg7XG5cbiAgICBoZWFkZXIge1xuICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb290ZXIge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNzVweCk7XG4gICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICYuc21hbGxlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoc3RyZXRjaCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtaW4td2lkdGg6IDYwMHB4O1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgIH1cblxuICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIH1cblxuICAgICAgZGl2LnNlY3Rpb24tbGFiZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICBkaXYub3B0aW9ucy1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgfVxuICAgICAgZGl2Lm9wdGlvbi1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDM1cHg7XG4gICAgICAgIGRpdi5vcHRpb24tbGFiZWwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDExNXB4KTtcbiAgICAgICAgfVxuICAgICAgICBkaXYuY2hvaWNlcy1jb250YWluZXIge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgLnJhZGlvLWlucHV0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gVGhlIGZvcm0ncyBzZWxlY3Qgc3R5bGluZyAoYW5kIGl0cyBjYXJldCkgaXMgc2NvcGVkIHRvIHNlY3Rpb24gbGFiZWwsXG4gICAgICAgICAgLy8gc28gdGhlIHJlZ2lzdHJhdGlvbiB0ZXN0IHBpY2tlciBjYXJyaWVzIGl0cyBvd24gaW5zaWRlIHRoaXMgb3B0aW9ucyBibG9jay5cbiAgICAgICAgICAuc2VsZWN0LWlucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgICBtaW4td2lkdGg6IDE2MHB4O1xuICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwIDI4cHggMCAxMHB4O1xuXG4gICAgICAgICAgICAgICY6Oi1tcy1leHBhbmQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkuaWNvbi1jYXJldC1kb3duIHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAjRDlEQkRDO1xuICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnJvdy1jb250YWluZXJcbiAgICAgIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgfVxuICAgICAgICAmIC5zcGFjZS1iZXR3ZWVuIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmID4gc3BhbiB7XG4gICAgICAgIG1hcmdpbjogMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICYubW9kYWwtZXJyb3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIzMHB4O1xuICAgICAgICAgICAgY29sb3I6IHJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZG9iLWZpZWxkIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDQwcHg7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgMCUpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI1cHg7XG5cbiAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZlZXQtZmllbGQge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoLjYgMSAwJSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmluY2hlcy1maWVsZCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCguMzk1IDEgMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgICAgICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoMTIwcHgpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zMnB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7ICAgICAgICAgIFxuICAgICAgICB9XG5cbiAgICAgICAgLmludmFsaWQtaW5wdXQge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC52YWxpZGF0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgLnZhbGlkYXRpb24tbWVzc2FnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIHRvcDogNTVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDYsNDYsNDYpO1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDQ2LDQ2LDQ2KTtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIGxlZnQ6IDQ1JTtcbiAgICAgICAgICAgICAgdG9wOiAtMTBweDtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IoNDYsNDYsNDYpIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDBweCAxMHB4IDEwcHggMTBweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgICB0ZXh0LWluZGVudDogMTBweDtcbiAgICAgICAgICAmLm1lYXN1cmVtZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg1NXB4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZGF0ZS1pbnB1dCB7XG4gICAgICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmltcGVyaWFsLWhlaWdodCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgICAgbWluLXdpZHRoOiA0NSU7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIC8vICYuZmVldCB7XG4gICAgICAgICAgLy8gICBtYXJnaW4tcmlnaHQ6IDdweDtcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgJi5pbmNoZXMge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA4MCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICBAaW5jbHVkZSBhcHBlYXJhbmNlKG5vbmUpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIHRleHQtaW5kZW50OiAxMHB4O1xuXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH0gICAgICAgICAgXG5cbiAgICAgICAgICAmICsgaS5pY29uLWNhcmV0LWRvd24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBjb2xvcjogI0Q5REJEQztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNnB4O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAmLmZlZXQge1xuICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgIHJpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5pbmNoZXMge1xuICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgIHJpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmltcGVyaWFsIHtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1vZGFsLWNvbnRhaW5lci5tb2RhbC1hdGhsZXRlLWZvcm0ge1xuICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIGZvb3RlciB7XG4gICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICBzZWN0aW9uIHtcbiAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgLy8gb25seSBkaXJlY3QgY2hpbGQgcm93LWNvbnRhaW5lcnMgKGZvcm0gcm93cykgZ28gdG8gY29sdW1uLCBleGNlcHQgaGVpZ2h0IHJvd1xuICAgICAgLy8gbmVzdGVkIHJvdy1jb250YWluZXJzIChlLmcuIGluc2lkZSBmdXNpb24tY2FsZW5kYXIgLmRhdGUtaW5wdXQpIHN0YXkgYXMtaXNcbiAgICAgID4gLnJvdy1jb250YWluZXI6bm90KC5oZWlnaHQtZmllbGRzLXJvdykge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NHB4O1xuXG4gICAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cblxuICAgICAgLmRvYi1maWVsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgfVxuXG4gICAgICA+IC5yb3ctY29udGFpbmVyLnNwYWNlLWJldHdlZW4ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcblxuICAgICAgICAub3B0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgLm9wdGlvbi1jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaW1hZ2UtY29udHJvbCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4IDIwcHggNDBweDtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5zZWxlY3QtYWxsIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cblxuLnNlbGVjdC1hdGhsZXRlLWxpc3Qge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgIG1hcmdpbjogNDVweCA2NXB4IDQ1cHggNjVweDtcbiAgICBwYWRkaW5nOiAxNXB4IDBweDtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAuYXRobGV0ZXMge1xuICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgIC5hdGhsZXRlLW5hbWUge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICAmLmFsbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIubW9kYWwtY29udGFpbmVyIHtcblxuICAmLm1vZGFsLXRlcm1zIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogNzQwcHg7XG4gICAgcGFkZGluZzogMjBweCA0MHB4O1xuICAgIGZvb3RlciB7XG4gICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiXG4uYWRtaW4tbWVudSB7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2NXB4KTtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgY29sb3I6ICNhMGE0YTg7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGJsdWU7XG4gICAgICBjb2xvcjogI2VmZWZlZjtcbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2EwYTRhODtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQwcHgpO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIHNwYW4ubWFya2VyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAtMzBweDtcbiAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICA+IGRpdiArIGRpdiB7XG4gICAgbWFyZ2luLWxlZnQ6IDM1cHg7XG4gIH1cbn1cblxuLmFkbWluLXN1Yi1tZW51IHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gIGNvbG9yOiAjYTBhNGE4O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIH1cblxuICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYTBhNGE4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gID4gZGl2ICsgZGl2IHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgfVxufVxuXG4udGFiLW1lbnUge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0NXB4KTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDBweCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gICYuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5NzY4RUI7XG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICB9XG4gIH1cbn1cblxuLnRhYi1tZW51OmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkO1xufVxuXG4udGFiLXZpZXcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi50YWItdmlldy1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59IiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4udGVzdC1jb250YWluZXItaGVhZGVyICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRtYXJnaW4tdG9wOiAyNXB4O1x0XG5cdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG5cdH1cblx0LnRpdGxlICB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMzQuNXB4O1xuICAgICAgICBjb2xvcjogIzc1Nzg3QjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC42cHg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcjtcdFxuXHRcdG1pbi1oZWlnaHQ6IDQ2cHg7XG5cdH0gXG5cdC5tYWluLWNvbCAge1xuXHRcdEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XHRcdFxuXHR9XG5cdC5zaWRlLWNvbCAge1x0XHRcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcdFxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcdFxuXHRcdH1cblx0XHQ+IGRpdjpub3QoW2NsYXNzXSkgIHtcblx0XHRcdGZvbnQtc2l6ZTogMTYuNTlweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjMxcHg7XHRcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRcdH1cblx0fVxufVxuXG4udGVzdC1yZXN1bHQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4udGVzdC1yZXN1bHQtaGVhZGVyIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICAudGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6IDM0LjVweDtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuNnB4O1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXI7XHRcblx0XHRtaW4taGVpZ2h0OiA0NnB4OyAgICAgICAgXG4gICAgICAgIG1hcmdpbjogMCAwIDZweDsgICAgICAgIFxuICAgIH07XG59XG5cbi5pbnB1dC1yZXN1bHRzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpOyAgXG59XG5cbi5yZXN1bHRzLWNvbHVtbi1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGNvbHVtbi1jb3VudCgyKTtcbiAgICBAaW5jbHVkZSBjb2x1bW4tZ2FwKDRlbSk7ICBcblx0XHRAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcblx0XHRcdEBpbmNsdWRlIGNvbHVtbi1jb3VudCgxKTtcblx0XHR9IFxufVxuXG4uZXhlcmNpc2UtZGV0YWlscyB7XG4gICAgQGluY2x1ZGUgY29sdW1uLW5vLWJyZWFrKCk7ICBcbn1cblxuLmxpbmtlZC1yZXN1bHRzLWhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMzQuNXB4O1xuICBjb2xvcjogIzc1Nzg3QjtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAtMC42cHg7ICBcbn1cblxuLnRlc3RlZC1ieSB7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Y29sb3I6ICM3NTc3N0E7XG5cdGxldHRlci1zcGFjaW5nOiAwLjRweDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG59XG5cbi5wZXJmb3JtLWFkZGl0aW9uYWwtcmVzdWx0cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbn1cblxuLnBlcmZvcm1hbmNlLXJlc3VsdHMgIHsgIFxuXHRwYWRkaW5nOiA4MHB4IDAgODBweDtcblx0bWF4LXdpZHRoOiA3NzhweDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdC5oMiAge1xuXHRcdG1hcmdpbjogMCAwIDIwcHg7XG5cdH1cblx0c2VjdGlvbiAge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlIDogYXZvaWQ7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7ICAgIFxuXHRcdCsgc2VjdGlvbiAge1xuICAgICAgcGFkZGluZy10b3A6IDMycHg7XG5cdFx0fVxuXHR9XG59XG5cbi5wZXJmb3JtLW5vdGVzLXNlY3Rpb24ge1xuICBtYXgtd2lkdGg6IDc3OHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAwIDEyMHB4IDA7XG4gIC5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBwYWRkaW5nOiAwIDAgMTJweDtcbiAgfVxuICAucHJvc2Uge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAjOTI5MzkyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbn1cblxuLnN0cmVzcy1pbmRleC1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDQ1cHg7XG5cdGNhbnZhcyB7XG5cdFx0d2lkdGg6IDExMjRweDtcblx0XHRoZWlnaHQ6IDgwcHg7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHR9XG5cdH1cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbiAgPiAuaGVhZGVyICB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xuXHRcdC50aXRsZSAge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdGNvbG9yOiAjNzU3ODdCO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdG1hcmdpbjogMCAwIDE4cHg7XG5cdFx0fVxuXHR9XG59XG5cbi5jYXQtaGVhZGVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3c7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6ICM3NTc4N0I7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW46IDQwcHggMCAxOHB4O1xufVxuLmNhdC1zY29yZSAge1xuXHRjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG5cdCYuZ3JlZW4gIHtcblx0XHRiYWNrZ3JvdW5kOiAkc2NvcmUtZ3JlZW47XG5cdFx0KyAuZG90ICB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkc2NvcmUtZ3JlZW47XG5cdFx0fVxuXHR9XG5cdCYueWVsbG93ICB7XG5cdFx0YmFja2dyb3VuZDogJHNjb3JlLXllbGxvdztcblx0XHQrIC5kb3QgIHtcblx0XHRcdGJhY2tncm91bmQ6ICRzY29yZS15ZWxsb3c7XG5cdFx0fVxuXHR9XG5cdCYucmVkICB7XG5cdFx0YmFja2dyb3VuZDogJHNjb3JlLXJlZDtcblx0XHQrIC5kb3QgIHtcblx0XHRcdGJhY2tncm91bmQ6ICRzY29yZS1yZWQ7XG5cdFx0fVxuXHR9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmNsaW5pY2FsLWZpZWxkIHtcbiAgICBtaW4taGVpZ2h0OiBpbmhlcml0O1xuICAgIGhlaWdodDogaW5oZXJpdDtcbn1cblxudGV4dGFyZWEge1xuICAgICYuY2xpbmljYWwtbm90ZXMge1xuICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG59XG5cbi5jbGluaWNhbC1zdWItbm90ZSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgIG1hcmdpbi1sZWZ0OiAyNXB4OyAgICBcbn1cblxuLnRyZWUtbGluZSB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2JiYjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JiYjtcbn1cblxuLmNsaW5pY2FsLW5vdGVzLXNlY3Rpb24ge1xuICAgIG1hcmdpbjogMzhweCAwIDYwcHg7XG4gICAgbWF4LXdpZHRoOiA1NjBweDtcbn1cblxubGFiZWwuY2xpbmljYWwtZm9ybS1maWVsZCAge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMCA0MHB4O1xufVxuXG5oci5jbGluaWNhbC1yZXBvcnQtbGluZSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogI0Q4RDhEODtcbiAgICBtYXJnaW46IDQwcHggMDtcbiAgICBjbGVhcjogYm90aDtcbn1cblxuc3Bhbi5jbGluaWNhbC1sYWJlbCAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHggMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM3NTc3N0E7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG59XG5cbmZ1c2lvbi1vcmRlcmVkLWRyb3AtZG93biB7XG4gICAgJi5jbGluaWNhbC1kcm9wLWRvd24ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICAgICAgICBtYXgtd2lkdGg6IDYyNnB4O1xuICAgICAgICB3aWR0aDogNjI2cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweCAhaW1wb3J0YW50O1xuICAgICAgICA+IGRpdi5jb2x1bW4tY29udGFpbmVyIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNlbGVjdC10b2dnbGUge1xuICAgICAgICAgICAgc3Bhbi5maWx0ZXJlZCB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG4gICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgLm9wdGlvbnMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTBweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICM5OTk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCAjOTk5O1xuICAgICAgICBtYXgtaGVpZ2h0OiA2MDBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2xpbmljYWwtc2lnbmF0dXJlIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0Y29sb3I6ICM5MjkzOTI7XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG4gID4gZGl2IHtcbiAgICBwYWRkaW5nOiAwcHggMTVweCAwcHggMTVweDtcbiAgfVxufVxuXG4ucHJpbnQtb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG5pbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPW51bWJlcl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cblxuLnRlc3QtYXRobGV0ZS1uYW1lIHtcbiAgY29sb3I6ICM3NTc3N0E7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjMycHg7XG59XG5cbi5wZXJmb3JtLXNlbGVjdCB7XG4gIG1pbi13aWR0aDogMTMzcHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgY29sb3I6ICM3NTc3N0E7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNEOEQ4RDg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgaGVpZ2h0OiAzOHB4O1xufVxuXG4ucmVjb21tZW5kZWQge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICRyZWQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIGxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gIH1cbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuUitSIERhaWx5IFRlc3QgdjJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaDMge1xuICBzcGFuIHtcbiAgICBjb2xvcjogJGJsdWU7XG4gIH1cbn1cblxuLnJyLW1lbnUge1xuICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgaGVpZ2h0OiA1NXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHRfZ3JleTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAuY3VzdG9tIHtcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xuICAgICAgICAtbXMtZmxleDogMTtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRsaWdodF9ncmV5O1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgJjpjaGVja2VkIH4gbGFiZWwge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogJGJsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDU1cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ucnIta2V5IHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5O1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgY29sb3I6ICRibHVlO1xuICBsYWJlbCB7XG4gICAgd2lkdGg6IDMzLjMlO1xuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4vLyBzdHlsZXMgZm9yIHRoZSByZXBlYXRlZCBzaGlmdCB0ZXN0XG4ucmVwZWF0ZWQtc2hpZnQtbGF5b3V0IHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgLnRlc3Qtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuICAgICY6bm90KDpmaXJzdC1vZi10eXBlKTpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH1cbiAgICAuZHJvcC1vZmYge1xuICAgICAgY29sb3I6ICM5NzY4RUI7IFxuICAgICAgZm9udC1zaXplOiAxOHB4OyBcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjYyO1xuICAgIH1cbiAgICAubWVhc3VyZW1lbnQtZmllbGQge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyODlweDtcbiAgICAgIH1cbiAgICAgICY6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyM3B4O1xuICAgICAgfSAgICAgIFxuICAgIH1cbiAgfVxuICAubWVhc3VyZW1lbnQtbGFiZWwge1xuICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7IFxuICAgIHdpZHRoOjEwcHhcbiAgfVxufVxuXG4vLyBzdHlsZXMgZm9yIHRoZSB5LWJhbGFuY2UgdGVzdHNcbi55LWJhbGFuY2UtbGF5b3V0IHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgLnRlc3Qtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSk6bm90KDpsYXN0LW9mLXR5cGUpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuICAgIC5zdWItbGFiZWwge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzNXB4O1xuICAgIH1cbiAgICAuZGlmZiB7XG4gICAgICBtYXJnaW4tbGVmdDogNTFweDtcbiAgICAgIGNvbG9yOiAjOTc2OEVCOyBcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgXG4gICAgICBsaW5lLWhlaWdodDogMS45MjtcbiAgICB9XG4gICAgLm1lYXN1cmVtZW50LWZpZWxkIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjc1cHg7XG4gICAgICB9XG4gICAgICAubWVhc3VyZW1lbnQtbGFiZWwge1xuICAgICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7IFxuICAgICAgICB3aWR0aDoxMHB4XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHN0eWxlcyBmb3IgbWVhc3VyZW1lbnQgZ3JvdXBzXG4ubWVhc3VyZW1lbnQtZ3JvdXAge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAudGVzdC1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICY6bm90KDpmaXJzdC1vZi10eXBlKTpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gICAgLnN1Yi1sYWJlbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDM1cHg7XG4gICAgfSAgICBcbiAgICAubWVhc3VyZW1lbnQtZmllbGQge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMjNweDtcbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNzVweDtcbiAgICAgIH1cbiAgICAgIC5tZWFzdXJlbWVudC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDsgXG4gICAgICAgIHdpZHRoOjEwcHhcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG5AbWl4aW4gY2hhbmdlLWluZGljYXRvciB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgbWFyZ2luOiAwIDEwcHg7XG5cbiAgJi5pbmNyZWFzZSB7IFxuICAgIGNvbG9yOiAjMjBiNzY5OyBcbiAgICBpLmZhIHtcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG4gIH1cblxuICAmLmRlY3JlYXNlIHsgXG4gICAgY29sb3I6ICNjNDJhM2I7IFxuICAgIGkuZmEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIH1cbiAgfVxuXG4gICYucGVyZm9ybS1pbmNyZWFzZSB7IFxuICAgIGkuZmEge1xuICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIH1cbiAgfVxuXG4gICYucGVyZm9ybS1kZWNyZWFzZSB7IFxuICAgIGkuZmEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIH1cbiAgfVxuXG4gIGkuZmEge1xuICAgIG1pbi13aWR0aDogMTJweDtcbiAgfVxufVxuXG4udGVzdC1yZXN1bHRzLWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlOyAgXG4gIHdpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlOyBcbn1cblxuLnJlcG9ydHMtcmVzcC1oZWFkZXIge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoY29sdW1uKTtcbiAgICAucmVzcC1oZWFkZXItYWN0aW9ucyB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtb3B0aW9ucyB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIG1hcmdpbjogMzBweCAwIDVweDtcbiAgZ2FwOiAxMHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgLmRhdGUtcmFuZ2VzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGdhcDogMjBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtbm9kYXRhIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ucmVwb3J0LWNoYXJ0LWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG5cbiAgLnJlcG9ydC1jaGFydC1kZXRhaWxzIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG5cbiAgICAucmVwb3J0LWNoYXJ0LWRldGFpbCB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuXG4gICAgICAmLnRlYW0sICYudG90YWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi13aWR0aDogMTMwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDkwcHg7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBtaW4td2lkdGg6IGNhbGMoMzMlIC0gMThweCk7XG4gICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDMzJSAtIDE4cHgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5yZXBvcnQtZGV0YWlsLWNoYXJ0LWxpbmUge1xuICAgICAgICA+IGNhbnZhcyB7XG4gICAgICAgICAgd2lkdGg6IDEzMHB4O1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweCFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5oZWFkZXIge1xuXG4gICAgICB9XG5cbiAgICAgIC5zY29yZS1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDE1cHg7XG5cbiAgICAgICAgLnNjb3JlIHtcbiAgICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2hhbmdlIHtcbiAgICAgICAgICBAaW5jbHVkZSBjaGFuZ2UtaW5kaWNhdG9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC50cm9waGllcyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudHJvcGh5LXBsYWNlIHtcbiAgICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyAucmVwb3J0LXN1bW1hcnktY29udGFpbmVyIC8gLnJlcG9ydC1zdW1tYXJ5IHVzZWQgdG8gc2l0IGhlcmUuIFRoZSBwcm9ncmVzc1xuLy8gcmVwb3J0IGlzIHRoZSBvbmx5IHZpZXcgdGhhdCBldmVyIHJlbmRlcmVkIHRoZW0sIGFuZCBpdCBub3cgcmVuZGVyc1xuLy8gLnByb2dyZXNzLXN1bW1hcnkgaW5zdGVhZCAtIHNlZSBfcHJvZ3Jlc3Nfc3VtbWFyeS5zY3NzLlxuXG4ucmVwb3J0LWRldGFpbHMtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IFxuXG4gIC50aXRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEwMjRweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cblxuLnJlcG9ydC1kZXRhaWxzIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgPiBkaXYge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgLmNoYW5nZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLThweDtcbiAgICBtaW4td2lkdGg6IDcwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBAaW5jbHVkZSBjaGFuZ2UtaW5kaWNhdG9yO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgfVxuICBcbiAgLm5hbWVzLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBtaW4td2lkdGg6IDI1MHB4OyAgICBcblxuICAgID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICAuaGVhZGVyLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgJiArIC5oZWFkZXItcm93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGV0YWlsLXJvdyB7XG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi13aWR0aDogMTgwcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI0MjQyNDtcbiAgICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJlMmUyZTtcbiAgICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICB9XG5cbiAgICAgICYuc3ViLXRvdGFsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgICAgICAgY29sb3I6ICM3NTc4N2I7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAmICsgLnN1Yi10b3RhbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnRvdGFsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIGNvbG9yOiAjZjdmN2Y3O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5kZXRhaWwtcm93LXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6MTVweDsgXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmluZm8tY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgbWluLXdpZHRoOiAxMTBweDtcbiAgICB9XG5cbiAgICAuaGVhZGVyLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgJiArIC5oZWFkZXItcm93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGV0YWlsLXJvdyB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zY29yZXMtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgb3ZlcmZsb3cteTogdW5zZXQ7XG4gICAgICBvdmVyZmxvdy14OiB1bnNldDtcbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgbWluLXdpZHRoOiAyMTBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAuaGVhZGVyLXJvdyB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbiAgICAgIH1cblxuICAgICAgLmRldGFpbC1yb3cge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmhlYWRlci1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG5cbiAgICAgICYucmlnaHQtbGVmdCB7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgbWluLXdpZHRoOiA1NXB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgJiArIC5oZWFkZXItcm93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q0ZDRkNDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGV0YWlsLXJvdyB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjY2NjO1xuXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cbiAgICAgICAgJi5yaWdodC1sZWZ0IHtcbiAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA1NXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY2hhbmdlLWNvbnRhaW5lciB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtYm9keW1hcCB7XG4gIG1heC1oZWlnaHQ6IDIxM3B4O1xuICBtYXgtd2lkdGg6IDEwMHB4O1xufVxuXG4ucHJvZ3Jlc3MtcmVwb3J0LWhpZGRlbiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnByb2dyZXNzLXJlcG9ydC1ib2R5bWFwLWNvbnRhaW5lciB7XG4gIC8vIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLyogLnByb2dyYW0tZ3JvdXAtZHJvcGRvd24tY29udGFpbmVyIGFuZCAucmVwb3J0LXByb2dyYW1zLWNvbnRhaW5lciBsaXZlZCBoZXJlLlxuICAgQm90aCB3ZXJlIG1hcmt1cCBvbiB0aGUgUHJvZ3JhbXMgdGFiIG9ubHkgKHByb2dyZXNzcmVwb3J0Lmh0bWwpLCB3aGljaCBub3dcbiAgIHJlbmRlcnMgLnByb2dyYW1zLWRldGFpbHMgaW5zdGVhZCAtIHNlZSBfcHJvZ3JhbXNfZGV0YWlscy5zY3NzLiBOb3RoaW5nIGVsc2VcbiAgIGluIGVpdGhlciBidW5kbGUgcmVmZXJlbmNlZCB0aGVtLiAqL1xuXG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLyogVGFiIGJhciArIGhlYWRlciBhY3Rpb25zIGZvciB0aGUgcHJvZ3Jlc3MgcmVwb3J0IHBhZ2UgKC9yZXBvcnRzLzphdGhsZXRlSWQpLlxuXG4gICBUaGUgdW5kZXJsaW5lIHRhYnMgYXJlIHRoZSBzYW1lIHBhdHRlcm4gYXMgdGhlIGF0aGxldGUgcHJvZmlsZSBwYWdlXG4gICAoX3Byb2ZpbGVfYXRobGV0ZS5zY3NzKS4gVG9rZW5zIGFyZSByZXN0YXRlZCBsb2NhbGx5IHJhdGhlciB0aGFuIHJlYWNoaW5nXG4gICBmb3IgJGF0aGxldGUtcHJvZmlsZS0qLCB3aGljaCBpcyBmaWxlLWxvY2FsIHRvIHRoYXQgcGFydGlhbCBieSBjb252ZW50aW9uLlxuXG4gICBFdmVyeXRoaW5nIGhlcmUgbGl2ZXMgaW5zaWRlIC5wcmludC1ub2RlJ3MgLm5vcHJpbnQgaGVhZGVyLCBzbyBub25lIG9mIGl0XG4gICByZWFjaGVzIHRoZSBqc1BERiBjYXB0dXJlIGluIHRlc3RfcmVzdWx0c19wZGYuanM6Z2VuZXJhdGVQcm9ncmVzc1JlcG9ydC5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChmb2xkIGJvcmRlcnMgaW50byBmaXhlZFxuICAgc2l6ZXMgYnkgaGFuZCksIG5vIGF1dG9wcmVmaXhlciwgYW5kIGEgZ2xvYmFsIGBidXR0b25gIHJ1bGUgdGhhdCBmb3JjZXNcbiAgIG1pbi13aWR0aCAxMTBweCArIHVwcGVyY2FzZSArIGEgbG9jay1oZWlnaHQgLSBzZWUgdW5zdHlsZS1idXR0b24uICovXG5cbi8vIEFjdGl2ZSB0YWIgbGFiZWwgb25seS4gRGVlcGVyIHRoYW4gJHB1cnBsZS01MDAsIHdoaWNoIHN0aWxsIGRyYXdzIHRoZVxuLy8gdW5kZXJsaW5lIGJlbmVhdGggaXQuXG4kcHJ0LWFjdGl2ZS1pbms6ICAgICM2OTQxYzY7XG5cbi8vIFZlcnRpY2FsIGFsaWdubWVudCB3aXRoIHRoZSBzaWRlYmFyIHJhaWwuXG4vL1xuLy8gLnNpZGViYXItaGVhZGVyIChfcHJvZmlsZV9hdGhsZXRlLnNjc3M6NjYyLTY5NSwgOjY5Ni03MjEpIGlzIDE2cHggcGFkZGluZyArXG4vLyBhIDIycHggdG9nZ2xlIGdseXBoICh0YWxsZXIgdGhhbiB0aGUgMjFweCB0aXRsZSBpdCBzaXRzIGJlc2lkZSkgKyAxNnB4XG4vLyBwYWRkaW5nICsgYSAxcHggYm90dG9tIHJ1bGUsIG1lYXN1cmVkIGZyb20gdGhlIHJhaWwncyB0b3A6XG4kcHJ0LXNpZGViYXItcnVsZS15OiAgMTZweCArIDIycHggKyAxNnB4ICsgMXB4OyAgIC8vIDU1cHhcblxuLy8gVGhlIHJhaWwgaXMgZml4ZWQgYXQgYHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodCgrIHN1YmhlYWRlcilgIGFuZFxuLy8gLm1haW4tdmlldyByZXNlcnZlcyB0aGUgc2FtZSB2YWx1ZSBhcyBwYWRkaW5nLXRvcCwgc28gdGhlIHR3byBzdGFja3Mgb3VnaHRcbi8vIHRvIHNoYXJlIGEgdG9wIGVkZ2UgLSBidXQgbWVhc3VyZWQgYWdhaW5zdCBhIHJ1bm5pbmcgYnVpbGQgdGhlIGNvbnRlbnRcbi8vIGNvbHVtbiBzdGFydHMgMjBweCBsb3dlci4gVGhlIGxpa2VseSBzb3VyY2UgaXMgdGhlIC52aWV3LXN0YXRpYyB3cmFwcGVyXG4vLyBhcm91bmQgdGhlIGF0aGxldGVfc2VsZWN0aW9uX2JhciBpbmNsdWRlOiBpdCBpcyBvbmx5IHB1bGxlZCBvdXQgb2YgZmxvdyBieVxuLy8gYC5tYWluLXZpZXc6aGFzKC5hdGhsZXRlLXNlbGVjdGlvbikgPiAuaGVhZGVyLWNvbnRlbnQgKyAqYCwgYW5kIGluIHRoZVxuLy8gcHJhY3RpdGlvbmVyIHNpZGViYXIgdmlldyB0aGF0IGJhciBpcyByZXBsYWNlZCBieSB0aGUgbWVtYmVyIGNhcmQsIHNvIHRoZVxuLy8gd3JhcHBlciBzdGF5cyBpbiBmbG93IGFuZCBjb250cmlidXRlcyBpdHMgb3duIGhlaWdodC5cbi8vXG4vLyBTdWJ0cmFjdGluZyBpdCBpcyB3aGF0IGFjdHVhbGx5IGxhbmRzIHRoZSB0d28gcnVsZXMgb24gdGhlIHNhbWUgcm93LiBJZiB0aGF0XG4vLyB3cmFwcGVyIGV2ZXIgZ29lcyBhd2F5IHRoaXMgYmVjb21lcyAyMHB4IG9mIG1pc3NpbmcgZ2FwLCBub3QgYSBzaWxlbnRcbi8vIG1pc2FsaWdubWVudC5cbiRwcnQtY29udGVudC10b3Atb2Zmc2V0OiAyMHB4O1xuXG4vLyBUYWIgdmVydGljYWwgbWV0cmljcy4gVGhlIGxhYmVsJ3MgbGluZSBib3ggdG9wIGlzIHBhZC10b3AgYmVsb3cgdGhlIHJhaWwnc1xuLy8gdG9wOyB0aGUgdW5kZXJsaW5lIHNpdHMgZGlyZWN0bHkgdW5kZXIgcGFkLWJvdHRvbS5cbi8vXG4vLyBQdXNoaW5nIHRoZSBsYWJlbCBkb3duIDVweCB3aGlsZSBBTFNPIGxpZnRpbmcgdGhlIHVuZGVybGluZSAxcHggY2Fubm90IGJlXG4vLyBkb25lIHdpdGggcGFkZGluZyBhbG9uZSAtIGl0IG5lZWRzIHBhZC1ib3R0b20gdG8gZ28gdG8gLTVweC4gVGhlIDIwcHggbGluZVxuLy8gaGVpZ2h0IGlzIHdoYXQgaGFzIHRvIGdpdmU6IGRyb3BwaW5nIGl0IHRvIDE1cHggZnJlZXMgZXhhY3RseSB0aGUgNXB4IHRoZVxuLy8gbW92ZSBjb3N0cywgd2l0aCBwYWQtYm90dG9tIGJvdHRvbWluZyBvdXQgYXQgMC5cbi8vXG4vLyBUaGUgY29zdCBpcyBkZXNjZW5kZXIgY2xlYXJhbmNlLiBBdCAyMHB4IHRoZSBsaW5lIGJveCBjYXJyaWVkIH4xLjVweCBvZlxuLy8gaGFsZi1sZWFkaW5nIHVuZGVyIHRoZSBnbHlwaHM7IGF0IDE1cHggdGhhdCB0dXJucyBuZWdhdGl2ZSwgc28gdGhlIHRhaWxzIG9mXG4vLyB0aGUgXCJnXCIgYW5kIFwieVwiIGluIFwiUHJvZ3Jlc3MgU3VtbWFyeVwiIG5vdyBzaXQgbGV2ZWwgd2l0aCB0aGUgdW5kZXJsaW5lXG4vLyByYXRoZXIgdGhhbiBjbGVhciBvZiBpdC4gUmFpc2luZyB0aGUgbGluZSBoZWlnaHQgaXMgdGhlIG9ubHkgd2F5IGJhY2sgLSB0aGVcbi8vIHBhZGRpbmcgY2Fubm90IGJ1eSBpdC5cbiRwcnQtdGFiLWxpbmUtaGVpZ2h0OiAxNXB4O1xuJHBydC10YWItcGFkLXRvcDogICAgIDhweDtcbiRwcnQtdGFiLXBhZC1ib3R0b206ICAwO1xuXG4vLyBUaGUgdGFiIHJhaWwgY29zdHMgaXRzIGxhYmVsJ3MgbGluZS1oZWlnaHQsIHRoZSB0YWIncyB2ZXJ0aWNhbCBwYWRkaW5nIGFuZFxuLy8gdGhlIDJweCBhY3RpdmUgdW5kZXJsaW5lLiBUaGUgY29udGFpbmVyJ3Mgb3duIDFweCBydWxlIGVuZHMgb24gdGhlIHNhbWVcbi8vIHBpeGVsIC0gdGhlIHRhYidzIG1hcmdpbi1ib3R0b206IC0xcHggcHVsbHMgdGhlIHR3byB0b2dldGhlciAtIHNvIGl0IGFkZHNcbi8vIG5vdGhpbmcuXG4kcHJ0LXRhYi1yYWlsLWhlaWdodDogJHBydC10YWItbGluZS1oZWlnaHQgKyAkcHJ0LXRhYi1wYWQtdG9wICsgJHBydC10YWItcGFkLWJvdHRvbSArIDJweDsgIC8vIDI1cHhcblxuLy8gRGVsaWJlcmF0ZSBsaWZ0IG9mZiB0aGUgc2lkZWJhciBydWxlLiBJdCBoYXMgdG8gYmUgaXRzIG93biB0ZXJtOiB0aGUgZ2FwXG4vLyBiZWxvdyBpcyBkZXJpdmVkIGZyb20gdGhlIHJhaWwncyBoZWlnaHQsIHNvIHNocmlua2luZyB0aGUgcmFpbCB3b3VsZFxuLy8gb3RoZXJ3aXNlIGJlIGFic29yYmVkIGJ5IGEgbGFyZ2VyIGdhcCBhbmQgdGhlIGxpbmUgd291bGQgbm90IG1vdmUgYXQgYWxsLlxuLy9cbi8vIFRoaXMgcmFpc2VzIHRoZSB3aG9sZSB0YWIgYmxvY2ssIGxhYmVsIGluY2x1ZGVkLiBXaXRoIHBhZC1ib3R0b20gYWxyZWFkeSBhdFxuLy8gMCB0aGUgbGFiZWwgYW5kIGl0cyB1bmRlcmxpbmUgYXJlIGxvY2tlZCB0b2dldGhlciwgc28gdGhlcmUgaXMgbm8gbG9uZ2VyIGFcbi8vIHdheSB0byBtb3ZlIG9uZSB3aXRob3V0IHRoZSBvdGhlciAtIGNsb3NpbmcgdGhlIHJlbWFpbmluZyBkaXN0YW5jZSB3b3VsZFxuLy8gbWVhbiBjdXR0aW5nIGxpbmUtaGVpZ2h0IGFnYWluLCBhdCB0aGUgZGVzY2VuZGVycycgZXhwZW5zZS5cbiRwcnQtbGluZS1saWZ0OiAgICAgICA0cHg7XG5cbi8vIFdoYXQgaXMgbGVmdCBpcyB0aGUgZ2FwIGFib3ZlIHRoZSB0YWJzLiBEZXJpdmluZyBpdCByYXRoZXIgdGhhbiBoYXJkLWNvZGluZ1xuLy8gOXB4IGtlZXBzIHRoZSByZWxhdGlvbnNoaXAgaW50YWN0IGlmIHRoZSB0eXBlIG9yIHRoZSBzaWRlYmFyIHBhZGRpbmcgbW92ZXMuXG4kcHJ0LWdhcC10b3A6ICAgICAgICAgJHBydC1zaWRlYmFyLXJ1bGUteSAtICRwcnQtdGFiLXJhaWwtaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgLSAkcHJ0LWNvbnRlbnQtdG9wLW9mZnNldCAtICRwcnQtbGluZS1saWZ0O1xuJHBydC1nYXAtbGVmdDogICAgICAgIDIwcHg7XG5cbi8vIEV2ZXJ5dGhpbmcgc3RhY2tlZCBhYm92ZSB0aGUgZW1wdHkgc3RhdGUsIG1lYXN1cmVkIGZyb20gdGhlIGRvY3VtZW50IHRvcDpcbi8vICAgMTA0cHggIC5tYWluLXZpZXcgcGFkZGluZy10b3AgKF9wcm9maWxlX2F0aGxldGUuc2Nzczo2MjgpIC0gcmVzZXJ2ZXMgdGhlXG4vLyAgICAgICAgICBmaXhlZCBoZWFkZXIgKyBzZWxlY3Rpb24gYmFyXG4vLyAgICAgNnB4ICAkcHJ0LWdhcC10b3Bcbi8vICAgIDI1cHggICRwcnQtdGFiLXJhaWwtaGVpZ2h0XG4vLyAgICAyOHB4ICAucHJvZ3Jlc3MtcmVwb3J0LWhlYWQgbWFyZ2luLXRvcFxuLy8gICAgNDBweCAgdGhlIGhlYWQgcm93IGl0c2VsZiAoJHBydC1hY3Rpb24tc2l6ZSBzZXRzIGl0cyBoZWlnaHQpXG4vLyAgICA0MHB4ICAucHJvZ3Jlc3MtcmVwb3J0LW9wdGlvbnMgcm93ICgkZHJzLXRyaWdnZXItaGVpZ2h0KVxuLy8gICAgfjdweCAgaW50ZXItYmxvY2sgZ2Fwc1xuLy8gTWVhc3VyZWQgYWdhaW5zdCBhIHJ1bm5pbmcgYnVpbGQsIG5vdCBkZXJpdmVkIC0gcmUtY2hlY2sgaXQgaWYgYW55IG9mIHRoZVxuLy8gY2hyb21lIGFib3ZlIG1vdmVzLlxuJHBydC1lbXB0eS1jaHJvbWU6ICAgIDI1MHB4O1xuLy8gQmVsb3cgdGhpcyB0aGUgY2FsYygpIHdvdWxkIHN0YXJ0IHN1YnRyYWN0aW5nIHJlYWwgY29udGVudCwgc28gdGhlIGJsb2NrXG4vLyBmYWxscyBiYWNrIHRvIGl0cyBpbnRyaW5zaWMgaGVpZ2h0IGluc3RlYWQuXG4kcHJ0LWVtcHR5LW1pbjogICAgICAgMzIwcHg7XG5cbi8vIENvbnRlbnQgY29sdW1uIHdpZHRoLiAudmlldy1jb250YWluZXIgaXMgbG9ja2VkIHRvIDEwMjRweCBnbG9iYWxseVxuLy8gKF9iYXNlLnNjc3M6MzY1LTM2NykgdmlhIGxvY2std2lkdGgsIHdoaWNoIHBpbnMgbWF4LXdpZHRoLCBtaW4td2lkdGggQU5EXG4vLyB3aWR0aC4gVGhpcyBwYWdlIHVucGlucyBhbGwgdGhyZWUgYW5kIGZpbGxzIHRoZSB2aWV3cG9ydCBpbnN0ZWFkLCBzbyB0aGVyZVxuLy8gaXMgbm8gcGFnZS13aWR0aCB0b2tlbiBhbnkgbW9yZSAtIG9ubHkgdGhlIGd1dHRlcnMgYmVsb3cgYm91bmQgaXQuXG5cbi8vIFNxdWFyZSBpY29uIGJ1dHRvbiwgbWF0Y2hpbmcgdGhlIDQwcHggaGVpZ2h0IG9mIHRoZSBkYXRlLXJhbmdlIHRyaWdnZXJcbi8vICgkZHJzLXRyaWdnZXItaGVpZ2h0KSBhIHJvdyBiZWxvdy4gNnB4IG1hdGNoZXMgdGhlIHJhZGl1cyB0aGUgcmVzdCBvZiB0aGVcbi8vIHJlZGVzaWduIHVzZXMgZm9yIGJ1dHRvbnMuXG4kcHJ0LWFjdGlvbi1zaXplOiAgIDQwcHg7XG4kcHJ0LWFjdGlvbi1yYWRpdXM6IDZweDtcbi8vIFRoZSBtYXJrdXAgZGVjbGFyZXMgdGhlc2UgU1ZHcyBhdCAxNnB4OyB0aGlzIHdpbnMgYW5kIHNjYWxlcyB0aGVtLCB3aGljaCBpc1xuLy8gY2xlYW4gYmVjYXVzZSBib3RoIGNhcnJ5IGEgMCAwIDE2IDE2IHZpZXdCb3guIDIwcHggaW4gYSA0MHB4IGJveCBsZWF2ZXMgMTBweFxuLy8gb2YgcGFkZGluZyBhIHNpZGUuXG4kcHJ0LWljb24tc2l6ZTogICAgIDIwcHg7XG5cbi8vIFBhZ2Ugc2hlbGwuIC52aWV3LWxheW91dCBjZW50cmVzIGl0cyBjb250YWluZXIgKGp1c3RpZnktY29udGVudDogY2VudGVyIGluXG4vLyBfYmFzZS5zY3NzKSwgd2hpY2ggZmxvYXRlZCB0aGUgd2hvbGUgcmVwb3J0IGluIHRoZSBtaWRkbGUgb2YgdGhlIHZpZXdwb3J0LlxuLy8gVGhpcyBwaW5zIGl0IGxlZnQgd2l0aCBhIDIwcHggZ3V0dGVyIGluc3RlYWQuXG4vL1xuLy8gVGhlIDEwMjRweCBsb2NrIG9uIC52aWV3LWNvbnRhaW5lciBpcyBkZWxpYmVyYXRlbHkgbGVmdCBhbG9uZTogYSBkZXNjZW5kYW50XG4vLyBpcyBoYXJkLXBpbm5lZCB0byB0aGF0IHNhbWUgbnVtYmVyIChfcHJvZ3Jlc3NfcmVwb3J0LnNjc3MsIGxvY2std2lkdGggb24gdGhlXG4vLyBsZWdhY3kgZGV0YWlscyB0aXRsZSksIHNvIGxldHRpbmcgdGhlIGNvbnRhaW5lciBnbyBmbHVpZCB3b3VsZCBzdHJhbmQgaXRcbi8vIG1pZC1wYWdlLlxuLy9cbi8vIFBhZGRpbmcgbGl2ZXMgb24gdGhlIGxheW91dCwgbm90IG9uIC5wcmludC1ub2RlLCBzbyBpdCBzdGF5cyBvdXQgb2YgdGhlXG4vLyBqc1BERiBjYXB0dXJlLlxuLnByb2dyZXNzLXJlcG9ydC1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgLy8gVG9wIGlzIGRlcml2ZWQgc28gdGhlIHRhYiBydWxlIGxhbmRzIG9uIHRoZSBzaWRlYmFyIGhlYWRlcidzIHJ1bGUuIFRoZVxuICAvLyByaWdodCBndXR0ZXIgbWF0Y2hlcyB0aGUgbGVmdCBub3cgdGhhdCB0aGUgY29sdW1uIHJ1bnMgdG8gdGhlIHZpZXdwb3J0XG4gIC8vIGVkZ2UgLSB3aXRob3V0IGl0IHRoZSBwcmludC9leHBvcnQgYnV0dG9ucyB3b3VsZCBzaXQgZmx1c2ggYWdhaW5zdCB0aGVcbiAgLy8gd2luZG93LlxuICBwYWRkaW5nOiAkcHJ0LWdhcC10b3AgJHBydC1nYXAtbGVmdCAwICRwcnQtZ2FwLWxlZnQ7XG4gIC8vIFJlcGxhY2VzIHRoZSAud2hpdGViZyB0aGF0IHVzZWQgdG8gc2l0IG9uIHRoaXMgZWxlbWVudC4gVGhlIGRhdGUgYW5kIHRlc3RcbiAgLy8gc2VsZWN0b3JzIGFscmVhZHkgcGFpbnQgdGhlbXNlbHZlcyAjZmZmLCBzbyB0aGV5IHJlYWQgYXMgcmFpc2VkIGFnYWluc3RcbiAgLy8gdGhpcyBncm91bmQgcmF0aGVyIHRoYW4gZGlzc29sdmluZyBpbnRvIGl0LlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZS1iZztcblxuICAvLyBUaGUgY29sdW1uIGZpbGxzIHdoYXRldmVyIHRoZSB2aWV3cG9ydCBnaXZlcyBpdC4gQWxsIHRocmVlIG9mIGxvY2std2lkdGgnc1xuICAvLyBwcm9wZXJ0aWVzIGhhdmUgdG8gYmUgdW5kb25lIC0gbGVhdmluZyBtaW4td2lkdGggYXQgMTAyNCBhbG9uZSB3b3VsZCBrZWVwXG4gIC8vIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBvbiBuYXJyb3cgd2luZG93cywgYW5kIHRoZSBmbGV4LWdyb3cgaXMgd2hhdFxuICAvLyBhY3R1YWxseSBtYWtlcyBpdCBmaWxsLCBzaW5jZSAudmlldy1sYXlvdXQgaXMgYSBmbGV4IHJvdyBqdXN0aWZpZWQgdG9cbiAgLy8gZmxleC1zdGFydCBhbmQgdGhlIGNvbHVtbiB3b3VsZCBvdGhlcndpc2Ugc2hyaW5rIHRvIGl0cyBjb250ZW50LlxuICA+IC52aWV3LWNvbnRhaW5lciB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC8vIFRoZSBkZXRhaWwgZ3JpZHMnIHRpdGxlcyB1c2VkIHRvIG5lZWQgYSBjb3JyZWN0aW9uIGhlcmU6IGJvdGggY2FyZHMgd2VyZVxuICAvLyBoYXJkLXBpbm5lZCB0byAxMDI0IGFuZCB3b3VsZCBoYXZlIHNhdCBuYXJyb3dlciB0aGFuIGV2ZXJ5dGhpbmcgYXJvdW5kIHRoZW1cbiAgLy8gb25jZSB0aGUgY29sdW1uIHdlbnQgZmx1aWQuIFRoZXkgYXJlIC5wcm9ncmVzcy1kZXRhaWxzX190aXRsZSBhbmRcbiAgLy8gLnByb2dyYW1zLWRldGFpbHNfX3RpdGxlIG5vdyBhbmQgcGluIG5vIHdpZHRoIG9mIHRoZWlyIG93bi4gVGhlIGxlZ2FjeVxuICAvLyAucmVwb3J0LWRldGFpbHMtY29udGFpbmVyIC50aXRsZSBpcyBzdGlsbCAxMDI0LWxvY2tlZCBmb3IgdGVhbXJlcG9ydC5odG1sLFxuICAvLyB3aGljaCBkb2VzIG5vdCByZW5kZXIgaW5zaWRlIHRoaXMgbGF5b3V0LlxufVxuXG4ucHJvZ3Jlc3MtcmVwb3J0LXRhYnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgLy8gVGhlIHRhYnMgb3BlbiB0aGUgY29udGVudCBhcmVhLCBzbyB0aGVyZSBpcyBubyBoZWFkZXIgYWJvdmUgdGhlbSB0byBzcGFjZVxuICAvLyBvZmY7IHRoZSBnYXAgYmVsb3cgaXMgdGhlIGhlYWQgYmxvY2sncyBvd24gdG9wIG1hcmdpbi5cbiAgZ2FwOiAyNHB4O1xuICBtYXJnaW46IDA7XG5cbiAgJl9fdGFiIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICAvLyBUaGUgdW5kZXJsaW5lIElTIHRoaXMgYm9yZGVyLiBXaXRob3V0IHVuc3R5bGUtYnV0dG9uIGFib3ZlLCB0aGUgZ2xvYmFsXG4gICAgLy8gYnV0dG9uIHJ1bGUgd291bGQgZmxvb3IgdGhlIHdpZHRoIGF0IDExMHB4IChvdmVyc2hvb3RpbmcgdGhlIGxhYmVsKSBhbmRcbiAgICAvLyBsb2NrIHRoZSBoZWlnaHQgYXQgNTBweCAoZHJvcHBpbmcgdGhlIGJvcmRlciB3ZWxsIGJlbG93IHRoZSB0ZXh0KS5cbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLy8gRXZlcnkgdGFiIGlzIDYwMCwgYWN0aXZlIG9yIG5vdCAtIGNvbG91ciBhbmQgdGhlIHVuZGVybGluZSBjYXJyeSB0aGVcbiAgICAvLyBzdGF0ZSBvbiB0aGVpciBvd24uIEl0IGFsc28gc3RvcHMgdGhlIGxhYmVsIHdpZHRoIHNoaWZ0aW5nIGFzIHRoZVxuICAgIC8vIHNlbGVjdGlvbiBtb3Zlcywgd2hpY2ggYSA1MDAvNjAwIHN3YXAgd291bGQgY2F1c2UuXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogJHBydC10YWItbGluZS1oZWlnaHQ7XG4gICAgLy8gUHVsbHMgdGhlIHRhYidzIG93biBib3JkZXIgb24gdG9wIG9mIHRoZSBjb250YWluZXIncyAxcHggcnVsZSBzbyB0aGUgdHdvXG4gICAgLy8gcmVhZCBhcyBvbmUgbGluZSByYXRoZXIgdGhhbiBzdGFja2luZyB0byAzcHggdW5kZXIgdGhlIGFjdGl2ZSB0YWIuXG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICAvLyA0cHggZWFjaCBzaWRlIGlzIHRoZSBicmVhdGhpbmcgcm9vbSB0aGUgZGVzaWduIHNob3dzIGFyb3VuZCB0aGUgbGFiZWwuXG4gICAgLy8gVmVydGljYWwgaXMgdGhlIHRvcC9ib3R0b20gc3BsaXQgYWJvdmUgLSB0aGUgdHdvIGFsd2F5cyBzdW0gdG8gNHB4LCBzb1xuICAgIC8vIHRoZSB1bmRlcmxpbmUgc3RheXMgb24gdGhlIHJvdyB0aGUgbGF5b3V0J3MgcGFkZGluZy10b3AgcHV0cyBpdCBvbi5cbiAgICBwYWRkaW5nOiAkcHJ0LXRhYi1wYWQtdG9wIDRweCAkcHJ0LXRhYi1wYWQtYm90dG9tO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHB1cnBsZS02MDA7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAkcHJ0LWFjdGl2ZS1pbms7XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtaGVhZCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8vIFRpdGxlIGxlZnQsIGFjdGlvbnMgaGFyZCByaWdodCBvbiBvbmUgcm93LlxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTZweDtcbiAgbWFyZ2luOiAyOHB4IDAgMDtcblxuICAmX190aXRsZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAvLyBoMSBvbiB0aGlzIHBhZ2UgdXNlZCB0byBpbmhlcml0IC5iYXNpYy1wYWdlLWhlYWRlciAudGl0bGUxLCB3aGljaCBhZGRzIGFcbiAgICAvLyBtaW4taGVpZ2h0IGFuZCBtYXJnaW5zLiBUaGF0IHdyYXBwZXIgaXMgZ29uZSwgc28gc2V0IGJvdGggb3V0cmlnaHQuXG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLy8gU3F1YXJlIG91dGxpbmVkIGljb24tb25seSBidXR0b24uIFdpdGggbm8gbGFiZWwgdGhlcmUgaXMgbm90aGluZyB0byBhYnNvcmJcbiAgLy8gdGhlIGdsb2JhbCBidXR0b24gbWluLXdpZHRoLCBzbyB1bnN0eWxlLWJ1dHRvbiBpcyB3aGF0IGtlZXBzIHRoZSBib3ggc3F1YXJlLlxuICAmX19hY3Rpb24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcnQtYWN0aW9uLXJhZGl1cztcbiAgICAvLyBObyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCBpbiB0aGlzIGJ1aWxkIC0gd2l0aG91dCB0aGlzIHRoZSAxcHggYm9yZGVyXG4gICAgLy8gcHVzaGVzIHRoZSBib3ggdG8gMzhweCBhbmQgdGhlIHR3byBidXR0b25zIHN0b3AgbWF0Y2hpbmcgdGhlIGRlc2lnbi5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBoZWlnaHQ6ICRwcnQtYWN0aW9uLXNpemU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlO1xuICAgIHdpZHRoOiAkcHJ0LWFjdGlvbi1zaXplO1xuXG4gICAgJjpob3Zlcjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkcHVycGxlLTIwMDtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gU2hvd24tYnV0LWluZXJ0IHdoaWxlIGEgcmVwb3J0IGhhcyBub3RoaW5nIHRvIGV4cG9ydCwgc28gdGhlIGhlYWRlciBkb2VzXG4gICAgLy8gbm90IHJlZmxvdyB0aGUgbW9tZW50IGRhdGEgbGFuZHMuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTIwMDtcbiAgICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC8vIEljb25zIGFyZSBpbmxpbmUgU1ZHIG9uIGN1cnJlbnRDb2xvciwgc28gdGhlIGhvdmVyL2ZvY3VzIGNvbG9ycyBhYm92ZVxuICAgIC8vIGNhcnJ5IGludG8gdGhlIGdseXBoIHdpdGggbm8gZXh0cmEgcnVsZXMuXG4gICAgc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAkcHJ0LWljb24tc2l6ZTtcbiAgICAgIHdpZHRoOiAkcHJ0LWljb24tc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gRW1wdHkgc3RhdGUgZm9yIHRoZSBQcm9ncmVzcyBTdW1tYXJ5IHRhYi4gRGVsaWJlcmF0ZWx5IGEgbmV3IGJsb2NrIHJhdGhlclxuLy8gdGhhbiBhIHJlc3R5bGUgb2YgLnByb2dyZXNzLXJlcG9ydC1ub2RhdGEsIHdoaWNoIHRlYW1yZXBvcnQuaHRtbCBhbmRcbi8vIHRlc3RfYXJjaGl2ZXNfYm9keS5odG1sIGFsc28gdXNlLlxuLy9cbi8vIFR5cGUgaXMgYSB2ZXJiYXRpbSBtYXRjaCBmb3IgLnByb2dyYW1zLXBhZ2VfX2VtcHR5IChfcHJvZ3JhbV9jYXJkcy5zY3NzOlxuLy8gMTg5LTIyNikgLSB0aGUgZGVzaWduZXIncyBzcGVjIGZvciB0aGUgdHdvIGlzIGlkZW50aWNhbCwgc28gdGhlIHR3byBibG9ja3Ncbi8vIHNob3VsZCBzdGF5IGluIHN0ZXAuXG4ucHJvZ3Jlc3MtcmVwb3J0LWVtcHR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLy8gQ2VudHJlcyB0aGUgc3RhY2sgaW5zaWRlIHRoZSB0YWxsIGJveCB0aGUgbWluLWhlaWdodCBvcGVucyB1cCBiZWxvdy5cbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA5NnB4IDI0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAvLyBEZWxpYmVyYXRlbHkgTk9UIGZsZXg6IDEuIFRoZSBpbi1mbG93IGNvbHVtbiBpcyAxMDB2aCB0YWxsIGJ1dCBzdGFydHNcbiAgLy8gMTA0cHggZG93biB0aGUgZG9jdW1lbnQsIGJlY2F1c2UgLm1haW4tdmlldyByZXNlcnZlcyB0aGF0IHNwYWNlIGZvciB0aGVcbiAgLy8gZml4ZWQgaGVhZGVyIGFuZCBzZWxlY3Rpb24gYmFyLiBBIGdyb3duIGJsb2NrIHdvdWxkIGNlbnRyZSBpdHNlbGYgMTA0cHhcbiAgLy8gYmVsb3cgdGhlIHRydWUgdmlld3BvcnQgY2VudHJlIGFuZCBoYW5nIGl0cyBsb3dlciBoYWxmIHVuZGVyIHRoZSBmb2xkLlxuICBtaW4taGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skcHJ0LWVtcHR5LWNocm9tZX0pO1xuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIC8vIE5vIG1heC13aWR0aC4gLnByb2dyYW1zLXBhZ2VfX2VtcHR5IGNhcHMgaXRzIGNvcHkgYXQgNDIwcHggdG8gYmFsYW5jZSBpdFxuICAgIC8vIG92ZXIgdHdvIGxpbmVzLCBidXQgYm90aCBzZW50ZW5jZXMgaGVyZSBhcmUgbWVhbnQgdG8gc2l0IG9uIG9uZSByb3csIGFuZFxuICAgIC8vIGF0IH43MDBweCB0aGV5IGNsZWFyIHRoZSAxMTAwcHggdGhlIGNvbnRlbnQgY29sdW1uIGxlYXZlcyBlYXNpbHkuIFRoZXlcbiAgICAvLyBzdGlsbCB3cmFwIHJhdGhlciB0aGFuIG92ZXJmbG93IGlmIHRoZSB2aWV3cG9ydCBpcyBuYXJyb3cgZW5vdWdoIHRvIGZvcmNlXG4gICAgLy8gaXQsIHdoaWNoIGlzIHdoeSB0aGlzIGlzIGFuIGFic2VudCBjYXAgcmF0aGVyIHRoYW4gd2hpdGUtc3BhY2U6IG5vd3JhcC5cbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vIE91dGxpbmVkIHB1cnBsZSBDVEEsIHJlbmRlcmVkIG9ubHkgdW5kZXIgdGhlIEJvZHkgTUFQIGVtcHR5IHN0YXRlLiBDbG9uZWRcbiAgLy8gZnJvbSAudGVzdC1sYW5kaW5nX19idG4gKGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3M6MjYxMSkgLSB0aGUgdHdvXG4gIC8vIGFyZSB0aGUgc2FtZSBjb250cm9sIGF0IGRpZmZlcmVudCBzaXplcywgc28ga2VlcCB0aGVtIGluIHN0ZXAuXG4gIC8vXG4gIC8vIFRocmVlIGdsb2JhbC1idXR0b24gcnVsZXMgaGF2ZSB0byBiZSBmb3VnaHQgaGVyZSwgYWxsIG9mIHRoZW0gdGhlIHJlYXNvblxuICAvLyB0aGF0IHJ1bGUgaXMgYXMgbG9uZyBhcyBpdCBpczpcbiAgLy8gICAtIGBidXR0b25gIGdldHMgbG9jay1oZWlnaHQoNTBweCksIGkuZS4gbWluLWhlaWdodCBBTkQgbWF4LWhlaWdodCwgc28gYVxuICAvLyAgICAgNDBweCBib3ggaGFzIHRvIHJlc3RhdGUgYWxsIHRocmVlIGhlaWdodCBwcm9wZXJ0aWVzLlxuICAvLyAgIC0gX2Jhc2Uuc2NzcyBwdXRzIGEgSGVsdmV0aWNhIHN0YWNrIG9uIGV2ZXJ5IGJ1dHRvbiwgc28gdGhlIGZhbWlseSBoYXNcbiAgLy8gICAgIHRvIGJlIHJlc3RhdGVkIG9yIHRoZSBsYWJlbCBzaWxlbnRseSBmYWxscyBvZmYgTnVkaXN0YS5cbiAgLy8gICAtIGJ1dHRvbiB0ZXh0IGlzIHVwcGVyY2FzZWQgZ2xvYmFsbHkuXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDhweDtcbiAgICAvLyBObyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCBpbiB0aGlzIGJ1aWxkLCBzbyB0aGUgMXB4IGJvcmRlciBhbmQgdGhlXG4gICAgLy8gMTIvMTYgcGFkZGluZyBoYXZlIHRvIGJlIGZvbGRlZCBpbnRvIHRoZSAxODB4NDAgYm94IGJ5IGhhbmQuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgbWF4LWhlaWdodDogNDBweDtcbiAgICAvLyBUaGUgcGFyZW50J3MgZmxleCBnYXAgaXMgOHB4LCB3aGljaCBzaXRzIHRoZSBidXR0b24gdGlnaHRlciB1bmRlciB0aGVcbiAgICAvLyBkZXNjcmlwdGlvbiB0aGFuIHRoZSBkZXNpZ24gc2hvd3MuXG4gICAgbWFyZ2luOiAyNHB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YS13ZWInLCAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgLy8gVGhlIHNwZWMgc2F5cyB0ZXh0LWFsaWduOiByaWdodCwgd2hpY2ggaXMgYSBGaWdtYSBhcnRpZmFjdCAtIHRoZSBsYWJlbFxuICAgIC8vIGlzIGNlbnRyZWQgaW4gdGhlIG1vY2t1cCwgYW5kIGp1c3RpZnktY29udGVudCBjZW50cmVzIGl0IHJlZ2FyZGxlc3MuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gbmctZGlzYWJsZWQgd3JpdGVzIHRoZSBkaXNhYmxlZCBhdHRyaWJ1dGUuIE1hdGNoZXNcbiAgICAvLyAudGVzdC1sYW5kaW5nX19idG4tLWRpc2FibGVkIHNvIGFuIHVuYXZhaWxhYmxlIHRlc3QgcmVhZHMgdGhlIHNhbWUgaGVyZVxuICAgIC8vIGFzIGl0IGRvZXMgb24gdGhlIFRlc3RpbmcgcGFnZS5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZDlkYmRjO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZDlkYmRjO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtYXJjaGl2ZXMge1xuICAvLyBUaGUgZW1iZWRkZWQgcGFuZWwgcmV1c2VzIC50ZXN0LWFyY2hpdmVzLW9wdGlvbnMgLyAuYXJjaGl2ZS1jb250YWluZXIgZnJvbVxuICAvLyBfdGVzdF9hcmNoaXZlcy5zY3NzIHZlcmJhdGltLiBPbmx5IHRoZSBsZWFkaW5nIGdhcCBuZWVkcyByZXN0YXRpbmcsIHNpbmNlXG4gIC8vIGhlcmUgaXQgZm9sbG93cyB0aGUgaGVhZCBibG9jayBpbnN0ZWFkIG9mIGEgLmJhc2ljLXBhZ2UtaGVhZGVyLlxuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQodGFibGV0KSB7XG4gIC5wcm9ncmVzcy1yZXBvcnQtaGVhZCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAucHJvZ3Jlc3MtcmVwb3J0LXRhYnMge1xuICAgIGdhcDogMTZweDtcbiAgICAvLyBUaHJlZSBsYWJlbHMgZG8gbm90IGZpdCBhIG5hcnJvdyB2aWV3cG9ydDsgc2Nyb2xsaW5nIHRoZSByYWlsIGJlYXRzXG4gICAgLy8gd3JhcHBpbmcgaXQsIHdoaWNoIHdvdWxkIGJyZWFrIHRoZSBzaW5nbGUgdW5kZXJsaW5lLlxuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gIH1cblxuICAucHJvZ3Jlc3MtcmVwb3J0LWVtcHR5IHtcbiAgICAvLyBUaGUgaGVhZCBzdGFja3MgdG8gYSBjb2x1bW4gaGVyZSwgc28gJHBydC1lbXB0eS1jaHJvbWUgdW5kZXItY291bnRzIGJ5XG4gICAgLy8gcm91Z2hseSBhIHJvdy4gQSBmbGF0IGZsb29yIGJlYXRzIHJlLWRlcml2aW5nIGl0IGZvciBvbmUgYnJlYWtwb2ludC5cbiAgICBtaW4taGVpZ2h0OiAkcHJ0LWVtcHR5LW1pbjtcbiAgfVxufVxuIiwiLyogVGhlIFwiRGV0YWlsZWQgVGVzdCBSZXN1bHRzXCIgY2FyZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBwcm9ncmVzcyByZXBvcnRcbiAgICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKS5cblxuICAgRGVsaWJlcmF0ZWx5IE5PVCBhIHJlc3R5bGUgb2YgLnJlcG9ydC1kZXRhaWxzLWNvbnRhaW5lciAvIC5yZXBvcnQtZGV0YWlscyBpblxuICAgX3Byb2dyZXNzX3JlcG9ydC5zY3NzOiB0ZWFtcmVwb3J0Lmh0bWw6MzkyIHJlbmRlcnMgdGhhdCBzYW1lIG1hcmt1cCBhZ2FpbnN0XG4gICB0aG9zZSBzYW1lIHJ1bGVzLCBzbyBlZGl0aW5nIHRoZW0gaW4gcGxhY2Ugd291bGQgZHJhZyB0aGUgdGVhbSByZXBvcnQgYWxvbmdcbiAgIHdpdGggaXQuIFRoaXMgYmxvY2sgaXMgYXBwbGllZCB0byB0aGUgcHJvZ3Jlc3MgdmlldyBvbmx5OyB0aGUgdGVhbSByZXBvcnRcbiAgIGtlZXBzIHRoZSBsZWdhY3kgZGFyay96ZWJyYSBncmlkLlxuXG4gICBUaGUgZ3JpZCBpcyB0aHJlZSBwYXJhbGxlbCBmbGV4IGNvbHVtbnMgKG5hbWVzIC8gaW5mbyAvIHNjb3JlcyksIG5vdCBhXG4gICA8dGFibGU+LCBhbmQgc3RheXMgdGhhdCB3YXk6IHRoZSBuYW1lcyBjb2x1bW4gaG9sZHMgc3RpbGwgd2hpbGVcbiAgIC5wcm9ncmVzcy1kZXRhaWxzX19zY29yZXMgc2Nyb2xscyBob3Jpem9udGFsbHksIGFuZCB0aGUgbmctcmVwZWF0cyBhcmVcbiAgIHRyYW5zcG9zZWQgKHZtLmRldGFpbE5hbWVzIGRyaXZlcyByb3dzLCB2bS5kZXRhaWxEYXRlcyBkcml2ZXMgY29sdW1ucywgZWFjaFxuICAgY29sdW1uIGNhcnJ5aW5nIGl0cyBvd24gZW50cmllcyBhcnJheSkuIFR1cm5pbmcgaXQgaW50byBhIHRhYmxlIHdvdWxkIG5lZWRcbiAgIHJvdy1tYWpvciBkYXRhLCB3aGljaCBpcyBhIGNvbnRyb2xsZXIgY2hhbmdlLCBub3QgYSByZXN0eWxlLlxuXG4gICBCZWNhdXNlIHRoZSBjb2x1bW5zIGFyZSBpbmRlcGVuZGVudCBmbGV4IHN0YWNrcywgcm93cyBvbmx5IGxpbmUgdXAgYmVjYXVzZVxuICAgZXZlcnkgcm93IGluIGV2ZXJ5IGNvbHVtbiBhZ3JlZXMgb24gJHB0ZC1yb3ctaC4gUm93IHNlcGFyYXRvcnMgYXJlIHRoZXJlZm9yZVxuICAgZHJhd24gd2l0aCBhbiBpbnNldCBib3gtc2hhZG93IHJhdGhlciB0aGFuIGEgYm9yZGVyIC0gYSBib3JkZXIgd291bGQgYWRkIDFweFxuICAgb2YgbGF5b3V0IGhlaWdodCBwZXIgcm93IGFuZCB3YWxrIHRoZSBjb2x1bW5zIG91dCBvZiByZWdpc3RlciBkb3duIHRoZSB0YWJsZS5cblxuICAgU2NvcmUgY29sb3VycyBjb21lIGZyb20gLnJlZC10ZXh0IC8gLnllbGxvdy10ZXh0IC8gLmdyZWVuLXRleHRcbiAgIChfYmFzZS5zY3NzOjMxNi0zMjMpLCBpbnRlcnBvbGF0ZWQgZnJvbSB0aGUgQVBJJ3Mgcmlza0NvbG9yLiBUaG9zZSBhcmUgMCwxLDBcbiAgIHNlbGVjdG9ycywgc28gbm90aGluZyBoZXJlIG1heSBzZXQgYGNvbG9yYCBvbiBhIGRlc2NlbmRhbnQgc3BhbiBvZiBhIGNlbGw6IGFuXG4gICAwLDEsMSBydWxlIHdvdWxkIHNpbGVudGx5IHdpbiBhbmQgZmxhdHRlbiB0aGUgY29sb3VyIGNvZGluZy5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChzdGF0ZSBib3gtc2l6aW5nIGJ5IGhhbmQpXG4gICBhbmQgbm8gYXV0b3ByZWZpeGVyLiAqL1xuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbiRwdGQtdGl0bGU6ICAgICMxZjFmMjg7ICAgLy8gbmFtZSBjZWxsc1xuJHB0ZC10b3RhbC1iZzogI2Y3ZjdmODsgICAvLyBUb3RhbCByb3cgZmlsbFxuJHB0ZC1kYXRlLWg6ICAgIzczNTVCNTsgICAvLyBjb2x1bW4gZGF0ZSBsYWJlbHNcblxuLy8gVGhlIGxlZ2VuZCBoYXMgdG8gYWdyZWUgd2l0aCB0aGUgdmFsdWUgY29sb3VycyBleGFjdGx5LCBvciBpdCBzdG9wcyBiZWluZyBhXG4vLyBrZXkuIFRoZXNlIGFsc28gb3ZlcnJpZGUgLnJlZC10ZXh0IC8gLnllbGxvdy10ZXh0IC8gLmdyZWVuLXRleHQgYmVsb3csXG4vLyBzY29wZWQgdG8gdGhpcyBjYXJkIG9ubHksIHNvIHRoZSBzY29yZSBkaWdpdHMgbWF0Y2ggdGhlIGRvdHMuXG4kcHRkLXBvb3I6ICAgICAjRjA0NDM4O1xuJHB0ZC1tb2RlcmF0ZTogI0U1QTYzMztcbiRwdGQtZ29vZDogICAgICMxMkI3NkE7XG5cblxuLy8gU2hhcmVkIGJ5IGFsbCB0aHJlZSBjb2x1bW5zLiBDaGFuZ2luZyBhbnkgb2YgdGhlc2UgaW4gb25lIGNvbHVtbiBvbmx5IGlzXG4vLyB3aGF0IGJyZWFrcyB0aGUgcm93IGFsaWdubWVudCAtIHNlZSB0aGUgZmlsZSBoZWFkZXIuXG4vL1xuLy8gVGhlIGhlYWRlciBpcyBkZWxpYmVyYXRlbHkgc2hvcnRlciB0aGFuIHRoZSByb3dzIGl0IGxhYmVscy4gT24gVDIgcmVwb3J0cyBhXG4vLyBzZWNvbmQgaGVhZGVyIHJvdyAodGhlIFIgLyBMIGFiYnJldmlhdGlvbnMpIHN0YWNrcyB1bmRlciB0aGUgZmlyc3Q7IGl0IHRha2VzXG4vLyB0aGUgc2FtZSAzNHB4LCBiZWNhdXNlIHRoZSBhbGlnbm1lbnQgY29udHJhY3QgaXMgcGVyIHJvdy1zbG90IGFjcm9zcyBjb2x1bW5zXG4vLyBhbmQgdGhlIG5hbWVzL2luZm8gY29sdW1ucyBwYWQgdGhhdCBzbG90IHdpdGggYW4gZW1wdHkgaGVhZGVyIG9mIHRoZWlyIG93bi5cbiRwdGQtaGVhZC1oOiAgIDM0cHg7XG4kcHRkLXJvdy1oOiAgICA0NHB4O1xuLy8gVGhlIGxlZ2VuZCBpcyB0aGUgdGFibGUncyBsYXN0IHJvdyByYXRoZXIgdGhhbiBhIGNhcHRpb24gdW5kZXIgaXQsIHNvIGl0IGdldHNcbi8vIGl0cyBvd24gaGVpZ2h0IC0gc2hvcnRlciB0aGFuIGEgZGF0YSByb3csIHRhbGxlciB0aGFuIHRoZSBoZWFkZXIuXG4kcHRkLWxlZ2VuZC1oOiAzNnB4O1xuXG4vLyBUZXh0IGluc2V0IGZvciB0aGUgbmFtZXMgY29sdW1uLCByZXN0YXRlZCBvbiBpdHMgaGVhZGVyIHNvIHRoZSBcIk5hbWVcIiBsYWJlbFxuLy8gYW5kIHRoZSBsYWJlbHMgYmVuZWF0aCBpdCBzaGFyZSBhIGxlZnQgZWRnZS5cbiRwdGQtbmFtZS1wYWQ6ICAyMHB4O1xuJHB0ZC1uYW1lLXc6ICAgIDI1MHB4O1xuJHB0ZC1sYWJlbC13OiAgIDE4MHB4O1xuJHB0ZC1zY29yZS13OiAgIDIxMHB4O1xuJHB0ZC1pbmZvLXc6ICAgIDExMHB4O1xuJHB0ZC11bml0LXc6ICAgIDkwcHg7ICAgICAvLyBuYXJyb3dlciB0aGFuICRwdGQtaW5mby13IC0ganVzdCBob2xkcyBhIHBpbGxcbiRwdGQtY2VsbC1wYWQ6ICAxMnB4O1xuJHB0ZC1zaWRlLXc6ICAgIDU1cHg7ICAgICAvLyB0aGUgUiAvIEwgaGFsZi1jZWxscyBvbiBUMiByZXBvcnRzXG5cbi5wcm9ncmVzcy1kZXRhaWxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8vIFRoZSBsZWdhY3kgY29udGFpbmVyIHdhcyBmbGV4KDEgMCBhdXRvKSBhbmQgZ3JldyBpbnRvIHdoYXRldmVyIGhlaWdodCB0aGVcbiAgLy8gcGFnZSBjb2x1bW4gaGFkIGxlZnQgb3Zlci4gVGhhdCB3YXMgaW52aXNpYmxlIG9uIGEgdHJhbnNwYXJlbnQgYmxvY2s7IG9uIGFcbiAgLy8gYm9yZGVyZWQgY2FyZCBpdCB3b3VsZCBkcmF3IGFuIGVtcHR5IHdoaXRlIHRhaWwgdW5kZXIgdGhlIGxhc3Qgcm93LlxuICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgLy8gLnZpZXctY29udGFpbmVyLmNvbHVtbidzIGRlZmF1bHQgYWxpZ24taXRlbXM6c3RyZXRjaCB3b3VsZCBvdGhlcndpc2VcbiAgLy8gZm9yY2UgdGhpcyBjYXJkIHRvIHRoZSBmdWxsIDEwMjRweCBjb2x1bW4gd2lkdGggcmVnYXJkbGVzcyBvZiBob3dcbiAgLy8gbmFycm93ICZfX2dyaWQgZW5kcyB1cCAoc2VlICZfX2dyaWQncyBvd24gc2hyaW5rLXdyYXAgYWJvdmUpOyB0aGlzIGxldHNcbiAgLy8gdGhlIGNhcmQgaHVnIHRoZSB0YWJsZSdzIHdpZHRoIGluc3RlYWQsIGNhcHBlZCBiYWNrIGF0IHRoZSBjb2x1bW4gd2lkdGhcbiAgLy8gdmlhIG1heC13aWR0aCBzbyBhIHdpZGUgdGFibGUgc3RpbGwganVzdCBmaWxscyBpdCBhcyBiZWZvcmUuXG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgLy8gQ2xlYXJzIHRoZSBjaGFydC9zdW1tYXJ5IGJsb2NrIGFib3ZlIGFuZCB0aGUgcHJvZ3JhbXMgYmxvY2sgYmVsb3csIHdoaWNoXG4gIC8vIGlzIHdoYXQgdGhlIGxlZ2FjeSBjb250YWluZXIncyBtYXJnaW5zIGRpZC5cbiAgbWFyZ2luOiAzMHB4IDAgNTBweDtcbiAgcGFkZGluZzogMjBweDtcblxuICAvLyBDYXJkLXNjb3BlZCByZXN0YXRlbWVudCBvZiAucmVkLXRleHQgLyAueWVsbG93LXRleHQgLyAuZ3JlZW4tdGV4dFxuICAvLyAoX2Jhc2Uuc2NzczozMTYtMzIzKSBhdCAwLDIsMCBzcGVjaWZpY2l0eSwgc28gdGhlIHNjb3JlIGRpZ2l0cyBwaWNrIHVwXG4gIC8vIHRoaXMgY2FyZCdzIHBhbGV0dGUgd2l0aG91dCB0b3VjaGluZyB0aG9zZSBjbGFzc2VzIGFueXdoZXJlIGVsc2UgaW4gdGhlXG4gIC8vIGFwcC4gS2VwdCBpbiBzeW5jIHdpdGggJHB0ZC1wb29yLyRwdGQtbW9kZXJhdGUvJHB0ZC1nb29kIGFib3ZlLlxuICAucmVkLXRleHQgICAgeyBjb2xvcjogJHB0ZC1wb29yOyB9XG4gIC55ZWxsb3ctdGV4dCB7IGNvbG9yOiAkcHRkLW1vZGVyYXRlOyB9XG4gIC5ncmVlbi10ZXh0ICB7IGNvbG9yOiAkcHRkLWdvb2Q7IH1cblxuICAmX190aXRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgLy8gVGhlIGxlZ2FjeSAudGl0bGUgY2FycmllZCBhIGxvY2std2lkdGgoMTAyNHB4KSB0aGF0IGhhZCB0byBiZSB1bmRvbmUgZnJvbVxuICAgIC8vIF9wcm9ncmVzc19yZXBvcnRfdGFicy5zY3NzIG5vdyB0aGUgcGFnZSBjb2x1bW4gaXMgZmx1aWQuIE5vdGhpbmcgaGVyZVxuICAgIC8vIHBpbnMgYSB3aWR0aCwgc28gdGhhdCBwYXRjaCBpcyBnb25lLlxuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAmX190eXBlLWZpbHRlciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX190eXBlLWxhYmVsIHtcbiAgICBjb2xvcjogIzRGNEY0RjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICB9XG5cbiAgLy8gU2NvcGVkIHRvIHRoaXMgY2FyZCdzIFR5cGUgZHJvcGRvd24gb25seSAtIHRoZSBzaGFyZWQgLnNlbGVjdC1waWxsIHJ1bGVzXG4gIC8vIGluIF9zZWxlY3RfcGlsbC5zY3NzICg0IGNsYXNzZXMgZGVlcCkgYWxzbyBzdHlsZSB0aGUgdGVzdC10eXBlIGRyb3Bkb3duXG4gIC8vIGluIHRoZSBwYWdlJ3Mgb3B0aW9ucyBiYXIsIHdoaWNoIHN0YXlzIGF0IGl0cyBub3JtYWwgNDBweCBoZWlnaHQuXG4gICZfX3R5cGUtZmlsdGVyIC5zZWxlY3QtcGlsbCAuZHJvcGRvd24td3JhcHBlciAudHJpZ2dlci5waWxsIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICAvLyBUaGUgaGFpcmxpbmUgYm94LiBUd28gc3RhY2tlZCBiYW5kczogdGhlIHBhcmFsbGVsIGNvbHVtbnMsIHRoZW4gdGhlIGxlZ2VuZFxuICAvLyBhcyB0aGUgdGFibGUncyBmaW5hbCBmdWxsLXdpZHRoIHJvdy4gSXQgaGFzIHRvIGJlIGEgY29sdW1uIHdyYXBwZXIgcmF0aGVyXG4gIC8vIHRoYW4gYSBmb3VydGggc2libGluZyBjb2x1bW4sIGJlY2F1c2UgdGhlIGxlZ2VuZCBzcGFucyB0aGUgd2hvbGUgdGFibGUgYW5kXG4gIC8vIHRoZSB0aHJlZSBjb2x1bW5zIGFib3ZlIGl0IGRvIG5vdCBzaGFyZSBhIHJvdyBncmlkIGl0IGNvdWxkIGpvaW4uXG4gICZfX2dyaWQge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgLy8gQmxvY2stbGV2ZWwgZmxleCB3b3VsZCBkZWZhdWx0IHRvIHdpZHRoOjEwMCUgb2YgdGhlIGNhcmQgcmVnYXJkbGVzcyBvZlxuICAgIC8vIGhvdyBmZXcgY29sdW1ucy9kYXRlcyB0aGVyZSBhcmUsIGxlYXZpbmcgdGhlIGJvcmRlciB0cmFpbGluZyBvZmYgaW50b1xuICAgIC8vIGVtcHR5IHNwYWNlOyBpbmxpbmUtZmxleCBzaHJpbmstd3JhcHMgaXQgdG8gaXRzIGNvbnRlbnQgaW5zdGVhZCwgYW5kXG4gICAgLy8gbWF4LXdpZHRoIGNhcHMgaXQgYmFjayBhdCB0aGUgY2FyZCdzIHdpZHRoIHNvIGEgd2lkZSBkYXRlIHJhbmdlIHN0aWxsXG4gICAgLy8gc2Nyb2xscyBpbnNpZGUgJl9fc2NvcmVzIHJhdGhlciB0aGFuIG92ZXJmbG93aW5nIHRoZSBjYXJkLlxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFRoZSBwYXJhbGxlbC1jb2x1bW5zIGJhbmQuXG4gIC8vXG4gIC8vIG92ZXJmbG93OmhpZGRlbiBzd2FsbG93cyB0aGUgYm90dG9tIHJvdydzIHNlcGFyYXRvciwgd2hpY2ggZWFjaCBjb2x1bW5cbiAgLy8gcHVzaGVzIDFweCBwYXN0IHRoaXMgYm94IHdpdGggdGhlIG5lZ2F0aXZlIG1hcmdpbiBiZWxvdyAtIG90aGVyd2lzZSBpdFxuICAvLyB3b3VsZCBzdGFjayB3aXRoIHRoZSBsZWdlbmQgcm93J3Mgb3duIHRvcCBydWxlIGFuZCByZWFkIGFzIGEgMnB4IGxpbmUuXG4gIC8vXG4gIC8vIGZsZXgtc3RhcnQsIG5vdCB0aGUgZGVmYXVsdCBzdHJldGNoOiBhIHN0cmV0Y2hlZCBjb2x1bW4gd291bGQgYmUgZm9yY2VkIHRvXG4gIC8vIHRoZSB0YWxsZXN0IGNvbHVtbidzIGhlaWdodCBhbmQgaXRzIHRyYWlsaW5nIGhhaXJsaW5lIHdvdWxkIHN0b3AgbGFuZGluZyBvblxuICAvLyB0aGUgY2xpcCBsaW5lLlxuICAmX19jb2x1bW5zIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIC0tLSBjb2x1bW4gc2hlbGxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy9cbiAgLy8gRWFjaCBjYXJyaWVzIG1hcmdpbi1ib3R0b206IC0xcHggc28gaXRzIGZpbmFsIHJvdydzIHNlcGFyYXRvciBmYWxscyBvdXRzaWRlXG4gIC8vIHRoZSBjb2x1bW5zIGJhbmQgYW5kIGdldHMgY2xpcHBlZC4gQSBgJl9fcm93Omxhc3QtY2hpbGQgeyBib3gtc2hhZG93OlxuICAvLyBub25lIH1gIHdvdWxkIGhhdmUgYmVlbiB0aGUgb2J2aW91cyB3YXkgdG8gZHJvcCB0aGUgcnVsZSB1bmRlciB0aGUgbGFzdFxuICAvLyByb3csIGJ1dCB0aGUgY29sdW1ucyBkbyBub3QgYWxsIGVuZCBvbiB0aGUgc2FtZSByb3cgLSB0aGUgVEwgaW5mbyBjb2x1bW5zXG4gIC8vIGFyZSBoYXJkLWNvZGVkIHRvIGZvdXIgKHByb2dyZXNzcmVwb3J0Lmh0bWw6NDA0LTQ2MikgYWdhaW5zdCBhbiBOLXJvdyBuYW1lc1xuICAvLyBjb2x1bW4gLSBzbyBpdCB3b3VsZCBlcmFzZSBhIGhhaXJsaW5lIG1pZC10YWJsZS4gVGhlIGNsaXAgaXMgcm93LWNvdW50XG4gIC8vIGFnbm9zdGljOyB0aGUgbGVnZW5kJ3Mgb3duIHRvcCBydWxlIHRoZW4gZHJhd3Mgb25lIGNsZWFuIGZ1bGwtd2lkdGggZGl2aWRlclxuICAvLyByZWdhcmRsZXNzIG9mIGhvdyByYWdnZWQgdGhlIGNvbHVtbnMnIGJvdHRvbSBlZGdlcyBhcmUuXG5cbiAgJl9fbmFtZXMge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICBtaW4td2lkdGg6ICRwdGQtbmFtZS13O1xuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICB9XG5cbiAgJl9fc2NvcmVzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgLy8gTGVnYWN5IHVzZWQgYHNjcm9sbGAsIHdoaWNoIHJlc2VydmVzIGEgcGVybWFuZW50IGdyZXkgZ3V0dGVyIG9uIHBsYXRmb3Jtc1xuICAgIC8vIHdpdGggY2xhc3NpYyBzY3JvbGxiYXJzIGV2ZW4gd2hlbiBldmVyeSBkYXRlIGZpdHMuIEluc2lkZSBhIGJvcmRlcmVkIGJveFxuICAgIC8vIHRoYXQgdHJhY2sgcmVhZHMgYXMgcGFydCBvZiB0aGUgdGFibGUuXG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gICZfX2NvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgfVxuXG4gIC8vIC0tLSByb3dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBUMiByZXBvcnRzIHN0YWNrIGEgc2Vjb25kIGhlYWRlciBvbiBldmVyeSBjb2x1bW4sIHNvIG9uZSBoZWlnaHQga2VlcHMgdGhlXG4gIC8vIHRocmVlIHN0YWNrcyBsZXZlbCB3aGV0aGVyIHRoZXJlIGFyZSBvbmUgb3IgdHdvIGhlYWRlciByb3dzLlxuICAmX19oZWFkIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwICR4LWJvcmRlci1mYWludDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1pbi1oZWlnaHQ6ICRwdGQtaGVhZC1oO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgJl9fcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwICR4LWJvcmRlci1mYWludDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6ICRwdGQtcm93LWg7XG4gIH1cblxuICAvLyAtLS0gbmFtZXMgY29sdW1uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgJl9fbmFtZXMgJl9faGVhZCxcbiAgJl9fbmFtZXMgJl9fcm93IHtcbiAgICBtaW4td2lkdGg6ICRwdGQtbGFiZWwtdztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwdGQtbmFtZS1wYWQ7XG4gIH1cblxuICAvLyBOYW1lL1VuaXQgaGVhZGVycyByZWFkIGxpZ2h0ZXIgdGhhbiB0aGUgcmVzdCBvZiAmX19oZWFkICg2MDApIC0gdGhlIGRhdGVcbiAgLy8gaGVhZGVycyBrZWVwIDYwMCB2aWEgJl9fZGF0ZSdzIG93biBleHBsaWNpdCB3ZWlnaHQgYmVsb3cuXG4gICZfX25hbWVzICZfX2hlYWQsXG4gICZfX2luZm8tLXVuaXQgJl9faGVhZCB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gICZfX25hbWVzICZfX3JvdyB7XG4gICAgY29sb3I6ICRwdGQtdGl0bGU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBtaW4td2lkdGg6ICRwdGQtbGFiZWwtdztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG5cbiAgLy8gSXRhbGljIGlzIHRoZSBuYW1lcyBjb2x1bW4ncyBqb2IgYWxvbmU6IGluIHRoZSBzY29yZXMgY29sdW1uIHRoZSB2YWx1ZVxuICAvLyBzdGF5cyB1cHJpZ2h0IHNvIHRoZSBkaWdpdHMga2VlcCByZWFkaW5nIGFzIGRhdGEuXG4gICZfX25hbWVzICZfX3Jvdy0tc3VidG90YWwge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLy8gJl9fbmFtZXMgJl9fcm93ICgwLDIsMCkgd291bGQgb3RoZXJ3aXNlIGJlYXQgJl9fcm93LS10b3RhbCdzIGZvbnQtd2VpZ2h0XG4gIC8vICgwLDEsMCkgYW5kIGxlYXZlIHRoZSB0b3RhbCByb3cncyBuYW1lIGF0IHRoZSByZWd1bGFyIDUwMCB3ZWlnaHQuXG4gICZfX25hbWVzICZfX3Jvdy0tdG90YWwge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAvLyBQZXJmb3JtYW5jZSBUZXN0OiBldmVyeSBuYW1lIGlzIGJvbGQgZXhjZXB0IFwiLSBEaWZmZXJlbmNlXCIgcm93cywgd2hpY2hcbiAgLy8gc3RheSBhdCB0aGUgcmVndWxhciB3ZWlnaHQgZXZlbiB3aGVuIGlzU3ViVG90YWwgd291bGQgb3RoZXJ3aXNlIGJvbGRcbiAgLy8gdGhlbS4gVGhlIGV4dHJhICYtLXBlcmZvcm0gYW5jZXN0b3IgY2xhc3MgcHVzaGVzIGJvdGggcnVsZXMgdG8gM1xuICAvLyBzZWxlY3RvcnMgc28gdGhleSBiZWF0ICZfX3Jvdy0tc3VidG90YWwncyA2MDAgKDIgc2VsZWN0b3JzKSBvdXRyaWdodCxcbiAgLy8gYW5kIHRoZSBzZWNvbmQgcnVsZSdzIG93biAzIHNlbGVjdG9ycyBiZWF0IHRoZSBmaXJzdCBieSBzb3VyY2Ugb3JkZXIuXG4gICYtLXBlcmZvcm0gJl9fbmFtZXMgJl9fcm93IHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgLy8gUGVyZm9ybWFuY2UgVGVzdCBuYW1lcyBkb24ndCB1c2UgdGhlIGl0YWxpYyBzdWJ0b3RhbCBzdHlsaW5nIG90aGVyXG4gIC8vIHJlcG9ydCB0eXBlcyBkbywgZXhjZXB0IFwiLSBEaWZmZXJlbmNlXCIgcm93cywgd2hpY2ggc3RheSBpdGFsaWMgLSB0aGVcbiAgLy8gcnVsZSBiZWxvdyB3aW5zIGJ5IHNvdXJjZSBvcmRlciBzaW5jZSBib3RoIHNlbGVjdG9ycyBhcmUgMyBjbGFzc2VzIGRlZXAuXG4gICYtLXBlcmZvcm0gJl9fbmFtZXMgJl9fcm93LS1zdWJ0b3RhbCB7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB9XG5cbiAgJi0tcGVyZm9ybSAmX19uYW1lcyAmX19yb3ctLWRpZmZlcmVuY2Uge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgLy8gLS0tIGluZm8gY29sdW1ucyAoVHJhaW5pbmcgTG9hZCB0b3RhbHMsIGFkZGl0aW9uYWxMYWJlbHMpIC0tLS0tLS0tLS0tLS0tLVxuXG4gICZfX2luZm8gJl9faGVhZCxcbiAgJl9faW5mbyAmX19yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgbWluLXdpZHRoOiAkcHRkLWluZm8tdztcbiAgICBwYWRkaW5nOiAwICRwdGQtY2VsbC1wYWQ7XG4gIH1cblxuICAmX19pbmZvLS11bml0ICZfX2hlYWQsXG4gICZfX2luZm8tLXVuaXQgJl9fcm93IHtcbiAgICBtaW4td2lkdGg6ICRwdGQtdW5pdC13O1xuICB9XG5cbiAgLy8gT25lIHBpbGwgcGVyIG1lYXN1cmVtZW50IHVuaXQsIG1hdGNoZWQgdG8gdGhlIGZpeGVkIHNldCBvZiB1bml0cyB0aGVcbiAgLy8gUGVyZm9ybWFuY2UgVGVzdCdzIG93biBzY29yaW5nIGFscmVhZHkgcmV0dXJucyAoc2VlIHRoZSBcInNlY1wiL1wiJVwiL2V0Yy5cbiAgLy8gc3VmZml4IFByb2dyZXNzUmVwb3J0U2VydmljZS5qcyBzcGxpdHMgb2ZmIHNjb3JlRW50cnkuU2NvcmVWYWx1ZSkuIE5hbWVkXG4gIC8vIHBlci11bml0IHJhdGhlciB0aGFuIGRlcml2ZWQgZnJvbSB0aGUgc3RyaW5nIHNvIFwiJVwiIC0gbm90IHVzYWJsZSBpbiBhXG4gIC8vIGNsYXNzIG5hbWUgLSBoYXMgYSByZWFsIGNsYXNzIHRvIGhhbmcgb2ZmIG9mLlxuICAmX191bml0LXBpbGwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGhlaWdodDogMjJweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG4gICAgcGFkZGluZzogMnB4IDhweDtcblxuICAgIC8vIEZpeGVkIHdpZHRocyBwZXIgbGFiZWwgbGVuZ3RoICgxLzIvMy1jaGFyYWN0ZXIgdW5pdHMpOyA0KyBjaGFyYWN0ZXJcbiAgICAvLyB1bml0cyAocmVwcywgc2NvcmUpIGhhdmUgbm8gc3BlYyBhbmQgZmFsbCBiYWNrIHRvIGh1Z2dpbmcgdGhlaXIgY29udGVudC5cbiAgICAmLS1wZXJjZW50IHsgd2lkdGg6IDI2cHg7IH1cbiAgICAmLS1jbSxcbiAgICAmLS1mdCxcbiAgICAmLS1pbixcbiAgICAmLS1rZyxcbiAgICAmLS1sYiAgICAgIHsgd2lkdGg6IDM0cHg7IH1cbiAgICAmLS1zZWMgICAgIHsgd2lkdGg6IDM3cHg7IH1cblxuICAgICYtLWNtLFxuICAgICYtLWZ0LFxuICAgICYtLWluICAgICAgeyBiYWNrZ3JvdW5kOiAjRkRFQUQ3OyBjb2xvcjogI0I5MzgxNTsgfVxuICAgICYtLWtnLFxuICAgICYtLWxiICAgICAgeyBiYWNrZ3JvdW5kOiAjRUNFOUZFOyBjb2xvcjogIzU5MjVEQzsgfVxuICAgICYtLXBlcmNlbnQgeyBiYWNrZ3JvdW5kOiAjRkNFN0Y2OyBjb2xvcjogI0MxMTU3NDsgfVxuICAgICYtLXNlYyAgICAgeyBiYWNrZ3JvdW5kOiAjRDFFOUZGOyBjb2xvcjogIzE3NUNEMzsgfVxuICAgICYtLXJlcHMgICAgeyBiYWNrZ3JvdW5kOiAjRDNGOERGOyBjb2xvcjogIzE3ODAzRDsgfVxuICAgICYtLXNjb3JlICAgeyBiYWNrZ3JvdW5kOiAjRTlFQUVCOyBjb2xvcjogIzQxNDY1MTsgfVxuICB9XG5cbiAgLy8gLS0tIHNjb3JlcyBjb2x1bW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICZfX3Njb3JlcyAmX19oZWFkLFxuICAmX19zY29yZXMgJl9fcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIG1pbi13aWR0aDogJHB0ZC1zY29yZS13O1xuICAgIHBhZGRpbmc6IDAgJHB0ZC1jZWxsLXBhZDtcbiAgfVxuXG4gIC8vIFVuZGVybGluZWQgcGVyIHRoZSBkZXNpZ24uIFRoZXJlIGlzIG5vIGNsaWNrIGhhbmRsZXIgYmVoaW5kIGl0LCBzbyB0aGVcbiAgLy8gY3Vyc29yIGlzIGxlZnQgYWxvbmUgcmF0aGVyIHRoYW4gcHJvbW90ZWQgdG8gYSBwb2ludGVyLlxuICAmX19kYXRlIHtcbiAgICBjb2xvcjogJHB0ZC1kYXRlLWg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICAmX19oZWFkLS1zaWRlcyB7XG4gICAgPiBzcGFuIHtcbiAgICAgIG1pbi13aWR0aDogJHB0ZC1zaWRlLXc7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIGNlbGxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIE5vIGBjb2xvcmAgaGVyZSwgYW5kIG5vbmUgb24gYW55IGRlc2NlbmRhbnQgLSBzZWUgdGhlIGZpbGUgaGVhZGVyLlxuICAmX19jZWxsIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgJl9fc2lkZXMge1xuICAgID4gc3BhbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBtaW4td2lkdGg6ICRwdGQtc2lkZS13O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSB0b3RhbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBBcHBsaWVkIGFjcm9zcyBldmVyeSBjb2x1bW4gc28gdGhlIGZpbGwgcnVucyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgcm93LlxuICAvLyBPbmx5IHR5cGUtMSBzY29yZSBlbnRyaWVzIGNhcnJ5IGlzVG90YWwgKFByb2dyZXNzUmVwb3J0U2VydmljZS5qczo1MDkpLCBzb1xuICAvLyBvbiBUMi9UTC9QRVJGT1JNIHJlcG9ydHMgdGhlIGZpbGwgbGFuZHMgb24gdGhlIG5hbWVzIGNvbHVtbiBhbG9uZSAtIHRoZVxuICAvLyBzYW1lIHJlYWNoIHRoZSBsZWdhY3kgcHVycGxlIGJhciBoYWQuXG4gICZfX3Jvdy0tdG90YWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwdGQtdG90YWwtYmc7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8vIC0tLSBncm91cCBoZWFkZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIE9uZSBvZiB0aGVzZSBpcyBzcGxpY2VkIGludG8gZXZlcnkgY29sdW1uIGF0IHRoZSBzYW1lIGluZGV4IChzZWVcbiAgLy8gUHJvZ3Jlc3NSZXBvcnRDb250cm9sbGVyLmpzJ3MgX3JlbmRlclRlc3REZXRhaWxzKSwgc28gdGhlIHNhbWUgZml4ZWQsXG4gIC8vIHNob3J0ZXIgaGVpZ2h0IGFuZCBmaWxsIGxhbmQgb24gZXZlcnkgY29sdW1uIGZvciB0aGF0IHJvdyBhbmQgcmVhZCBhcyBhXG4gIC8vIHNpbmdsZSBmdWxsLXdpZHRoIGJhbmQgLSB0aGUgc2FtZSBwZXItY29sdW1uLWZpbGwgdGVjaG5pcXVlICZfX3Jvdy0tdG90YWxcbiAgLy8gdXNlcyBhYm92ZS5cbiAgJl9fcm93LS1ncm91cC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNkY2RjY7XG4gICAgbWluLWhlaWdodDogMjRweDtcbiAgfVxuXG4gICZfX2dyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogIzZENkQ2RDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAvLyAtLS0gbGVnZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVGhlIHRhYmxlJ3MgbGFzdCByb3csIGluc2lkZSB0aGUgYm9yZGVyZWQgYm94IHJhdGhlciB0aGFuIGNhcHRpb25lZCBiZWxvd1xuICAvLyBpdC4gSXQgc2l0cyBvdXRzaWRlIHRoZSBob3Jpem9udGFsbHktc2Nyb2xsaW5nIHNjb3JlIGNvbHVtbnMsIHNvIGl0IHN0YXlzXG4gIC8vIHB1dCBhbmQgc3RheXMgcmVhZGFibGUgaG93ZXZlciBmYXIgdGhlIGRhdGVzIGFyZSBzY3JvbGxlZC5cbiAgLy9cbiAgLy8gSXRzIHRvcCBydWxlIGlzIGFuIGluc2V0IHNoYWRvdyBsaWtlIGV2ZXJ5IG90aGVyIHJvdyBzZXBhcmF0b3IsIGJ1dCBkcmF3blxuICAvLyBvbiB0aGUgbGVhZGluZyBlZGdlIC0gdGhlIGNvbHVtbnMgYmFuZCBhYm92ZSBoYXMgYWxyZWFkeSBoYWQgaXRzIG93blxuICAvLyB0cmFpbGluZyBoYWlybGluZSBjbGlwcGVkIGF3YXksIHNvIHRoaXMgaXMgdGhlIHNpbmdsZSBkaXZpZGVyIGJldHdlZW4gdGhlXG4gIC8vIGRhdGEgYW5kIHRoZSBrZXkuXG4gICZfX2xlZ2VuZCB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtaW4taGVpZ2h0OiAkcHRkLWxlZ2VuZC1oO1xuICAgIHBhZGRpbmctbGVmdDogJHB0ZC1uYW1lLXBhZDtcbiAgfVxuXG4gICZfX2xlZ2VuZC1pdGVtIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblxuICAgICYgKyAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2xlZ2VuZC1kb3Qge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDhweDtcblxuICAgICYtLXBvb3IgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogJHB0ZC1wb29yOyB9XG4gICAgJi0tbW9kZXJhdGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcHRkLW1vZGVyYXRlOyB9XG4gICAgJi0tZ29vZCAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcHRkLWdvb2Q7IH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAucHJvZ3Jlc3MtZGV0YWlscyB7XG4gICAgcGFkZGluZzogMTZweDtcblxuICAgIC8vIEJlbG93IHRoZSBtb2JpbGUgYnJlYWtwb2ludCB0aGUgY29sdW1ucyBiYW5kIHNjcm9sbHMgYXMgb25lIHBpZWNlIGluc3RlYWRcbiAgICAvLyBvZiB0aGUgc2NvcmVzIGNvbHVtbiBzY3JvbGxpbmcgaW5zaWRlIGEgaGVsZC1zdGlsbCBuYW1lcyBjb2x1bW4sIHdoaWNoIGlzXG4gICAgLy8gd2hhdCB0aGUgbGVnYWN5IHJ1bGVzIGRpZCBhdCB0aGlzIHdpZHRoLiBUaGUgc2Nyb2xsIGdvZXMgaGVyZSByYXRoZXIgdGhhblxuICAgIC8vIG9uIF9fZ3JpZCBzbyB0aGUgbGVnZW5kIHJvdywgd2hpY2ggaXMgX19ncmlkJ3Mgb3RoZXIgY2hpbGQsIHN0YXlzIHB1dCBhbmRcbiAgICAvLyBzdGF5cyBmdWxsIHdpZHRoLiBvdmVyZmxvdy15IHN0YXlzIGhpZGRlbiBzbyB0aGUgLTFweCBjbGlwIG9mIHRoZVxuICAgIC8vIHRyYWlsaW5nIGhhaXJsaW5lIHN1cnZpdmVzLlxuICAgICZfX2NvbHVtbnMge1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmX19zY29yZXMge1xuICAgICAgb3ZlcmZsb3cteDogdW5zZXQ7XG4gICAgICBvdmVyZmxvdy15OiB1bnNldDtcbiAgICB9XG5cbiAgICAvLyBGb3VyIGl0ZW1zIG9uIG9uZSBsaW5lIGRvIG5vdCBmaXQgYSBwaG9uZTsgdGhlIGRvdHMga2VlcCB0aGVtIHJlYWRhYmxlXG4gICAgLy8gb25jZSB3cmFwcGVkLCBhbmQgdGhlIHJvdyBncm93cyBwYXN0IGl0cyAzNnB4IGZsb29yLlxuICAgICZfX2xlZ2VuZCB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgICBwYWRkaW5nOiA4cHggMCA4cHggJHB0ZC1uYW1lLXBhZDtcbiAgICB9XG4gIH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvKiBUaGUgXCJEZXRhaWxlZCBQcm9ncmFtcyBSZXN1bHRzXCIgY2FyZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBwcm9ncmVzcyByZXBvcnQnc1xuICAgUHJvZ3JhbXMgdGFiICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKS5cblxuICAgU2libGluZyBvZiBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzIGFuZCBkZWxpYmVyYXRlbHkgaXRzIG93biBibG9jayByYXRoZXIgdGhhblxuICAgYSBtb2RpZmllciBvZiBpdC4gVGhlIHR3byBjYXJkcyBzaGFyZSBhIHNoZWxsIC0gc2FtZSBib3JkZXIsIHJhZGl1cywgc2hhZG93LFxuICAgdGl0bGUgYmFyLCBoZWFkZXIvcm93IGhlaWdodHMgYW5kIGhhaXJsaW5lIHRyZWF0bWVudCAtIGJ1dCBub3RoaW5nIGVsc2U6XG4gICAucHJvZ3Jlc3MtZGV0YWlscyBpcyB0aHJlZSBwYXJhbGxlbCBmbGV4IGNvbHVtbnMgYmVjYXVzZSBpdHMgZGF0YSBhcnJpdmVzXG4gICB0cmFuc3Bvc2VkLCB3aGlsZSB2bS5kZXRhaWxQcm9ncmFtcyBpcyBvbmUgb2JqZWN0IHBlciByb3csIHNvIHRoaXMgb25lIGlzIGFcbiAgIHBsYWluIHJvdy1tYWpvciB0YWJsZS4gU2hhcmluZyBhIGNsYXNzIHdvdWxkIG1lYW4gY2FycnlpbmcgdGhhdCBjb2x1bW5cbiAgIG1hY2hpbmVyeSBmb3IgYSB0YWJsZSB0aGF0IGhhcyBubyB1c2UgZm9yIGl0LlxuXG4gICBUaGUgc2hlbGwgY29uc3RhbnRzIGJlbG93IGFyZSByZXN0YXRlZCByYXRoZXIgdGhhbiBpbXBvcnRlZCBmcm9tXG4gICBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzLCBiZWNhdXNlIFNDU1MgdmFyaWFibGVzIGFyZSBmaWxlLWxvY2FsIHVubGVzcyBob2lzdGVkXG4gICB0byBfZGVzaWduX3Rva2Vucy5zY3NzLiBJZiB5b3UgY2hhbmdlIGEgcm93IGhlaWdodCBpbiBvbmUgY2FyZCwgY2hhbmdlIGl0IGluXG4gICB0aGUgb3RoZXIgb3IgdGhlIHR3byBzdG9wIHJlYWRpbmcgYXMgb25lIGZhbWlseS5cblxuICAgUmVwbGFjZXMgLnJlcG9ydC1wcm9ncmFtcy1jb250YWluZXIgLyAucHJvZ3JhbS1ncm91cC1kcm9wZG93bi1jb250YWluZXIsXG4gICB3aGljaCB3ZXJlIHJlbW92ZWQgZnJvbSBfcHJvZ3Jlc3NfcmVwb3J0LnNjc3MgLSB0ZWFtcmVwb3J0Lmh0bWwgbmV2ZXJcbiAgIHJlbmRlcmVkIHRoZW0sIHNvIG5vdGhpbmcgZWxzZSB3YXMgb24gdGhvc2UgcnVsZXMuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCAoc3RhdGUgYm94LXNpemluZyBieSBoYW5kKVxuICAgYW5kIG5vIGF1dG9wcmVmaXhlci4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4kcGdkLXRvdGFsLWJnOiAgI2Y3ZjdmODsgICAvLyBUb3RhbCByb3cgZmlsbFxuXG4vLyBLZXB0IGluIHN0ZXAgd2l0aCAkcHRkLWhlYWQtaCAvICRwdGQtcm93LWggaW4gX3Byb2dyZXNzX2RldGFpbHMuc2NzcyAtIHNlZVxuLy8gdGhlIGZpbGUgaGVhZGVyLlxuJHBnZC1oZWFkLWg6ICAgIDM0cHg7XG4kcGdkLXJvdy1oOiAgICAgNDRweDtcblxuJHBnZC1yb3ctcGFkOiAgIDIwcHg7ICAgICAgLy8gbGVhZGluZyBpbnNldCwgcmVzdGF0ZWQgb24gdGhlIGhlYWRlclxuJHBnZC1jZWxsLXBhZDogIDhweDtcblxuLy8gQ29sdW1uIHdpZHRocywgcGVyIGRlc2lnbiBzcGVjLiBFdmVyeSBjb2x1bW4gaXMgYSBmaXhlZCBmbGV4LWJhc2lzLCBub3QgYVxuLy8gbWluLXdpZHRoOiB0aGUgaGVhZGVyIGxhYmVscyBoYXZlIHRvIHN0YXkgb3ZlciB0aGVpciB2YWx1ZXMgd2hhdGV2ZXIgdGhlXG4vLyBsb25nZXN0IHByb2dyYW0gbmFtZSBpcywgYW5kIGEgbWluLXdpZHRoIHdvdWxkIGxldCBvbmUgbG9uZyBuYW1lJ3Mgcm93IGdyb3dcbi8vIHdpZGVyIHRoYW4gdGhlIHJlc3QgYW5kIHdhbGsgdGhlIGNvbHVtbnMgb3V0IG9mIHJlZ2lzdGVyIC0gdGhlIHJvdy1tYWpvclxuLy8gZXF1aXZhbGVudCBvZiB0aGUgcGFyYWxsZWwtY29sdW1uIHRyYXAgX3Byb2dyZXNzX2RldGFpbHMuc2NzcydzIGhlYWRlclxuLy8gd2FybnMgYWJvdXQuIEEgbmFycm93IHZpZXdwb3J0IHNjcm9sbHMgdGhlIHRhYmxlICgmX19ncmlkKSBpbnN0ZWFkLlxuJHBnZC1uYW1lLXc6ICAgIDIyMHB4O1xuJHBnZC10eXBlLXc6ICAgIDE2MHB4O1xuJHBnZC1jb3VudC13OiAgIDE0NHB4O1xuJHBnZC1wZXJjZW50LXc6IDE0NHB4O1xuJHBnZC1kYXRlLXc6ICAgIDE0NHB4O1xuXG4vLyBQZXIgZGVzaWduIHNwZWMuIENsZWFycyB0aGUgcGVyY2VudCBjb2x1bW4ncyBvd24gcGFkZGluZyBwbHVzIGl0cyB2YWx1ZVxuLy8gdGV4dCAoXCIxMDAlXCIsIHRydW5jYXRlZCAtIHNlZSAmX19wZXJjZW50LXZhbHVlKSB3aXRoIHJvb20gdG8gc3BhcmUgLSBzZWVcbi8vICZfX2NlbGwtLXBlcmNlbnQuXG4kcGdkLWJhci13OiAgICAgNzVweDtcbiRwZ2QtYmFyLWg6ICAgICA2cHg7XG5cbi5wcm9ncmFtcy1kZXRhaWxzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8vIE5vdCBmbGV4KDEgMCBhdXRvKTogaW5zaWRlIC52aWV3LWNvbnRhaW5lci5jb2x1bW4gdGhpcyBjYXJkIHdvdWxkIGdyb3cgaW50b1xuICAvLyB3aGF0ZXZlciBoZWlnaHQgdGhlIHBhZ2UgY29sdW1uIGhhZCBsZWZ0IG92ZXIgYW5kIGRyYXcgYW4gZW1wdHkgd2hpdGUgdGFpbFxuICAvLyB1bmRlciB0aGUgVG90YWwgcm93LlxuICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgLy8gRXZlcnkgY29sdW1uIGJlbG93IGlzIGEgZml4ZWQgcHggd2lkdGggKHNlZSB0aGUgZmlsZSBoZWFkZXIpLCBzbyB0aGUgdGFibGVcbiAgLy8gaGFzIGEgcmVhbCwga25vd24gd2lkdGggbm93IHJhdGhlciB0aGFuIG9uZSB0aGF0IGRlcGVuZHMgb24gY29udGVudCBvciB0aGVcbiAgLy8gcGFnZSBjb2x1bW4ncyBvd24gd2lkdGguIC52aWV3LWNvbnRhaW5lci5jb2x1bW4ncyBkZWZhdWx0XG4gIC8vIGFsaWduLWl0ZW1zOiBzdHJldGNoIHdvdWxkIG90aGVyd2lzZSBmb3JjZSB0aGlzIGNhcmQgdG8gdGhlIGZ1bGwgY29sdW1uXG4gIC8vIHdpZHRoIHJlZ2FyZGxlc3MgLSBtYXRjaGVzIC5wcm9ncmVzcy1kZXRhaWxzJ3Mgb3duIGFsaWduLXNlbGYgZm9yIHRoZSBzYW1lXG4gIC8vIHJlYXNvbi5cbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAvLyBDbGVhcnMgdGhlIE92ZXJ2aWV3IGNhcmQgYWJvdmU7IHRoZSBib3R0b20gbWFyZ2luIGlzIHRoZSBwYWdlJ3Mgb3duIHRhaWwuXG4gIG1hcmdpbjogMzBweCAwIDUwcHg7XG4gIHBhZGRpbmc6IDIwcHg7XG5cbiAgJl9fdGl0bGUge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAmX190eXBlLWZpbHRlciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX190eXBlLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgfVxuXG4gIC8vIFNjb3BlZCB0byB0aGlzIGNhcmQncyBUeXBlIGRyb3Bkb3duIG9ubHkgLSB0aGUgc2hhcmVkIC5zZWxlY3QtcGlsbCBydWxlcyBpblxuICAvLyBfc2VsZWN0X3BpbGwuc2NzcyBhbHNvIHN0eWxlIHRoZSBkYXRlIHNlbGVjdG9yIGluIHRoZSBwYWdlJ3Mgb3B0aW9ucyBiYXIsXG4gIC8vIHdoaWNoIHN0YXlzIGF0IGl0cyBub3JtYWwgNDBweCBoZWlnaHQuXG4gICZfX3R5cGUtZmlsdGVyIC5zZWxlY3QtcGlsbCAuZHJvcGRvd24td3JhcHBlciAudHJpZ2dlci5waWxsIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICAvLyBUaGUgaGFpcmxpbmUgYm94IGFyb3VuZCB0aGUgdGFibGUuIG92ZXJmbG93OmhpZGRlbiBpcyB3aGF0IGNsaXBzIHRoZSBsYXN0XG4gIC8vIHJvdydzIHNlcGFyYXRvciAocHVzaGVkIDFweCBwYXN0IHRoZSBib3ggYnkgdGhlIC0xcHggbWFyZ2luIGJlbG93KSBhbmQgd2hhdFxuICAvLyByb3VuZHMgdGhlIFRvdGFsIHJvdydzIGJvdHRvbSBjb3JuZXJzIGFnYWluc3QgaXRzIGZpbGwuXG4gICZfX2dyaWQge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgLy8gQmxvY2stbGV2ZWwgZmxleCB3b3VsZCBkZWZhdWx0IHRvIHdpZHRoOiAxMDAlIG9mIHRoZSBjYXJkIHJlZ2FyZGxlc3Mgb2ZcbiAgICAvLyBob3cgbmFycm93IHRoZSBmaXhlZCBjb2x1bW5zIGFkZCB1cCB0bywgbGVhdmluZyB0aGUgYm9yZGVyIHRyYWlsaW5nIG9mZlxuICAgIC8vIGludG8gZW1wdHkgc3BhY2UgcGFzdCB0aGUgbGFzdCBjb2x1bW47IGlubGluZS1mbGV4IHNocmluay13cmFwcyBpdCB0b1xuICAgIC8vIGl0cyBjb250ZW50IGluc3RlYWQsIHNhbWUgYXMgLnByb2dyZXNzLWRldGFpbHNfX2dyaWQuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8vIEEgdGFibGUgd2lkZXIgdGhhbiB0aGUgY2FyZCBzY3JvbGxzIGhlcmUgcmF0aGVyIHRoYW4gb3ZlcmZsb3dpbmcgaXQuXG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gIC8vIC0tLSByb3dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvL1xuICAvLyBTZXBhcmF0b3JzIGFyZSBpbnNldCBib3gtc2hhZG93cywgbm90IGJvcmRlcnMsIHNvIGEgcm93IGNvc3RzIGV4YWN0bHkgaXRzXG4gIC8vIHN0YXRlZCBoZWlnaHQgLSB0aGUgc2FtZSByZWFzb24gX3Byb2dyZXNzX2RldGFpbHMuc2NzcyBkcmF3cyB0aGVtIHRoYXQgd2F5LlxuICAvLyBIZXJlIGl0IGFsc28ga2VlcHMgdGhlIGhlYWRlciBhbmQgdGhlIFRvdGFsIHJvdyBmcm9tIHBpY2tpbmcgdXAgYW4gZXh0cmFcbiAgLy8gcGl4ZWwgdGhlaXIgZmlsbHMgd291bGQgdGhlbiBzaXQgb2ZmLWNlbnRyZSBpbi5cblxuICAmX19yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogJHBnZC1yb3ctaDtcbiAgICAvLyBXaXRob3V0IHRoaXMgdGhlIGZpeGVkIGNvbHVtbnMgd291bGQgc2hyaW5rIHVuZGVyIGEgbmFycm93IGNhcmQgaW5zdGVhZFxuICAgIC8vIG9mIGhhbmRpbmcgdGhlIG92ZXJmbG93IHRvIF9fZ3JpZCdzIHNjcm9sbGVyLlxuICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XG4gIH1cblxuICAvLyBEcm9wcyB0aGUgaGFpcmxpbmUgdW5kZXIgdGhlIHRhYmxlJ3MgbGFzdCByb3cgd2l0aG91dCBhXG4gIC8vIGA6bGFzdC1jaGlsZCB7IGJveC1zaGFkb3c6IG5vbmUgfWA6IHRoZSByb3cgaXMgcHVzaGVkIDFweCBwYXN0IF9fZ3JpZCdzXG4gIC8vIGNvbnRlbnQgYm94IGFuZCB0aGUgY2xpcCBhYm92ZSBzd2FsbG93cyBpdHMgc2VwYXJhdG9yLiBEb25lIHRoaXMgd2F5IHNvIHRoZVxuICAvLyBUb3RhbCByb3cncyBmaWxsIHN0aWxsIHJlYWNoZXMgX19ncmlkJ3Mgcm91bmRlZCBib3R0b20gY29ybmVycywgd2hpY2ggYVxuICAvLyBzaGFkb3ctbGVzcyByb3cgd291bGQgbGVhdmUgYSAxcHggd2hpdGUgc2VhbSB1bmRlci5cbiAgJl9fcm93Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIH1cblxuICAmX19yb3ctLWhlYWQge1xuICAgIG1pbi1oZWlnaHQ6ICRwZ2QtaGVhZC1oO1xuICB9XG5cbiAgLy8gVGhlIHR5cGUvc2l6ZS9jb2xvdXIgYWJvdmUgc2V0IG9uICZfX3Jvdy0taGVhZCBpdHNlbGYgbmV2ZXIgcmVhY2hlZCB0aGVcbiAgLy8gaGVhZGVyIHRleHQ6IGV2ZXJ5ICZfX2NlbGwgKGFuZCAmX19jZWxsLS1uYW1lIG9uIHRvcCBvZiBpdCkgc2V0cyBpdHMgb3duXG4gIC8vIGZvbnQtc2l6ZS93ZWlnaHQvY29sb3VyIGRpcmVjdGx5LCBhbmQgYSBkZXNjZW5kYW50J3Mgb3duIGRlY2xhcmF0aW9uXG4gIC8vIGFsd2F5cyB3aW5zIG92ZXIgaW5oZXJpdGluZyBvbmUgZnJvbSBhbiBhbmNlc3Rvciwgd2hhdGV2ZXIgZWl0aGVyXG4gIC8vIHNlbGVjdG9yJ3Mgc3BlY2lmaWNpdHkgaXMuIFRoaXMgcmVzdGF0ZXMgaXQgb24gdGhlIGNlbGxzIHRoZW1zZWx2ZXMgLSBhdFxuICAvLyAwLDIsMCwgc28gaXQgYWxzbyBiZWF0cyAmX19jZWxsLS1uYW1lJ3MgMCwxLDAgY29sb3VyL3dlaWdodCB3aXRob3V0XG4gIC8vIG5lZWRpbmcgYSBzZXBhcmF0ZSBvdmVycmlkZSBmb3IgdGhhdCBjb2x1bW4uXG4gIC8vXG4gIC8vIFNwZWMgY2FsbHMgdGhlIGZhbWlseSAnTnVkaXN0YSBUUklBTCcgLSB0aGF0J3MgRmlnbWEncyBuYW1lIGZvciBhIHRyaWFsXG4gIC8vIGxpY2Vuc2Ugb2YgdGhlIHNhbWUgd2ViZm9udCB0aGlzIHdob2xlIGNhcmQgYWxyZWFkeSByZW5kZXJzIGluXG4gIC8vICgnTnVkaXN0YScsIHJlZ2lzdGVyZWQgaW4gX2ZvbnRzLnNjc3MpOyBub3RoaW5nIGhlcmUgaXMgb24gYSBkaWZmZXJlbnRcbiAgLy8gZmFtaWx5LiBTcGVjIGFsc28gYXNrcyBmb3IgXCJsZWFkaW5nLXRyaW06IG5vbmVcIiwgd2hpY2ggaGFzIG5vIGVmZmVjdCBpblxuICAvLyBhbnkgYnJvd3NlciB0aGlzIGFwcCBzdXBwb3J0cyBhbmQgaXMgbGVmdCBvZmYuXG4gICZfX3Jvdy0taGVhZCAmX19jZWxsIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB9XG5cbiAgLy8gVGhlIHN1bW1hcnkgcm93IHRoZSBzZXJ2ZXIgZmxhZ3Mgd2l0aCBJc1N1bW1hcnlUb3RhbC4gSXQgaXMgdGhlIHRhYmxlJ3MgbGFzdFxuICAvLyByb3csIHNvIGl0cyBmaWxsIHJ1bnMgaW50byBfX2dyaWQncyByb3VuZGVkIGJvdHRvbSBjb3JuZXJzLlxuICAmX19yb3ctLXRvdGFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdkLXRvdGFsLWJnO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAvLyAtLS0gY2VsbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBjb2xvciBoZXJlIGlzIGV2ZXJ5IGRhdGEgcm93J3MgdGV4dCAtIHRoZSBoZWFkZXIgb3ZlcnJpZGVzIGl0IGJhY2sgdG9cbiAgLy8gJGJsYWNrLTYwMCAoJl9fcm93LS1oZWFkICZfX2NlbGwgYmVsb3cpLCB3aGljaCBpcyB3aGF0IGFjdHVhbGx5IGtlZXBzXG4gIC8vIHRoZSBoZWFkZXIgZnJvbSByZWFkaW5nIHRoaXMgc2FtZSBkYXJrLlxuICAmX19jZWxsIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHBhZGRpbmc6IDAgJHBnZC1jZWxsLXBhZDtcbiAgfVxuXG4gIC8vIEZpeGVkIHdpZHRoLCBzYW1lIGFzIGV2ZXJ5IG90aGVyIGNvbHVtbiBub3cgKHNlZSB0aGUgZmlsZSBoZWFkZXIpIC0gYnV0XG4gIC8vIHN0aWxsIHRoZSBvbmUgY29sdW1uIHdob3NlIGNvbnRlbnQgY2FuIGdlbnVpbmVseSBydW4gbG9uZywgc28gaXQgYWxvbmVcbiAgLy8gZ2V0cyB0aGUgZWxsaXBzaXMgdHJlYXRtZW50IHJhdGhlciB0aGFuIGJlaW5nIGxlZnQgdG8gb3ZlcmZsb3cgdGhlIHJvdy5cbiAgJl9fY2VsbC0tbmFtZSB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgJHBnZC1uYW1lLXcpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwZ2Qtcm93LXBhZDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOiAkcGdkLW5hbWUtdztcbiAgfVxuXG4gICZfX2NlbGwtLXR5cGUge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwICRwZ2QtdHlwZS13KTtcbiAgICBnYXA6IDRweDtcbiAgICB3aWR0aDogJHBnZC10eXBlLXc7XG4gIH1cblxuICAmX19jZWxsLS1jb3VudCB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgJHBnZC1jb3VudC13KTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIHdpZHRoOiAkcGdkLWNvdW50LXc7XG4gIH1cblxuICAvLyBCYXIgYW5kIHZhbHVlIHNoYXJlIG9uZSBjb2x1bW46IHRoZSBiYXIgaXMgdGhlIHZhbHVlJ3MgcmVhZGluZywgc28gcHV0dGluZ1xuICAvLyBhIGNvbHVtbiBib3VuZGFyeSBiZXR3ZWVuIHRoZW0gd291bGQgc2VwYXJhdGUgYSBudW1iZXIgZnJvbSBpdHMgb3duIHNjYWxlLlxuICAmX19jZWxsLS1wZXJjZW50IHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCAkcGdkLXBlcmNlbnQtdyk7XG4gICAgZ2FwOiA4cHg7XG4gICAgd2lkdGg6ICRwZ2QtcGVyY2VudC13O1xuICB9XG5cbiAgJl9fY2VsbC0tZGF0ZSB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgJHBnZC1kYXRlLXcpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgd2lkdGg6ICRwZ2QtZGF0ZS13O1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwZ2Qtcm93LXBhZDtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gdHlwZSBiYWRnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvL1xuICAvLyBOb3QgYSBuZXcgYmFkZ2UgZGVzaWduOiB0aGlzIHJlc3RhdGVzIC5wcm9ncmFtLWNhcmRfX3RhZy0tdHlwZVxuICAvLyAoX3Byb2dyYW1fY2FyZHMuc2NzcyksIHRoZSBzYW1lIHRhZyB0aGUgUHJvZ3JhbXMgcGFnZSBjYXJkIGFuZCBUb2RheSdzXG4gIC8vIEFza3MgYWxyZWFkeSBjYXJyeSBhIHByb2dyYW0ncyBkZWxpdmVyeSB0eXBlIG9uLCBzbyBhbGwgdGhyZWUgcmVhZCBhc1xuICAvLyBvbmUgY29tcG9uZW50LiBSZXN0YXRlZCByYXRoZXIgdGhhbiBzaGFyZWQgYmVjYXVzZSBTQ1NTIHZhcmlhYmxlc1xuICAvLyAoJHByb2dyYW0tY2FyZC10YWctYmcpIGFyZSBmaWxlLW9yZGVyIGRlcGVuZGVudCB1bmRlciBAaW1wb3J0IC0gc2VlIHRoZVxuICAvLyBmaWxlIGhlYWRlciAtIGFuZCBwcm9ncmFtX2NhcmRzLmh0bWwncyBtYXJrdXAgaXMgaXRzIG93biB0ZW1wbGF0ZSwgbm90XG4gIC8vIG9uZSB0aGlzIHZpZXcgaW5jbHVkZXMuXG5cbiAgJl9fdHlwZS1waWxsIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmY0OyAvLyAkcHJvZ3JhbS1jYXJkLXRhZy1iZyBpbiBfcHJvZ3JhbV9jYXJkcy5zY3NzXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgLy8gZmxleDogMCAxIGF1dG8gKG5vdCB0aGUgcm93IGRlZmF1bHQgMCAwIGF1dG8pIHBsdXMgbWluLXdpZHRoOiAwLCBzbyB0aGVcbiAgICAvLyB0YWcgY2FuIGFjdHVhbGx5IGdpdmUgZ3JvdW5kIHRvICZfX3R5cGUtcGlsbC1sYWJlbCdzIGVsbGlwc2lzIGJlbG93XG4gICAgLy8gaW5zdGVhZCBvZiBwdXNoaW5nIHBhc3QgdGhlIDE2MHB4IGNvbHVtbiAtIFwiUHJhY3RpdGlvbmVyIExpZ2h0XCIgaXMgdGhlXG4gICAgLy8gbG9uZyBuYW1lIGhlcmUgYW5kIGRvZXMgbm90IG90aGVyd2lzZSBmaXQuIC5wcm9ncmFtLWNhcmRfX3RhZyBoYXMgbm9cbiAgICAvLyBlcXVpdmFsZW50IGNvbHVtbiB0byBmaXQgaW5zaWRlLCBzbyBpdCBuZWVkcyBub25lIG9mIHRoaXMuXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZ2FwOiA0cHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJl9fdHlwZS1pY29uIHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB3aWR0aDogMTJweDtcbiAgfVxuXG4gIC8vIFRoZSB0YWcgY2FuIHN0aWxsIGJlIHNxdWVlemVkIG5hcnJvd2VyIHRoYW4gaXRzIGxhYmVsIGF0IHZlcnkgc21hbGxcbiAgLy8gd2lkdGhzIChhIHBob25lLCBtb3N0bHkpOyBlbGxpcHNpcyB0aGVyZSBiZWF0cyBhIGJhZGdlIHRoYXQgYmxvd3Mgb3V0IGl0c1xuICAvLyBvd24gY29sdW1uLlxuICAmX190eXBlLXBpbGwtbGFiZWwge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyAtLS0gY29tcGxldGlvbiBiYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAmX19iYXIge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogJHBnZC1iYXItaDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAkcGdkLWJhci13O1xuICB9XG5cbiAgLy8gTm8gbWluLXdpZHRoOiAwJSBtdXN0IHJlYWQgYXMgYW4gZW1wdHkgdHJhY2suIEEgdmlzaWJsZSBudWIgYXQgemVybyB3b3VsZFxuICAvLyBiZSBhIGxpZSAtIHNhbWUgcnVsZSBhcyB0aGUgT3ZlcnZpZXcgdGlsZXMnIGJhcnMuXG4gICZfX2Jhci1maWxsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC8vIE5vIGNvbG91ciBjbGFzcyAodGhpcyB1c2VkIHRvIGNhcnJ5IC5ibHVlLXRleHQpIC0gdGhlIHZhbHVlIHJlYWRzIGFzIHBsYWluXG4gIC8vIGRhdGEsIHRoZSBzYW1lICMzMzMgYXMgdGhlIFNjaGVkdWxlZC9Db21wbGV0ZWQvZGF0ZSBjZWxscyBiZXNpZGUgaXQsXG4gIC8vIHJhdGhlciB0aGFuIGNhbGxpbmcgaXRzZWxmIG91dC4gTm90aGluZyBoZXJlIHNldHMgYGNvbG9yYCBhdCBhbGwsIHNvIGl0XG4gIC8vIGluaGVyaXRzIHRoYXQgZGVmYXVsdCByYXRoZXIgdGhhbiByZXN0YXRpbmcgaXQuXG4gICZfX3BlcmNlbnQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyAtLS0gaGVhZGVyIHRpcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy9cbiAgLy8gVGhlIGljb24gZm9udCBoYXMgbm8gcXVlc3Rpb24gbWFyaywgc28gdGhlIGNpcmNsZSBpcyBkcmF3biBoZXJlIGFuZCB0aGVcbiAgLy8gZ2x5cGggaXMgdGhlIGVsZW1lbnQncyBvd24gdGV4dC4gdG9vbC10aXAtdG9nZ2xlIHNldHMgcG9zaXRpb246cmVsYXRpdmUgb25cbiAgLy8gaXQgYW5kIGhhbmdzIHRoZSBidWJibGUgaW5zaWRlLCB3aGljaCBpcyB3aHkgdGhpcyBpcyBhbiBpbmxpbmUtZmxleCBib3hcbiAgLy8gcmF0aGVyIHRoYW4gYSA6YmVmb3JlIG9uIHRoZSBsYWJlbC5cblxuICAmX190aXAge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay00MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGNvbG9yOiAkYmxhY2stNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHdpZHRoOiAxNHB4O1xuXG4gICAgLy8gdG9vbC10aXAtdG9nZ2xlIHJlcGxhY2VzIHRoZSBlbGVtZW50J3MgY2hpbGRyZW4gd2l0aCBpdHMgb3duIHRlbXBsYXRlLCBzb1xuICAgIC8vIGEgbGl0ZXJhbCBcIj9cIiBpbiB0aGUgbWFya3VwIHdvdWxkIGJlIGRpc2NhcmRlZC4gVGhlIGVzdGFibGlzaGVkIGljb25zIGluXG4gICAgLy8gdGhpcyBwYWdlICguaWNvbi1pbmZvKSBjb21lIGZyb20gYSBmb250IDpiZWZvcmUgZm9yIHRoZSBzYW1lIHJlYXNvbjsgdGhpc1xuICAgIC8vIG9uZSBoYXMgbm8gZ2x5cGggaW4gdGhlIGljb24gZm9udCwgc28gaXQgZHJhd3MgaXRzIG93bi5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnPyc7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgYnViYmxlIGl0c2VsZi4gU2NvcGVkIHRvIHRoaXMgb25lIHRyaWdnZXIgcmF0aGVyIHRoYW4gcmVzdHlsaW5nXG4vLyAudG9vbHRpcC8udG9vbHRpcC1ib3R0b20gaW4gX3Rvb2x0aXAuc2Nzcywgd2hpY2ggaXMgdGhlIHNoYXJlZCBkYXJrLWdyZXlcbi8vIGJ1YmJsZSBldmVyeSBvdGhlciB0b29sLXRpcC10b2dnbGUvdG9vbC10aXAtZmFkZSBpbnN0YW5jZSBpbiB0aGUgYXBwIHN0aWxsXG4vLyB1c2VzIChUcmFpbmluZyBMb2FkJ3MgaGVhZGVycyBhbW9uZyB0aGVtKSAtIHRob3NlIGtlZXAgdGhlaXIgb3duIGxvb2suXG4vL1xuLy8gXCJib3R0b21cIiAocG9zaXRpb249XCJib3R0b21cIiBpbiB0aGUgbWFya3VwKSBpcyB0aGUgY2xvc2VzdCBvZiB0aGF0XG4vLyBkaXJlY3RpdmUncyB0aHJlZSBidWlsdC1pbiBwbGFjZW1lbnRzIHRvIHRoaXMgZGVzaWduOyBpdHMgZGVmYXVsdCBib3hcbi8vIHBvc2l0aW9uIGFuZCBjYXJldCBzdGlsbCBhc3N1bWUgYSB3aWRlciwgY2VudGVyZWQgdHJpZ2dlciwgc28gYm90aCBhcmVcbi8vIG51ZGdlZCBsZWZ0IGhlcmUgdG8gc2l0IG5lYXIgdGhpcyBvbmUgaW5zdGVhZC5cbi5wcm9ncmFtcy1kZXRhaWxzX190aXAgLnRvb2x0aXAtYm90dG9tIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWEzMztcbiAgLy8gRml4ZWQsIG5vdCBtaW4vbWF4IC0gdGhlIGNvcHkgaXMgZml4ZWQgdG9vLCBzbyB0aGVyZSBpcyBub3RoaW5nIGZvciB0aGVcbiAgLy8gYm94IHRvIGZsZXggYXJvdW5kLlxuICB3aWR0aDogMzEycHg7XG4gIGhlaWdodDogMTUycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDhweCAyMHB4O1xuICBsZWZ0OiAtMTZweDtcbiAgLy8gVGhpcyBidWJibGUncyBgdG9wOiAwYCBpcyBub3QgdGhlIGljb24ncyBvd24gdG9wLWxlZnQ6IGl0IGlzIG1lYXN1cmVkXG4gIC8vIGZyb20gdGhlIGljb24ncyBQQURESU5HIGJveCwgd2hpY2ggc2l0cyAxcHggaW5zaWRlIHRoZSBpY29uJ3MgYm9yZGVyXG4gIC8vIChfYmFzZS5zY3NzIHNldHMgYm94LXNpemluZzogYm9yZGVyLWJveCBnbG9iYWxseSwgc28gdGhhdCBib3JkZXIgZG9lc1xuICAvLyBub3QgYWRkIHRvIHRoZSBpY29uJ3Mgc3RhdGVkIDE0cHggaGVpZ2h0IC0gaXQgaXMgaW5jbHVkZWQgaW4gaXQpLiBTb1xuICAvLyB0aGUgaWNvbidzIHJlYWwgb3V0ZXIgYm90dG9tIGVkZ2UgaXMgMTRweCBkb3duIGZyb20gdGhlIGljb24ncyBvd25cbiAgLy8gY29ybmVyLCBidXQgb25seSAxNCAtIDEgPSAxM3B4IGRvd24gZnJvbSB3aGVyZSB0aGlzIGB0b3BgIGlzIG1lYXN1cmVkXG4gIC8vIGZyb20uIFRoZSBhcnJvdyBub3cgb3ZlcmxhcHMgdGhpcyBib3ggYnkgaGFsZiBpdHMgb3duIDZweCBoZWlnaHQgKHNlZVxuICAvLyAmOmFmdGVyIGJlbG93KSByYXRoZXIgdGhhbiBzaXR0aW5nIGZsdXNoIGFib3ZlIGl0LCBzbyB0aGlzIGJveCBzdGFydHNcbiAgLy8gM3B4IGxvd2VyIHRoYW4gdGhhdCBlZGdlLCBub3QgYSBmdWxsIDY6IDEzICsgMyA9IDE2LiBLZWVwIHRoaXMgaW4gc3RlcFxuICAvLyB3aXRoICY6YWZ0ZXIncyBvd24gdG9wL2hlaWdodCBieSBoYW5kOyBub3RoaW5nIGhlcmUgZGVyaXZlcyB0aGUgb3RoZXIuXG4gIHRvcDogMTZweDtcbiAgLy8gT3ZlcnJpZGVzIC50b29sdGlwJ3MgMTZweC8yNHB4Ly4zNXB4IChfdG9vbHRpcC5zY3NzKSAtIHNlZSB0aGUgcm93L2xhYmVsXG4gIC8vIHJ1bGVzIGJlbG93IGZvciB0aGUgYWN0dWFsIHR5cGUgc2l6ZXMuXG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG5cbiAgLnR0Q29udGVudCB7XG4gICAgLy8gT3ZlcnJpZGVzIC50b29sdGlwIC50dENvbnRlbnQncyBncmV5LzQwMCAoX3Rvb2x0aXAuc2NzcykgLSBldmVyeSBsaW5lXG4gICAgLy8gaGVyZSBpcyBlaXRoZXIgNTAwIG9yIDcwMCwgbmV2ZXIgdGhhdCBkZWZhdWx0LlxuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbn1cblxuLnByb2dyYW1zLWRldGFpbHNfX3RpcCAudG9vbHRpcC1ib3R0b206YWZ0ZXIge1xuICAvLyBUaGlzIHRyaWFuZ2xlIGlzIGAuZnVzVGlwYCdzIG93biBwc2V1ZG8tZWxlbWVudCwgc28gaXRzIHRvcC9sZWZ0IGJlbG93XG4gIC8vIGFyZSByZWxhdGl2ZSB0byB0aGUgQk9YIGl0c2VsZiAod2hpY2ggaGFzIG5vIGJvcmRlciBvZiBpdHMgb3duLCBzbyBub1xuICAvLyBzZWNvbmQgaW5zZXQgdG8gYWNjb3VudCBmb3IgaGVyZSB0aGUgd2F5IHRoZSBib3gncyBvd24gdG9wL2xlZnQgYWJvdmVcbiAgLy8gaGFzIHRvIGZvciB0aGUgaWNvbidzKSAtIG5vdCB0aGUgaWNvbiBkaXJlY3RseS5cbiAgLy9cbiAgLy8gNnB4IHRhbGwgcGVyIHNwZWMsIHdpZHRoIHBpY2tlZCB0byBtYXRjaCAoYSAxMnB4IGJhc2UgcmVhZHMgYXMgdGhlIHNhbWVcbiAgLy8gdHJpYW5nbGUsIGp1c3Qgc21hbGxlciwgbm90IGEgc3RyZXRjaGVkL3NxdWFzaGVkIG9uZSkuXG4gIGJvcmRlci13aWR0aDogMCA2cHggNnB4IDZweDtcbiAgYm9yZGVyLWNvbG9yOiAjMWExYTMzIHRyYW5zcGFyZW50O1xuICAvLyBIYWxmIHRoZSBhcnJvdyBvdmVybGFwcyBpbnRvIHRoZSBib3ggcmF0aGVyIHRoYW4gc2l0dGluZyBmbHVzaCBhYm92ZVxuICAvLyBpdCwgc28gb25seSB0aGUgdG9wIChwb2ludGVkKSBoYWxmIHJlYWRzIGFzIGEgc2VwYXJhdGUgc2hhcGUgLSB0aGVcbiAgLy8gYm90dG9tIGhhbGYgaXMgdGhlIHNhbWUgY29sb3VyIGFzIHRoZSBib3ggYW55d2F5IGFuZCBqdXN0IG1lcmdlcyBpbnRvXG4gIC8vIGl0LiBIYWxmIG9mIHRoZSBhcnJvdydzIG93biA2cHggaGVpZ2h0LCBuZWdhdGl2ZSBzaW5jZSB1cDogLTNweC4gU2VlXG4gIC8vIHRoZSBib3gncyBvd24gdG9wIGFib3ZlIGZvciB3aHkgdGhlIHR3byBtb3ZlIHRvZ2V0aGVyLlxuICB0b3A6IC0zcHg7XG4gIC8vIENlbnRyaW5nIHRoaXMgb24gdGhlIGljb24gYnkgY2FsY3VsYXRpb24gYWxvbmUgKGljb24gY2VudHJlIG1pbnVzIHRoaXNcbiAgLy8gYm94J3Mgb3duIGxlZnQgb2Zmc2V0IG1pbnVzIGhhbGYgdGhlIGFycm93J3Mgd2lkdGgpIGhhcyBiZWVuIG9mZiBpblxuICAvLyBwcmFjdGljZSBieSBtb3JlIHRoYW4gYWNjb3VudHMgZm9yIGluIHRoYXQgbWF0aCAtIG51ZGdlZCBieSBleWUgYWdhaW5zdFxuICAvLyB0aGUgYWN0dWFsIHJlbmRlcmVkIGljb24gaW5zdGVhZCwgbm90IHJlLWRlcml2ZWQuIDE2cHggb3ZlcnNob3QgcmlnaHQsXG4gIC8vIDEycHggb3ZlcnNob3QgbGVmdCwgMTRweCBzdGlsbCBzbGlnaHRseSBsZWZ0OyBudWRnaW5nIHJpZ2h0IGFnYWluLlxuICBsZWZ0OiAxNXB4O1xuXG4gIC8vIF90b29sdGlwLnNjc3MgZXh0ZW5kcyB0aGlzIHBzZXVkby1lbGVtZW50IGZyb20gYC50b29sdGlwLCA6YWZ0ZXJgIC1cbiAgLy8gYSBjb21tYSwgc28gU2FzcyB0cmVhdHMgaXQgYXMgdHdvIHNlcGFyYXRlIGV4dGVuZCB0YXJnZXRzIGluc3RlYWQgb2YgdGhlXG4gIC8vIHNpbmdsZSBjb21wb3VuZCBzZWxlY3RvciBgLnRvb2x0aXA6YWZ0ZXJgIHRoYXQgd2FzIGNsZWFybHkgaW50ZW5kZWQuIFRoZVxuICAvLyByZXN1bHQgaXMgdGhhdCB0aGlzIHRyaWFuZ2xlIGFsc28gaW5oZXJpdHMgLnRvb2x0aXAncyBvd24gQk9YIHN0eWxpbmdcbiAgLy8gKG1pbi13aWR0aDogMzAwcHgsIG1pbi1oZWlnaHQ6IDcycHgsIHBhZGRpbmc6IDIwcHggMjVweCwgYmFja2dyb3VuZDpcbiAgLy8gcmdiKDQ2LDQ2LDQ2KSAtIGNvbmZpcm1lZCBpbiB0aGUgY29tcGlsZWQgQ1NTLCBub3QgZ3Vlc3NlZCksIHdoaWNoXG4gIC8vIHJlbmRlcnMgYXMgYW4gb3ZlcnNpemVkIHJlY3RhbmdsZSBiZWhpbmQgdGhlIDB4MC1wbHVzLWJvcmRlciB0cmlhbmdsZSBpdFxuICAvLyB3YXMgc3VwcG9zZWQgdG8gYmUuIFRoYXQgcmVjdGFuZ2xlIGlzIGludmlzaWJsZSBldmVyeXdoZXJlIGVsc2UgaW4gdGhlXG4gIC8vIGFwcCBvbmx5IGJlY2F1c2UgaXQgaGFwcGVucyB0byBzaGFyZSAudG9vbHRpcCdzIG93biBncmV5IGJhY2tncm91bmQsIHNvXG4gIC8vIGl0IHJlYWRzIGFzIHBhcnQgb2YgdGhlIHNhbWUgYm94LiBPdmVycmlkaW5nIHRoaXMgYnViYmxlJ3MgYmFja2dyb3VuZCB0b1xuICAvLyAjMWExYTMzIGFib3ZlIGlzIHdoYXQgZXhwb3NlZCBpdDogdGhlIHR3byBncmV5cyBzdG9wcGVkIG1hdGNoaW5nLiBVbmRvbmVcbiAgLy8gaGVyZSByYXRoZXIgdGhhbiBpbiB0aGUgc2hhcmVkIGZpbGUsIHdoaWNoIGV2ZXJ5IG90aGVyIHRvb2wtdGlwLXRvZ2dsZS9cbiAgLy8gdG9vbC10aXAtZmFkZSBpbnN0YW5jZSBpbiB0aGUgYXBwIHN0aWxsIHJlbGllcyBvbiBhcy1pcy5cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnByb2dyYW1zLWRldGFpbHNfX3RpcC1yb3cge1xuICBtYXJnaW46IDAgMCAxMnB4O1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4ucHJvZ3JhbXMtZGV0YWlsc19fdGlwLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnByb2dyYW1zLWRldGFpbHNfX3RpcC10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLnByb2dyYW1zLWRldGFpbHMge1xuICAgIHBhZGRpbmc6IDE2cHg7XG5cbiAgICAvLyBUaGUgdHlwZSBmaWx0ZXIgZHJvcHMgdW5kZXIgdGhlIHRpdGxlIHJhdGhlciB0aGFuIHNxdWVlemluZyBhZ2FpbnN0IGl0LlxuICAgICZfX3RpdGxlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8qIFRoZSBcIlByb2dyZXNzIFN1bW1hcnlcIiBjYXJkIG9uIHRoZSBwcm9ncmVzcyByZXBvcnRcbiAgICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKS5cblxuICAgUmVwbGFjZXMgdGhlIGxlZ2FjeSAucmVwb3J0LXN1bW1hcnktY29udGFpbmVyIC8gLnJlcG9ydC1zdW1tYXJ5IGJsb2NrIHRoYXRcbiAgIHVzZWQgdG8gbGl2ZSBpbiBfcHJvZ3Jlc3NfcmVwb3J0LnNjc3MuIFVubGlrZSB0aGUgZGV0YWlsIHRhYmxlIGJlbG93IGl0LCB0aGlzXG4gICBtYXJrdXAgd2FzIG5ldmVyIHNoYXJlZCAtIHRlYW1yZXBvcnQuaHRtbCBkb2VzIG5vdCByZW5kZXIgaXQgLSBzbyB0aGUgb2xkXG4gICBydWxlcyB3ZXJlIGRlbGV0ZWQgb3V0cmlnaHQgcmF0aGVyIHRoYW4gbGVmdCBzdGFuZGluZyBiZXNpZGUgdGhlc2UuXG5cbiAgIENvbXBhbmlvbiB0byBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzOiBzYW1lIGNhcmQgcmVjaXBlICh3aGl0ZSBncm91bmQsIGhhaXJsaW5lXG4gICBib3JkZXIsIDEycHggcmFkaXVzLCB0aGUgc2FtZSBmYWludCBzaGFkb3cpIHNvIHRoZSB0d28gYmxvY2tzIHJlYWQgYXMgb25lXG4gICBwYWdlLiBUb2tlbnMgYXJlIHJlc3RhdGVkIGhlcmUgcmF0aGVyIHRoYW4gcmVhY2hpbmcgZm9yICRwdGQtKiwgd2hpY2ggaXNcbiAgIGZpbGUtbG9jYWwgdG8gdGhhdCBwYXJ0aWFsIGJ5IGNvbnZlbnRpb24uXG5cbiAgIFRoZSBwZXItdGVzdCBjYXJkcyBhcmUgYSBDU1MgZ3JpZCBvZiBmbGV4aWJsZSB0cmFja3MsIHNvIGEgY2FyZCdzIHdpZHRoIGlzXG4gICB3aGF0ZXZlciBpdHMgY29sdW1uIGdldHMuIFRoYXQgaXMgdGhlIHdob2xlIHJlYXNvbiB0aGUgc3BhcmtsaW5lIGlzIHJlbmRlcmVkXG4gICB3aXRoIGBjaGFydC1yZXNwb25zaXZlYDogcHJvZ3Jlc3NJbnNpZ2h0Q2hhcnQgc2l6ZXMgaXRzIGNhbnZhcyBmcm9tIHRoZVxuICAgZWxlbWVudCdzIGxhaWQtb3V0IHdpZHRoLCBhbmQgQ2hhcnQuanMgMS54IHRoZW4gcGlucyB0aGF0IHdpZHRoIGlubGluZSwgc28gYVxuICAgYHdpZHRoOiAxMDAlYCBoZXJlIHdvdWxkIG90aGVyd2lzZSBiZSBvdmVyd3JpdHRlbiBvbiBmaXJzdCBwYWludC4gVGhlXG4gICBtZWFzdXJlbWVudCBvbmx5IHdvcmtzIHdoaWxlIHRoZSBjYXJkIHN0YXlzIGBtaW4td2lkdGg6IDBgIC0gYW4gYGF1dG9gXG4gICBtaW5pbXVtIHdvdWxkIGxldCB0aGUgY2FudmFzIGl0IGlzIG1lYXN1cmluZyBjb250cmlidXRlIHRvIHRoZSB0cmFjayBzaXplIGl0XG4gICBpcyBiZWluZyBtZWFzdXJlZCBhZ2FpbnN0LlxuXG4gICBUcmFwcyB0aGlzIGJ1aWxkIGhhczogbm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQgKHN0YXRlIGJveC1zaXppbmcgYnkgaGFuZClcbiAgIGFuZCBubyBhdXRvcHJlZml4ZXIuICovXG5cbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuXG4vLyBEaXJlY3Rpb24sIG5vdCBzY29yZSBiYW5kIC0gZ3JlZW4gdXAgLyByZWQgZG93biByZWdhcmRsZXNzIG9mIGhvdyB0aGUgc2NvcmVcbi8vIGl0c2VsZiByZWFkcy4gVGhlIGJhbmQgbGl2ZXMgb24gdGhlIHNwYXJrbGluZS4gUmVzdGF0ZWQgZnJvbVxuLy8gJGluc2lnaHRzLXVwLyRpbnNpZ2h0cy1kb3duIGFuZCAkZGFpbHktcmVzdWx0cy11cC8kZGFpbHktcmVzdWx0cy1kb3duLlxuJHBncy11cDogICAgICMyMGI3Njk7XG4kcGdzLWRvd246ICAgI2M0MmEzYjtcblxuXG4vLyBUaGUgY2FyZCdzIGRlc2lnbmVkIGhlaWdodC4gQSBtaW4gcmF0aGVyIHRoYW4gYSBmaXhlZCBoZWlnaHQgc28gYSBuYW1lIHRoYXRcbi8vIHdyYXBzIHRvIHR3byBsaW5lcyBwdXNoZXMgdGhlIGNhcmQgZG93biBpbnN0ZWFkIG9mIG92ZXJmbG93aW5nIGl0OyB0aGUgZ3JpZFxuLy8gdGhlbiBsZXZlbHMgdGhlIHJlc3Qgb2YgdGhhdCByb3cgdG8gbWF0Y2guXG4kcGdzLWNhcmQtbWluLWg6IDEzMnB4O1xuLy8gV2hhdCBpcyBsZWZ0IGZvciB0aGUgc3BhcmtsaW5lIG9uY2UgdGhlIGNhcmQncyBjaHJvbWUgaXMgcGFpZCBmb3I6XG4vLyAxMzIgLSAycHggYm9yZGVyIC0gMTIgcGFkLXRvcCAtIDIwIG5hbWUgLSA0IGdhcCAtIDMyIHNjb3JlIHJvdyAtIDggZ2FwIC0gMTJcbi8vIHBhZC1ib3R0b20uIE11c3Qgc3RheSBpbiBzdGVwIHdpdGggdGhlIGNhbnZhcyBgaGVpZ2h0YCBhdHRyaWJ1dGUgaW5cbi8vIHByb2dyZXNzcmVwb3J0Lmh0bWwgLSBwcm9ncmVzc0luc2lnaHRDaGFydCBzaXplcyB0aGUgYmFja2luZyBzdG9yZSBmcm9tIHRoYXRcbi8vIGF0dHJpYnV0ZSwgYW5kIENTUyBhbG9uZSB3b3VsZCBvbmx5IHN0cmV0Y2ggdGhvc2UgcGl4ZWxzLlxuJHBncy1zcGFyay1oOiAgICA0MnB4O1xuLy8gVGhlIGNhcmQncyBpbnRlbmRlZCB3aWR0aCwgYW5kIHRoZSBmbG9vciB0aGUgZ3JpZCBtYXkgbm90IGdvIGJlbG93LiBTdGF0ZWQgYXNcbi8vIHRoZSB0cmFjayBtaW5pbXVtIHNvIGF1dG8tZmlsbCBkcm9wcyB0byBmZXdlciBjb2x1bW5zIHJhdGhlciB0aGFuIHNxdWVlemluZ1xuLy8gYW4gZXh0cmEgb25lIGluIC0gdW5kZXIgdGhpcyB0aGUgbmFtZSB3cmFwcyBhbmQgdGhlIHNjb3JlIGFuZCB0cmVuZCBjaGlwXG4vLyBzdGFydCBjcm93ZGluZyBlYWNoIG90aGVyLlxuJHBncy1jb2wtbWluOiAgICAyNjNweDtcblxuLnByb2dyZXNzLXN1bW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gTWF0Y2hlcyAucHJvZ3Jlc3MtZGV0YWlsczogdGhlIHBhZ2UgY29sdW1uIGlzIHRhbGxlciB0aGFuIHRoaXMgYmxvY2ssIGFuZCBhXG4gIC8vIGdyb3dpbmcgZmxleCBpdGVtIHdvdWxkIGRyYXcgYW4gZW1wdHkgd2hpdGUgdGFpbCB1bmRlciB0aGUgbGFzdCByb3cuXG4gIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAvLyBDbGVhcnMgdGhlIHJlcG9ydCBjaGFydCBhYm92ZS4gVGhlIGJvdHRvbSBnYXAgaXMgbGVmdCB0byAucHJvZ3Jlc3MtZGV0YWlscyxcbiAgLy8gd2hpY2ggZm9sbG93cyBpdCBhbmQgY2FycmllcyBpdHMgb3duIG1hcmdpbi10b3AuXG4gIG1hcmdpbjogMzBweCAwIDA7XG4gIHBhZGRpbmc6IDIwcHg7XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAmX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KCRwZ3MtY29sLW1pbiwgMWZyKSk7XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogJHBncy1jYXJkLW1pbi1oO1xuICAgIC8vIExvYWQtYmVhcmluZyBmb3IgdGhlIHNwYXJrbGluZSBtZWFzdXJlbWVudCAtIHNlZSB0aGUgZmlsZSBoZWFkZXIuXG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgfVxuXG4gICZfX25hbWUge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAvLyBMb25nIGNvbXBvbmVudCBuYW1lcyAoXCJUcnVuay9MdW1iYXIgU3BpbmUgTW92ZW1lbnRcIikgd3JhcCByYXRoZXIgdGhhblxuICAgIC8vIHdpZGVuIHRoZSB0cmFjaywgd2hpY2ggd291bGQgZGVzeW5jaHJvbmlzZSB0aGUgY29sdW1ucy5cbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgfVxuXG4gICZfX3ZhbHVlIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgfVxuXG4gICZfX3Njb3JlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgfVxuXG4gIC8vIE5vIGlubGluZS1mbGV4IG1peGluIGluIF9taXhpbnMuc2Nzczsgc3RhdGVkIHBsYWlubHkgdGhlIHdheVxuICAvLyAucHJvZ3Jlc3MtaW5zaWdodHNfX2NoYW5nZSBhbmQgLmRhaWx5LXJlc3VsdHNfX2NoYW5nZSBhbHJlYWR5IGRvLlxuICAmX19jaGFuZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDNweDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICYtLXVwIHtcbiAgICAgIGNvbG9yOiAkcGdzLXVwO1xuICAgIH1cblxuICAgICYtLWRvd24ge1xuICAgICAgY29sb3I6ICRwZ3MtZG93bjtcbiAgICB9XG4gIH1cblxuICAvLyBCb3RoIGdseXBocyBzdHJva2Ugd2l0aCBjdXJyZW50Q29sb3IsIHNvIHRoZSBtb2RpZmllciBhYm92ZSBpcyB3aGF0IHRpbnRzXG4gIC8vIHRoZW0uXG4gICZfX3RyZW5kLWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgfVxuXG4gICZfX3NwYXJrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRwZ3Mtc3BhcmstaDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgLy8gSG9sZHMgdGhlIGxpbmUgYmV0d2VlbiBhIHdpbmRvdyByZXNpemUgYW5kIHRoZSBkZWJvdW5jZWQgcmUtcmVuZGVyOiB0aGVcbiAgICAvLyBpbmxpbmUgcHggd2lkdGggQ2hhcnQuanMgbGVhdmVzIGJlaGluZCBpcyBzdGFsZSB1bnRpbCB0aGVuLCBhbmQgdGhlIGNhcmRcbiAgICAvLyBpcyBtaW4td2lkdGg6IDAsIHNvIHdpdGhvdXQgdGhpcyBhIHNocmlua2luZyBjb2x1bW4gb3ZlcmZsb3dzLlxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvLyBPbmx5IHRoZSBzdGFydGluZyBwb2ludDogcHJvZ3Jlc3NJbnNpZ2h0Q2hhcnQgbWVhc3VyZXMgYWdhaW5zdCB0aGlzIGFuZFxuICAgIC8vIHRoZW4gQ2hhcnQuanMgb3ZlcndyaXRlcyBpdCB3aXRoIHRoZSByZXNvbHZlZCB3aWR0aCBpbiBweC5cbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8qIFRoZSBcIk92ZXJ2aWV3XCIgY2FyZCBhdCB0aGUgdG9wIG9mIHRoZSBwcm9ncmVzcyByZXBvcnRcbiAgICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKTogdGhlIHNjb3JlIGNoYXJ0LCB0aGVcbiAgIEF2ZXJhZ2UgLyBNaW4gLyBNYXggLyBUZWFtIEF2ZXJhZ2UgLyBUZWFtIFJhbmsgdGlsZXMsIGFuZCB0aGUgdGlwIGJhbm5lci5cblxuICAgRGVsaWJlcmF0ZWx5IE5PVCBhIHJlc3R5bGUgb2YgLnJlcG9ydC1jaGFydC1jb250YWluZXIgLyAucmVwb3J0LWNoYXJ0LWRldGFpbHNcbiAgIC8gLnJlcG9ydC1jaGFydC1kZXRhaWwgaW4gX3Byb2dyZXNzX3JlcG9ydC5zY3NzOiB0ZWFtcmVwb3J0Lmh0bWw6NjUsODgsOTUsMjQyXG4gICByZW5kZXJzIHRoYXQgc2FtZSBtYXJrdXAgYWdhaW5zdCB0aG9zZSBzYW1lIHJ1bGVzLCBzbyBlZGl0aW5nIHRoZW0gaW4gcGxhY2VcbiAgIHdvdWxkIGRyYWcgdGhlIHRlYW0gcmVwb3J0IGFsb25nIHdpdGggaXQuIFRoaXMgYmxvY2sgaXMgYXBwbGllZCB0byB0aGVcbiAgIHByb2dyZXNzIHZpZXcgb25seTsgdGhlIHRlYW0gcmVwb3J0IGtlZXBzIHRoZSBsZWdhY3kgbGF5b3V0LlxuXG4gICBUaGF0IHJlbmFtZSBpcyBhbHNvIHdoYXQgYnV5cyB0aGUgY2FyZCBpdHMgcmVzcG9uc2l2ZW5lc3MgZm9yIGZyZWUuIFRocmVlXG4gICBzZXBhcmF0ZSBzaGVldHMgc2hpcCBtb2JpbGUgb3ZlcnJpZGVzIGtleWVkIHRvIHRoZSBsZWdhY3kgbmFtZXMgLVxuICAgX3Jlc3BvbnNpdmVuZXNzX3R3ZWFrcy5zY3NzOjE5NS0yMTUgYW5kIDo0NzEtNDg3LCBhbmRcbiAgIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3M6NTgyMC01ODM5LCB0aGUgbGFzdCBvZiB0aG9zZSB3aXRoICFpbXBvcnRhbnRcbiAgIGZyb20gYSBidW5kbGUgdGhhdCBsb2FkcyBhZnRlciB0aGlzIG9uZS4gTm9uZSBvZiB0aGVtIG1hdGNoIC5wcm9ncmVzcy1vdmVydmlldyxcbiAgIHNvIHRoZSBibG9jayBnZXRzIHRvIHN0YXRlIGl0cyBvd24gYnJlYWtwb2ludHMgaW5zdGVhZCBvZiBmaWdodGluZyB0aGVtLlxuXG4gICBQcm9ncmVzcyB0YWIgb25seS4gVGhpcyBjYXJkIHVzZWQgdG8gc2VydmUgdGhlIFByb2dyYW1zIHRhYiBhcyB3ZWxsLCB0aHJvdWdoXG4gICBhIHNlY29uZCBjaGFydFR5cGUgPT09ICdiYXInIGJyYW5jaCB0aGF0IGtlcHQgdGhlIGxlZ2FjeSBgY29sdW1uLWNvbnRhaW5lclxuICAgbGluZS1jaGFydGAgY2xhc3NlcyAoc2NvcmVCYXJDaGFydCBoYWQgbm8gcmVzcG9uc2l2ZSBwYXRoLCBzb1xuICAgX2NoYXJ0aW5nLnNjc3M6MjktMzYgc2l6ZWQgaXQpIHBsdXMgYSAtLWxlZ2FjeSBtb2RpZmllciBhdCAwLDIsMCB0byBiZWF0XG4gICBfcmVzcG9uc2l2ZW5lc3NfdHdlYWtzLnNjc3MncyBgLmxpbmUtY2hhcnQgeyBmbGV4KDIpIH1gIG9uIHNvdXJjZSBvcmRlci4gVGhlXG4gICBQcm9ncmFtcyB0YWIgaGFzIGl0cyBvd24gcGFpciBvZiBjYXJkcyBub3cgLSBzZWUgX3Byb2dyYW1zX292ZXJ2aWV3LnNjc3MgYW5kXG4gICBfcHJvZ3JhbXNfY29tcGxldGlvbi5zY3NzIC0gc28gdGhhdCBicmFuY2gsIGl0cyBtb2RpZmllciBhbmQgdGhlXG4gICBjaGFydEluZm8udHlwZSA9PT0gMyB0aWxlcyBhcmUgYWxsIGdvbmUsIGFuZCBub3RoaW5nIGluIHRoaXMgZmlsZSBoYXMgdG9cbiAgIHNoYXJlIHNwZWNpZmljaXR5IHdpdGggX2NoYXJ0aW5nLnNjc3MgYW55IG1vcmUuXG5cbiAgIFRoZSB2YWx1ZXMgYXJlIGRlbGliZXJhdGVseSBuZXV0cmFsLiBUaGUgbGVnYWN5IGJsb2NrIGludGVycG9sYXRlZFxuICAgLnJlZC10ZXh0IC8gLnllbGxvdy10ZXh0IC8gLmdyZWVuLXRleHQgKF9iYXNlLnNjc3M6MzE3LTMyMykgb250byBldmVyeSBzY29yZVxuICAgZnJvbSB0aGUgQVBJJ3Mgcmlza0NvbG9yOyBoZXJlIHRoZSBiYXIgdW5kZXJuZWF0aCBjYXJyaWVzIHRoZSBiYW5kIGluc3RlYWRcbiAgIGFuZCB0aGUgbnVtYmVyIHN0YXlzICRibGFjay04MDAuIFRoYXQgaXMgd2h5IHRoZSBiYXIgbW9kaWZpZXJzIHJlc3RhdGUgdGhlXG4gICBwYWxldHRlIGFzIGJhY2tncm91bmQtY29sb3IgcmF0aGVyIHRoYW4gcmV1c2luZyB0aG9zZSB0ZXh0IGNsYXNzZXMgLSB0aGVcbiAgIGNvbG91ciBjb2RpbmcgbW92ZWQsIGl0IGRpZCBub3QgZ28gYXdheS4gVGlsZXMgd2hvc2UgdmFsdWUgaGFzIG5vIDAtMTAwXG4gICBzY2FsZSB0aGVyZWZvcmUgaGF2ZSBubyBjb2xvdXIgY3VlIGF0IGFsbCwgd2hpY2ggaXMgY29ycmVjdDogdGhleSBuZXZlciBoYWRcbiAgIGEgbWVhbmluZ2Z1bCBvbmUuXG5cbiAgIENvbnNlcXVlbmNlIHdvcnRoIGtub3dpbmcgaWYgeW91IHJlLWFkZCBhIHRleHQgY2xhc3MgaGVyZTogdGhvc2Ugc2VsZWN0b3JzXG4gICBhcmUgMCwxLDAgYW5kIF9iYXNlLnNjc3MgaW1wb3J0cyBmaXJzdCwgc28gYW4gMCwxLDAgYGNvbG9yYCBpbiB0aGlzIGZpbGVcbiAgIHdpbnMgYW5kIHdvdWxkIHNpbGVudGx5IGZsYXR0ZW4gdGhlbSBhZ2Fpbi5cblxuICAgVGhlIGNoYXJ0IGNhbnZhcyBpcyBtZWFzdXJlZCwgbm90IHNpemVkLiBzY29yZUxpbmVDaGFydCByZWFkcyBfX2NoYXJ0LWJveCdzXG4gICBjbGllbnRXaWR0aC9jbGllbnRIZWlnaHQgYW5kIHdyaXRlcyB0aGUgcmVzdWx0IG9udG8gdGhlIGNhbnZhcywgc28gdGhlIGJveFxuICAgbmVlZHMgYW4gZXhwbGljaXQgaGVpZ2h0IChyZWFkaW5nIHRoZSBjYW52YXMncyBvd24gbGFpZC1vdXQgaGVpZ2h0IHdvdWxkIGJlXG4gICBjaXJjdWxhcikgYW5kIF9fY2hhcnQgbXVzdCBzdGF5IG1pbi13aWR0aDogMCAtIGFuIGBhdXRvYCBtaW5pbXVtIHdvdWxkIGxldFxuICAgdGhlIGNhbnZhcyBiZSBwYXJ0IG9mIHdoYXQgc2l6ZXMgdGhlIHRyYWNrIGl0IGlzIGJlaW5nIG1lYXN1cmVkIGFnYWluc3QuXG4gICBTYW1lIGNvbnRyYWN0IF9wcm9ncmVzc19zdW1tYXJ5LnNjc3M6MTQtMjIgZG9jdW1lbnRzIGZvciB0aGUgc3BhcmtsaW5lcy5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChzdGF0ZSBib3gtc2l6aW5nIGJ5IGhhbmQpXG4gICBhbmQgbm8gYXV0b3ByZWZpeGVyLiAqL1xuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FwdGlvbiBhbmQgYSBQcm9ncmVzcyBTdW1tYXJ5IGNhcmQgbmFtZSByZWFkIGFsaWtlLlxuJHBvdi1uZXV0cmFsOiAgICAgIzkyOTI5MjsgICAvLyBiYXIgZmlsbCB3aGVuIHRoZSBzZXJ2ZXIgc2VudCBubyByaXNrIGNvbG91cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWlycm9yaW5nIGNhbnZhc19jaGFydHMuaWRlbnRpZnlDb2xvckJ5TmFtZSdzIGZhbGxiYWNrXG5cbi8vIFRoZSBiYXIgdW5kZXIgYSBudW1iZXIgaXMgYSByZWFkaW5nIG9mIHRoYXQgbnVtYmVyJ3MgcmlzayBiYW5kLCBzbyB0aGVzZSBoYXZlXG4vLyB0byBhZ3JlZSB3aXRoIHRoZSB0ZXh0IHBhbGV0dGUgZXhhY3RseSBvciB0aGUgYmFyIHN0b3BzIG1lYW5pbmcgYW55dGhpbmcuXG4vLyBSZXN0YXRlZCBmcm9tIC5yZWQtdGV4dCAvIC55ZWxsb3ctdGV4dCAvIC5ncmVlbi10ZXh0IChfYmFzZS5zY3NzOjMxNy0zMjMpIC1cbi8vIGRlbGliZXJhdGVseSBOT1QgY2FudmFzX2NoYXJ0cy5pZGVudGlmeUNvbG9yQnlOYW1lJ3MgI2QxNDA0YiAvICMzNGI2NzgsIHdoaWNoXG4vLyB0aGUgb3V0Z29pbmcgc2NvcmUtbGluZS1ncmFwaCBjYW52YXMgdXNlZCBhbmQgd2hpY2ggbmV2ZXIgbWF0Y2hlZCB0aGUgbnVtYmVyXG4vLyBwcmludGVkIGFib3ZlIGl0LlxuJHBvdi1wb29yOiAgICAgICAgI2M0MmEzYjtcbiRwb3YtbW9kZXJhdGU6ICAgICNkZmMwM2Y7XG4kcG92LWdvb2Q6ICAgICAgICAjMjBiNzY5O1xuXG4vLyBEaXJlY3Rpb24sIG5vdCBzY29yZSBiYW5kIC0gZ3JlZW4gdXAgLyByZWQgZG93biByZWdhcmRsZXNzIG9mIGhvdyB0aGUgc2NvcmVcbi8vIGl0c2VsZiByZWFkcy4gU2FtZSBwYWlyIGFzICRwZ3MtdXAgLyAkcGdzLWRvd24uXG4kcG92LXVwOiAgICAgICAgICAjMjBiNzY5O1xuJHBvdi1kb3duOiAgICAgICAgI2M0MmEzYjtcblxuLy8gVGhlIGxlZ2VuZCBoYXMgdG8gYWdyZWUgd2l0aCB0aGUgY2hhcnQgaXQgbGFiZWxzLCBvciBpdCBzdG9wcyBiZWluZyBhIGtleS5cbi8vIFRoZXNlIGFyZSBzY29yZUxpbmVDaGFydCdzIGNvbG9ycyB0YWJsZSByZXN0YXRlZCAoU2NvcmVMaW5lQ2hhcnQuanM6NjItNjcpLlxuJHBvdi1sZWdlbmQtc2NvcmU6ICAgcmdiYSgxNTEsIDEwNCwgMjM1LCAwLjkpO1xuJHBvdi1sZWdlbmQtYXZlcmFnZTogcmdiYSgyMDcsIDIxOCwgMjIwLCAwLjkpO1xuJHBvdi1sZWdlbmQtdGVhbTogICAgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjc1KTtcblxuXG4vLyBUaGUgYm94IHNjb3JlTGluZUNoYXJ0IG1lYXN1cmVzLiBDaGFuZ2luZyB0aGVzZSBjaGFuZ2VzIHRoZSBjaGFydCdzIGFzcGVjdFxuLy8gcmF0aW8gZGlyZWN0bHkgLSB0aGVyZSBpcyBubyBtYWludGFpbkFzcGVjdFJhdGlvIGluIHBsYXkuXG4kcG92LWNoYXJ0LWg6ICAgICAzMDBweDtcbiRwb3YtY2hhcnQtaC1zbTogIDIyMHB4O1xuXG4kcG92LWNvbC1nYXA6ICAgICAzMnB4O1xuJHBvdi10aWxlLWdhcC14OiAgMTZweDtcbiRwb3YtdGlsZS1nYXAteTogIDIwcHg7XG4kcG92LWJhci1oOiAgICAgICA1cHg7XG4vLyBGaXhlZCByYXRoZXIgdGhhbiBmaWxsaW5nIHRoZSB0aWxlLCBzbyBhIGJhciByZWFkcyB0aGUgc2FtZSBsZW5ndGggd2hldGhlclxuLy8gaXRzIHRyYWNrIHNpdHMgaW4gYSAzLXVwIGdyaWQgb3IgYSAyLXVwIG9uZS4gQ2FwcGVkIGF0IHRoZSB0cmFjayB3aWR0aCBiZWxvdyxcbi8vIHNpbmNlIHRoZSBuYXJyb3dlc3QgdGlsZXMgZmFsbCB1bmRlciB0aGlzLlxuJHBvdi1iYXItdzogICAgICAgMTYwcHg7XG5cbi8vIFRoZSB0aXAgYmFubmVyJ3MgbGF2ZW5kZXIsIGFuZCB0aGUgQ1RBJ3MgYmFja2dyb3VuZCBzbyBpdCByZWFkcyBhcyBwYXJ0IG9mXG4vLyB0aGUgc2FtZSBzdXJmYWNlIHJhdGhlciB0aGFuIGEgd2hpdGUgY2hpcCBzaXR0aW5nIG9uIHRvcCBvZiBpdC4gQ2xvc2UgdG8gYnV0XG4vLyBkaXN0aW5jdCBmcm9tICRwdXJwbGUtNTAgKCNmOWY4ZmYpIC0gbm90IGEgc3Vic3RpdHV0ZSBmb3IgaXQuXG4kcG92LWJhbm5lci1iZzogICAjZjhmNWZmO1xuXG4ucHJvZ3Jlc3Mtb3ZlcnZpZXcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gTWF0Y2hlcyAucHJvZ3Jlc3Mtc3VtbWFyeSBhbmQgLnByb2dyZXNzLWRldGFpbHM6IC52aWV3LWNvbnRhaW5lci5jb2x1bW4gaXNcbiAgLy8gYSBmbGV4IGNvbHVtbiwgYW5kIGEgZ3Jvd2luZyBpdGVtIHdvdWxkIGRyYXcgYW4gZW1wdHkgd2hpdGUgdGFpbCB1bmRlciB0aGVcbiAgLy8gYmFubmVyLlxuICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgLy8gQ2xlYXJzIC5wcm9ncmVzcy1yZXBvcnQtb3B0aW9ucyBhYm92ZS4gVGhlIGJvdHRvbSBnYXAgaXMgbGVmdCB0b1xuICAvLyAucHJvZ3Jlc3Mtc3VtbWFyeSwgd2hpY2ggZm9sbG93cyBhbmQgY2FycmllcyBpdHMgb3duIG1hcmdpbi10b3AuXG4gIG1hcmdpbjogMjBweCAwIDA7XG4gIHBhZGRpbmc6IDIwcHg7XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAvLyBmbGV4LXN0YXJ0LCBub3QgdGhlIGRlZmF1bHQgc3RyZXRjaDogdGhlIHRpbGVzIGdyaWQgaXMgc2hvcnRlciB0aGFuIHRoZVxuICAvLyBjaGFydCBvbiBtb3N0IHJlcG9ydHMsIGFuZCBhIHN0cmV0Y2hlZCBncmlkIHdvdWxkIHNwcmVhZCBpdHMgcm93cyB0byBmaWxsXG4gIC8vIHRoZSBjaGFydCdzIGhlaWdodCBpbnN0ZWFkIG9mIHNpdHRpbmcgYXQgdGhlIHRvcCBvZiB0aGUgY2FyZC5cbiAgJl9fYm9keSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgIGdhcDogJHBvdi1jb2wtZ2FwO1xuICB9XG5cbiAgLy8gMSAxIDAgcmF0aGVyIHRoYW4gMSAxIGF1dG8gc28gdGhlIGNoYXJ0IGFuZCB0aGUgdGlsZXMgc3BsaXQgdGhlIHJvdyBldmVubHlcbiAgLy8gcmVnYXJkbGVzcyBvZiBob3cgd2lkZSB0aGUgdGlsZXMnIGNvbnRlbnQgd2FudHMgdG8gYmUuIG1pbi13aWR0aDogMCBpc1xuICAvLyBsb2FkLWJlYXJpbmcgZm9yIHRoZSBjYW52YXMgbWVhc3VyZW1lbnQgLSBzZWUgdGhlIGZpbGUgaGVhZGVyLlxuICAmX19jaGFydCB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgMCk7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fY2hhcnQtYm94IHtcbiAgICBoZWlnaHQ6ICRwb3YtY2hhcnQtaDtcbiAgfVxuXG4gIC8vIE5vIHdpZHRoIG9yIGhlaWdodCBoZXJlOiBzY29yZUxpbmVDaGFydCBvd25zIGJvdGgsIGFuZCBDaGFydC5qcyAxLnggcGluc1xuICAvLyB0aGUgcmVzb2x2ZWQgdmFsdWVzIGlubGluZSBhbnl3YXkgKHJldGluYVNjYWxlIHdyaXRlcyBzdHlsZS53aWR0aCBpbiBweCksXG4gIC8vIHNvIGEgYHdpZHRoOiAxMDAlYCB3b3VsZCBvbmx5IHN1cnZpdmUgdW50aWwgZmlyc3QgcGFpbnQuXG4gICZfX2NoYXJ0LWNhbnZhcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmX19sZWdlbmQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG5cbiAgLy8gQWRqYWNlbnQtc2libGluZyBtYXJnaW4gcmF0aGVyIHRoYW4gYSBnYXAgb24gdGhlIGNvbnRhaW5lciwgc28gYSB3cmFwcGVkXG4gIC8vIHNlY29uZCBsaW5lIGRvZXMgbm90IGluaGVyaXQgYSBsZWFkaW5nIGluZGVudC5cbiAgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXG4gICAgJiArICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fbGVnZW5kLWRvdCB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogOHB4O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG5cbiAgICAmLS1zY29yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG92LWxlZ2VuZC1zY29yZTtcbiAgICB9XG5cbiAgICAvLyBUaGUgY2hhcnQgZHJhd3MgdGhpcyBhdCAwLjUgYWxwaGEgYXMgYSBmaWxsZWQgYmFuZCwgd2hlcmUgdGhlIGFyZWEgZ2l2ZXNcbiAgICAvLyBpdCBwcmVzZW5jZS4gQW4gOHB4IGRvdCBhdCB0aGF0IGFscGhhIGlzIGludmlzaWJsZSBvbiB3aGl0ZSwgc28gdGhlIGtleVxuICAgIC8vIGNhcnJpZXMgdGhlIHNhbWUgaHVlIGF0IGEgbGVnaWJsZSBvcGFjaXR5LlxuICAgICYtLWF2ZXJhZ2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBvdi1sZWdlbmQtYXZlcmFnZTtcbiAgICB9XG5cbiAgICAmLS10ZWFtIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtbGVnZW5kLXRlYW07XG4gICAgfVxuICB9XG5cbiAgJl9fbGVnZW5kLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gIC8vIFRocmVlIGZpeGVkIHRyYWNrcyByYXRoZXIgdGhhbiBhdXRvLWZpbGw6IHRoZSB0aWxlIHNldCBpcyBhIGtub3duIDEtNiBwZXJcbiAgLy8gcmVwb3J0IHR5cGUgYW5kIHRoZSBkZXNpZ24gcGlucyBBdmVyYWdlIC8gTWluIC8gTWF4IHRvIG9uZSByb3cuXG4gIC8vIG1pbm1heCgwLCAxZnIpIHJhdGhlciB0aGFuIDFmciBzbyBhIGxvbmcgdmFsdWUgY2Fubm90IHdpZGVuIGl0cyB0cmFjay5cbiAgJl9fdGlsZXMge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIDApO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiAkcG92LXRpbGUtZ2FwLXkgJHBvdi10aWxlLWdhcC14O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBBIGNvbHVtbiBzbyBfX2JhciBjYW4gYmUgcHVzaGVkIHRvIHRoZSBib3R0b20gd2l0aCBtYXJnaW4tdG9wOiBhdXRvLiBUaGF0XG4gIC8vIGlzIHdoYXQga2VlcHMgdGhlIGJhcnMgYWNyb3NzIGEgcm93IG9uIG9uZSBiYXNlbGluZSBldmVuIHRob3VnaCB0aGUgdmFsdWVcbiAgLy8gcm93cyBhYm92ZSB0aGVtIGRpZmZlciBpbiBoZWlnaHQgKGEgdGlsZSB3aXRoIGEgdHJlbmQgY2hpcCBpcyBubyB0YWxsZXJcbiAgLy8gdGhhbiBvbmUgd2l0aG91dCwgYnV0IGEgd3JhcHBlZCBsYWJlbCBpcykuXG4gICZfX3RpbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX190aWxlLWhlYWQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGdhcDogNHB4O1xuICB9XG5cbiAgJl9fdGlsZS1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX192YWx1ZS1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDRweCAwIDEycHg7XG4gIH1cblxuICAmX192YWx1ZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cblxuICAvLyBObyBpbmxpbmUtZmxleCBtaXhpbiBpbiBfbWl4aW5zLnNjc3M7IHN0YXRlZCBwbGFpbmx5IHRoZSB3YXlcbiAgLy8gLnByb2dyZXNzLXN1bW1hcnlfX2NoYW5nZSBhbmQgLmRhaWx5LXJlc3VsdHNfX2NoYW5nZSBhbHJlYWR5IGRvLlxuICAvL1xuICAvLyBUaGUgYmFzZSBjb2xvdXIgaXMgdGhlIG5ldXRyYWwgb25lLCBmb3IgdGhlIFRyYWluaW5nIExvYWQgJSBDaGFuZ2UgdGlsZSxcbiAgLy8gd2hlcmUgYSByaXNlIGlzIG5laXRoZXIgZ29vZCBub3IgYmFkIGFuZCB0aGUgYXJyb3cgb25seSBzdGF0ZXMgZGlyZWN0aW9uLlxuICAvLyBUaGUgdHdvIG1vZGlmaWVycyBiZWxvdyBhcmUgZXF1YWwgc3BlY2lmaWNpdHkgYW5kIGRlY2xhcmVkIGFmdGVyLCBzbyB0aGV5XG4gIC8vIHRha2UgaXQgYmFjayB3aGVyZXZlciB0aGUgZGlyZWN0aW9uIGRvZXMgY2FycnkgYSB2ZXJkaWN0LlxuICAmX19jaGFuZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDNweDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICYtLXVwIHtcbiAgICAgIGNvbG9yOiAkcG92LXVwO1xuICAgIH1cblxuICAgICYtLWRvd24ge1xuICAgICAgY29sb3I6ICRwb3YtZG93bjtcbiAgICB9XG4gIH1cblxuICAvLyBCb3RoIGdseXBocyBzdHJva2Ugd2l0aCBjdXJyZW50Q29sb3IsIHNvIHRoZSBtb2RpZmllciBhYm92ZSBpcyB3aGF0IHRpbnRzXG4gIC8vIHRoZW0uXG4gICZfX3RyZW5kLWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgfVxuXG4gIC8vIG1hcmdpbi10b3A6IGF1dG8gcGlucyB0aGUgYmFyIHRvIHRoZSB0aWxlJ3MgYm90dG9tIGVkZ2UuIE9ubHkgdGlsZXMgdGhhdFxuICAvLyBoYXZlIG9uZSBhcmUgYWZmZWN0ZWQ7IGEgdGlsZSB3aG9zZSB2YWx1ZSBoYXMgbm8gMC0xMDAgc2NhbGUgcmVuZGVycyBub1xuICAvLyBiYXIgYXQgYWxsIHJhdGhlciB0aGFuIGFuIGVtcHR5IHRyYWNrLlxuICAmX19iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogJHBvdi1iYXItaDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIC8vIEEgZ3JpZCB0cmFjayBuYXJyb3dlciB0aGFuICRwb3YtYmFyLXcgd291bGQgb3RoZXJ3aXNlIGJlIHdpZGVuZWQgYnkgdGhlXG4gICAgLy8gYmFyLCBzaW5jZSB0aGUgdGlsZSBpcyBtaW4td2lkdGg6IDAgYW5kIHRoZSBncmlkIHRyYWNrcyBhcmUgbWlubWF4KDAsIDFmcikuXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6ICRwb3YtYmFyLXc7XG4gIH1cblxuICAvLyBObyBtaW4td2lkdGg6IGEgc2NvcmUgb2YgMC4wMCBtdXN0IHJlYWQgYXMgYW4gZW1wdHkgdHJhY2suIEEgdmlzaWJsZSBudWJcbiAgLy8gYXQgemVybyB3b3VsZCBiZSBhIGxpZS5cbiAgJl9fYmFyLWZpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtbmV1dHJhbDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmLS1yZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBvdi1wb29yO1xuICAgIH1cblxuICAgICYtLXllbGxvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG92LW1vZGVyYXRlO1xuICAgIH1cblxuICAgICYtLWdyZWVuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtZ29vZDtcbiAgICB9XG5cbiAgICAvLyBQZXJjZW50IENvbXBsZXRlZCBpcyBhIGNvbXBsZXRpb24gcmF0ZSwgbm90IGEgcmlzayBiYW5kLiAuYmx1ZS10ZXh0IGlzXG4gICAgLy8gYWxyZWFkeSAjOTc2OEVCLCBzbyB0aGUgbnVtYmVyIGFuZCBpdHMgYmFyIHN0aWxsIGFncmVlLlxuICAgICYtLXB1cnBsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAmX190cm9waHkge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW46IDRweCAwIDEycHg7XG4gIH1cblxuICAvLyBGaWxscyB3aXRoIGN1cnJlbnRDb2xvciwgc28gdGhpcyBpcyB3aGVyZSB0aGUgcHVycGxlIGNvbWVzIGZyb20uIFRoZVxuICAvLyBvdXRnb2luZyA8aW1nIHNyYz1cIi9pbWFnZXMvdHJvcGh5LnN2Z1wiPiBjb3VsZCBub3QgYmUgdGludGVkLlxuICAmX190cm9waHktaWNvbiB7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIC8vIFNpemVkIHRvIHRoZSB2YWx1ZSdzIGxpbmUgYm94IGJlc2lkZSBpdCByYXRoZXIgdGhhbiB0byBpdHMgZm9udCBzaXplLCBzb1xuICAgIC8vIHRoZSBnbHlwaCBhbmQgdGhlIG9yZGluYWwgc2hhcmUgYSBoZWlnaHQuXG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICB9XG5cbiAgLy8gTWF0Y2hlcyBfX3ZhbHVlOiB0aGUgb3JkaW5hbCBpcyBhIHZhbHVlIGxpa2UgYW55IG90aGVyLCBhbmQgdGhlIHB1cnBsZSBpc1xuICAvLyBzcGVudCBvbiB0aGUgdHJvcGh5IGJlc2lkZSBpdCByYXRoZXIgdGhhbiBvbiB0aGUgbnVtYmVyLlxuICAmX190cm9waHktcGxhY2Uge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG5cbiAgJl9fYmFubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG92LWJhbm5lci1iZztcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICB9XG5cbiAgJl9fYmFubmVyLWljb24ge1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gIH1cblxuICAvLyBtaW4td2lkdGg6IDAgc28gdGhlIGNvcHkgd3JhcHMgcmF0aGVyIHRoYW4gcHVzaGluZyB0aGUgQ1RBIG9mZiB0aGUgY2FyZC5cbiAgJl9fYmFubmVyLXRleHQge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gVGhlIGxpZ2h0YnVsYiByaWRlcyBpbnNpZGUgdGhpcyByb3cgcmF0aGVyIHRoYW4gaW4gaXRzIG93biBjb2x1bW4gYmVzaWRlXG4gIC8vIHRoZSBjb3B5IGJsb2NrLCBzbyB0aGUgaWNvbiBzaXRzIG9uIHRoZSB0aXRsZSBsaW5lIGFuZCB0aGUgYm9keSB0ZXh0IHN0YXJ0c1xuICAvLyBmbHVzaCB3aXRoIHRoZSBpY29uIGluc3RlYWQgb2YgaW5kZW50ZWQgcGFzdCBpdC5cbiAgJl9fYmFubmVyLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBjb2xvcjogJHB1cnBsZS03MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIH1cblxuICAvLyBwcmUtbGluZSBzbyB0aGUgXFxuIGJha2VkIGludG8gUHJvZ3Jlc3NfT3ZlcnZpZXdfVGlwXypfQm9keSByZW5kZXJzIGFzIGFuXG4gIC8vIGFjdHVhbCBsaW5lIGJyZWFrIGluc3RlYWQgb2YgY29sbGFwc2luZyBsaWtlIG9yZGluYXJ5IHdoaXRlc3BhY2UuXG4gICZfX2Jhbm5lci1ib2R5IHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICB9XG5cbiAgLy8gRGVyaXZlZCBmcm9tIC5wcm9ncmVzcy1yZXBvcnQtZW1wdHlfX2N0YSAoX3Byb2dyZXNzX3JlcG9ydF90YWJzLnNjc3M6MzYxKSxcbiAgLy8gd2hpY2ggZG9jdW1lbnRzIHdoeSBhIGJ1dHRvbiBpbiB0aGlzIGJ1aWxkIG5lZWRzIHRoaXMgbXVjaCByZXN0YXRpbmc6XG4gIC8vICAgLSBgYnV0dG9uYCBnZXRzIGxvY2staGVpZ2h0KDUwcHgpLCBpLmUuIG1pbi1oZWlnaHQgQU5EIG1heC1oZWlnaHQsIHNvIGFcbiAgLy8gICAgIDM2cHggYm94IGhhcyB0byByZXN0YXRlIGFsbCB0aHJlZSBoZWlnaHQgcHJvcGVydGllcy5cbiAgLy8gICAtIF9iYXNlLnNjc3MgcHV0cyBhIEhlbHZldGljYSBzdGFjayBvbiBldmVyeSBidXR0b24sIHNvIHRoZSBmYW1pbHkgaGFzXG4gIC8vICAgICB0byBiZSByZXN0YXRlZCBvciB0aGUgbGFiZWwgc2lsZW50bHkgZmFsbHMgb2ZmIE51ZGlzdGEuXG4gIC8vICAgLSBidXR0b24gdGV4dCBpcyB1cHBlcmNhc2VkIGdsb2JhbGx5LlxuICAvLyBXaWR0aCBpcyBjb250ZW50LWRyaXZlbiBoZXJlIHJhdGhlciB0aGFuIHRoZSAxODBweCBmaXhlZCB0aGVyZSwgYmVjYXVzZVxuICAvLyB0aGUgbGFiZWwgaXMgYSB0cmFuc2xhdGVkIHN0cmluZyBvZiB1bnByZWRpY3RhYmxlIGxlbmd0aC5cbiAgJl9fY3RhIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgLy8gTm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQsIHNvIHRoZSAxcHggYm9yZGVyIGFuZCB0aGUgOC8xNiBwYWRkaW5nIGhhdmVcbiAgICAvLyB0byBiZSBmb2xkZWQgaW50byB0aGUgMzZweCBib3ggYnkgaGFuZC4gVmVydGljYWwgcGFkZGluZyBkcm9wcGVkIGZyb21cbiAgICAvLyAxMnB4IHRvIDhweCBhbG9uZyB3aXRoIHRoZSBoZWlnaHQsIG9yIHRoZSAxNnB4IGN0YS1pY29uIHdvdWxkIGNsaXAuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIC8vIFB1c2hlZCByaWdodCBieSBpdHMgb3duIG1hcmdpbiByYXRoZXIgdGhhbiBzcGFjZS1iZXR3ZWVuIG9uIHRoZSBiYW5uZXIsXG4gICAgLy8gc28gdGhlIGNvcHkgYmxvY2sga2VlcHMgdGhlIHNwYWNlIHRoZSBDVEEgZG9lcyBub3QgbmVlZC5cbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICAvLyBTYW1lIHN1cmZhY2UgYXMgdGhlIGJhbm5lciBpdCBzaXRzIG9uLCBub3QgYSB3aGl0ZSBjaGlwIG9uIHRvcCBvZiBpdC5cbiAgICBiYWNrZ3JvdW5kOiAkcG92LWJhbm5lci1iZztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYnRuLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhLXdlYicsICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgfVxufVxuXG4vLyBCZXR3ZWVuIHRoZXNlIHR3byB3aWR0aHMgdGhlIHBhZ2UgY29sdW1uIGlzIG5hcnJvdyBlbm91Z2ggdGhhdCBhIGNoYXJ0IGFuZCBhXG4vLyAzLXVwIGdyaWQgYmVzaWRlIGl0IGJvdGggY29tZSB1cCBzaG9ydCwgYnV0IG5vdCBuYXJyb3cgZW5vdWdoIHRvIGp1c3RpZnlcbi8vIHN0YWNraW5nLiBEcm9wIHRoZSBncmlkIHRvIHR3byB0cmFja3MgYW5kIGxldCB0aGUgY2hhcnQga2VlcCB0aGUgcm93LlxuQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgLnByb2dyZXNzLW92ZXJ2aWV3IHtcbiAgICAmX19ib2R5IHtcbiAgICAgIGdhcDogMjBweDtcbiAgICB9XG5cbiAgICAmX190aWxlcyB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmVzcy1vdmVydmlldyB7XG4gICAgcGFkZGluZzogMTZweDtcblxuICAgICZfX2JvZHkge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICB9XG5cbiAgICAmX19jaGFydCB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2NoYXJ0LWJveCB7XG4gICAgICBoZWlnaHQ6ICRwb3YtY2hhcnQtaC1zbTtcbiAgICB9XG5cbiAgICAmX190aWxlcyB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBUaGUgQ1RBIGRyb3BzIG9udG8gaXRzIG93biBsaW5lIHVuZGVyIHRoZSBjb3B5IHJhdGhlciB0aGFuIHNxdWVlemluZyB0aGVcbiAgICAvLyBiYW5uZXIgdGV4dCB0byBub3RoaW5nLlxuICAgICZfX2Jhbm5lciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIH1cblxuICAgICZfX2Jhbm5lci10ZXh0IHtcbiAgICAgIC8vIFdpdGhvdXQgYSBiYXNpcyB3aWRlIGVub3VnaCB0byBmb3JjZSB0aGUgd3JhcCB0aGUgQ1RBIHN0YXlzIG9uIHRoZVxuICAgICAgLy8gZmlyc3QgbGluZSBhbmQgdGhlIGNvcHkgY29sbGFwc2VzIHRvIG9uZSB3b3JkIHBlciBsaW5lLlxuICAgICAgQGluY2x1ZGUgZmxleCgxIDEgMTAwJSk7XG4gICAgfVxuXG4gICAgJl9fY3RhIHtcbiAgICAgIG1hcmdpbjogMTJweCAwIDAgYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvKiBUaGUgUHJvZ3JhbXMgdGFiJ3MgXCJPdmVydmlld1wiIGNhcmQsIGFuZCB0aGUgcm93IHRoYXQgaG9sZHMgaXQgYmVzaWRlXG4gICBcIlByb2dyYW0gQ29tcGxldGlvblwiICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sLCB1bmRlclxuICAgdm0uYWN0aXZlVGFiID09PSAncHJvZ3JhbXMnKS5cblxuICAgSXRzIG93biBibG9jayByYXRoZXIgdGhhbiBhIG1vZGlmaWVyIG9mIC5wcm9ncmVzcy1vdmVydmlldywgZm9yIHRoZSBzYW1lXG4gICByZWFzb24gX3Byb2dyYW1zX2RldGFpbHMuc2NzcyBpcyBpdHMgb3duIGJsb2NrIHJhdGhlciB0aGFuIGEgbW9kaWZpZXIgb2ZcbiAgIF9wcm9ncmVzc19kZXRhaWxzLnNjc3M6IHRoZSB0d28gY2FyZHMgc2hhcmUgYSBzaGVsbCAtIGJvcmRlciwgcmFkaXVzLFxuICAgc2hhZG93LCB0aXRsZSBtZXRyaWNzIC0gYW5kIG5vdGhpbmcgZWxzZS4gLnByb2dyZXNzLW92ZXJ2aWV3IGlzIGEgbWVhc3VyZWRcbiAgIGNhbnZhcyBiZXNpZGUgYSB0aHJlZS1jb2x1bW4gdGlsZSBncmlkOyB0aGlzIGlzIGEgY29tcHV0ZWQgU1ZHIGJlc2lkZSBhXG4gICBzdGFja2VkIHRpbGUgY29sdW1uLCB3aXRoIGEgbGVnZW5kIHVuZGVyIGJvdGguIFNoYXJpbmcgYSBjbGFzcyB3b3VsZCBtZWFuXG4gICBjYXJyeWluZyB0aGUgY2FudmFzLW1lYXN1cmVtZW50IGNvbnRyYWN0IChfX2NoYXJ0LWJveCdzIGV4cGxpY2l0IGhlaWdodCxcbiAgIF9fY2hhcnQncyBtaW4td2lkdGg6IDApIGludG8gYSBjYXJkIHRoYXQgaGFzIG5vIGNhbnZhcyBpbiBpdC5cblxuICAgVGhhdCBzcGxpdCBpcyBhbHNvIHdoYXQgbGV0IC5wcm9ncmVzcy1vdmVydmlldyBkcm9wIGl0cyBQcm9ncmFtcyBicmFuY2hcbiAgIGVudGlyZWx5IC0gdGhlIGJhciBjaGFydCwgaXRzIC0tbGVnYWN5IG5ldXRyYWxpc2luZyBydWxlcyBhbmQgdGhlXG4gICBjaGFydEluZm8udHlwZSA9PT0gMyB0aWxlcyBhbGwgd2VudCB3aXRoIGl0LlxuXG4gICBUaGUgc2hlbGwgY29uc3RhbnRzIGFyZSByZXN0YXRlZCByYXRoZXIgdGhhbiBpbXBvcnRlZCwgYmVjYXVzZSBTQ1NTXG4gICB2YXJpYWJsZXMgYXJlIGZpbGUtbG9jYWwgdW5sZXNzIGhvaXN0ZWQgdG8gX2Rlc2lnbl90b2tlbnMuc2Nzcy4gSWYgeW91IGNoYW5nZVxuICAgdGhlIGNhcmQgcmFkaXVzIG9yIHRpdGxlIG1ldHJpY3MgaW4gb25lIG9mIHRoZSBmb3VyIGNhcmRzIG9uIHRoaXMgcGFnZSxcbiAgIGNoYW5nZSB0aGVtIGluIGFsbCBmb3VyIG9yIHRoZXkgc3RvcCByZWFkaW5nIGFzIG9uZSBmYW1pbHkuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCAoc3RhdGUgYm94LXNpemluZyBieSBoYW5kKVxuICAgYW5kIG5vIGF1dG9wcmVmaXhlci4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4vLyBUaGUgcmluZyBwYWxldHRlOiB0aGUgZG9udXQgbmFtZXMgb25seSBpdHMgdG9wIHR3byBwcm9ncmFtcyAoc2VlIFJJTkdfTElNSVRcbi8vIGluIHRoZSBjb250cm9sbGVyKS4gVGhlIG1vc3Qtc2NoZWR1bGVkIHByb2dyYW0gaXMgdGhlIGlubmVybW9zdCByaW5nIGFuZFxuLy8gZ2V0cyB0aGUgYnJpZ2h0ZXIgcHVycGxlOyB0aGUgc2Vjb25kIHByb2dyYW0gaXMgdGhlIG5leHQgcmluZyBvdXQ7IHRoZVxuLy8gcm9sbGVkLXVwIFwiT3RoZXJcIiwgaWYgdGhlcmUgaXMgb25lLCBpcyBhbHdheXMgb3V0ZXJtb3N0IGFuZCBncmV5LlxuLy9cbi8vIFJlZmVyZW5jZSBvbmx5IC0gdGhlIGxlZ2VuZCBkb3RzIGFuZCB0aGUgYXJjcyB0aGVtc2VsdmVzIGJvdGggZ2V0IHRoZWlyXG4vLyBjb2xvdXIgZnJvbSByaW5nLmNvbG9yIGluIFByb2dyZXNzUmVwb3J0Q29udHJvbGxlci5qcydzIFJJTkdfQ09MT1JTLCBzaW5jZVxuLy8gdGhlIFNWRyBuZWVkcyB0aGUgdmFsdWUgYXMgYW4gYXR0cmlidXRlIGFuZCBjYW5ub3QgcmVhZCBhIFNhc3MgdmFyaWFibGUuXG4vLyBUaGVzZSB0aHJlZSBleGlzdCBzbyBhIGNvbG91ciBjaGFuZ2UgaGFzIG9uZSBvYnZpb3VzIHBsYWNlIHRvIHN0YXJ0LCBidXRcbi8vIGNoYW5naW5nIHRoZW0gaGVyZSBkb2VzIG5vdGhpbmcgb24gaXRzIG93bjogdXBkYXRlIFJJTkdfQ09MT1JTIHRvIG1hdGNoLCBvclxuLy8gdGhlIGxlZ2VuZCBhbmQgdGhlIGFyY3MgaXQgaXMgbWVhbnQgdG8ga2V5IGRyaWZ0IGFwYXJ0LiBBbGwgdGhyZWUgYXJlXG4vLyBleGlzdGluZyB0b2tlbnMsIHNvIGEgY2hhbmdlIGJlbG9uZ3MgaW4gX2Rlc2lnbl90b2tlbnMuc2NzcyAoYW5kIHRoZSBzaWJsaW5nXG4vLyBhcHAncyB0YWlsd2luZCBjb25maWcpIGZpcnN0LlxuJHBnby1yaW5nLTE6ICAgICAkcHVycGxlLTUwMDsgIC8vICM5NzY4ZWJcbiRwZ28tcmluZy0yOiAgICAgJHB1cnBsZS05MDA7ICAvLyAjMzIyNTRmXG4kcGdvLXJpbmctb3RoZXI6ICRibGFjay00MDA7ICAgLy8gI2IwYjBiMFxuXG4vLyBUaGUgdW5maWxsZWQgcGFydCBvZiBldmVyeSByaW5nLiBPbmUgdmFsdWUgZm9yIGFsbCBvZiB0aGVtLCBzbyBhIHNob3J0IGFyY1xuLy8gcmVhZHMgYXMgYSBzaG9ydCBhcmMgcmF0aGVyIHRoYW4gYXMgYSBkaWZmZXJlbnRseS1jb2xvdXJlZCByaW5nLlxuJHBnby10cmFjazogI2YwZWVmNTtcblxuLy8gUGVyIGRlc2lnbjogdGhlIGxlZ2VuZCdzIG93biB3aWR0aCwgYW5kIGFsc28gJl9fZG9udXQncyAtIHRoZSB0d28gYXJlXG4vLyBjZW50cmVkIG9uIHRoZSBzYW1lIGxpbmUsIHNvIHRoZXkgc2hhcmUgb25lIGNvbnN0YW50IHJhdGhlciB0aGFuIGVhY2hcbi8vIGhhcmQtY29kaW5nIDIzOHB4IHNlcGFyYXRlbHkuIFNlZSAmX19kb251dCBhbmQgJl9fbGVnZW5kIGJlbG93LlxuJHBnby1sZWdlbmQtdzogMjM4cHg7XG5cbi8vIE5vIGZpeGVkIGRvbnV0IEhFSUdIVCBoZXJlOiBwZXIgZGVzaWduICgxNDhweCBzbWFsbGVzdCByaW5nLCA5cHggc3Ryb2tlLFxuLy8gNHB4IGdhcCBiZXR3ZWVuIHJpbmdzIC0gUklOR19SX0lOTkVSL1JJTkdfU1RST0tFL1JJTkdfR0FQIGluIHRoZVxuLy8gY29udHJvbGxlciksIHRoZSBkaWFncmFtJ3Mgb3duIHNpemUgZGVwZW5kcyBvbiBob3cgbWFueSByaW5ncyBhIHJlcG9ydCBoYXMsXG4vLyBzbyBpdHMgaGVpZ2h0IGlzIGNvbXB1dGVkIHBlciByZXBvcnQgKF9yZW5kZXJQcm9ncmFtT3ZlcnZpZXcncyBkb251dFNpemUpXG4vLyBhbmQgYm91bmQgb250byBib3RoIHRoZSB3cmFwcGVyJ3MgYm94IGFuZCB0aGUgU1ZHJ3Mgdmlld0JveCBmcm9tIHRoZVxuLy8gdGVtcGxhdGUuIEl0cyBXSURUSCBpcyBmaXhlZCBhdCAkcGdvLWxlZ2VuZC13IHJlZ2FyZGxlc3MgLSBzZWUgJl9fZG9udXQuXG5cbiRwZ28tY29sLWdhcDogIDI4cHg7XG4kcGdvLWJhci1oOiAgICA2cHg7XG4kcGdvLWJhci13OiAgICAxNDBweDtcblxuLy8gVGhlIHJvdyB0aGF0IGhvbGRzIHRoaXMgY2FyZCBhbmQgLnByb2dyYW1zLWNvbXBsZXRpb24gc2lkZSBieSBzaWRlLlxuLy8gLnZpZXctY29udGFpbmVyLmNvbHVtbiBpcyBhIGZsZXggY29sdW1uLCBzbyBzaWRlLWJ5LXNpZGUgbmVlZHMgYSByb3cgb2YgaXRzXG4vLyBvd24gLSBhbmQgb25lIHdyYXBwZXIgYWxzbyBrZWVwcyB0aGUgcGFpciBhcyBhIHNpbmdsZSBjaGlsZCBvZiAucHJpbnQtbm9kZSxcbi8vIHdoaWNoIGlzIHRoZSB1bml0IHRlc3RfcmVzdWx0c19wZGYgcmFzdGVyaXplcyBvdmVyLlxuLnByb2dyYW1zLW92ZXJ2aWV3LXJvdyB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoc3RyZXRjaCk7XG4gIC8vIE1hdGNoZXMgLnByb2dyZXNzLW92ZXJ2aWV3J3Mgb3duIHRvcCBtYXJnaW46IHRoaXMgcm93IHJlcGxhY2VzIHRoYXQgY2FyZCBvblxuICAvLyB0aGUgUHJvZ3JhbXMgdGFiIGFuZCBoYXMgdG8gY2xlYXIgLnByb2dyZXNzLXJlcG9ydC1vcHRpb25zIGlkZW50aWNhbGx5LlxuICBtYXJnaW46IDIwcHggMCAwO1xuICBnYXA6IDIwcHg7XG5cbiAgPiAqIHtcbiAgICAvLyAxIDEgMCwgbm90IDEgMSBhdXRvLCBzbyB0aGUgdHdvIGNhcmRzIHNwbGl0IHRoZSByb3cgZXZlbmx5IHJlZ2FyZGxlc3Mgb2ZcbiAgICAvLyBob3cgd2lkZSB0aGVpciBjb250ZW50IHdhbnRzIHRvIGJlIC0gYSB0d2VsdmUtY29sdW1uIGhlYXRtYXAgd291bGRcbiAgICAvLyBvdGhlcndpc2UgdGFrZSB0aGUgcm93LlxuICAgIEBpbmNsdWRlIGZsZXgoMSAxIDApO1xuICAgIC8vIExvYWQtYmVhcmluZy4gV2l0aG91dCBpdCB0aGUgaGVhdG1hcCdzIGludHJpbnNpYyB3aWR0aCBiZWNvbWVzIHRoaXNcbiAgICAvLyBjYXJkJ3MgbWluaW11bSBhbmQgdGhlIHJvdyBwdXNoZXMgcGFzdCB0aGUgcGFnZSBjb2x1bW4gaW5zdGVhZCBvZlxuICAgIC8vIGxldHRpbmcgLnByb2dyYW1zLWNvbXBsZXRpb25fX3Njcm9sbCBzY3JvbGwuIFNhbWUgY29udHJhY3RcbiAgICAvLyAucHJvZ3Jlc3Mtc3VtbWFyeV9fY2FyZCBkb2N1bWVudHMgZm9yIGl0cyBzcGFya2xpbmVzLlxuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQodGFibGV0KSB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgfVxufVxuXG4ucHJvZ3JhbXMtb3ZlcnZpZXcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgcGFkZGluZzogMjBweDtcbiAgLy8gUGVyIGRlc2lnbjogdGhpcyBjYXJkIHN0b3BzIGdyb3dpbmcgYXQgNTIycHggcmF0aGVyIHRoYW4gc3BsaXR0aW5nIHRoZSByb3dcbiAgLy8gZXZlbmx5IHdpdGggLnByb2dyYW1zLWNvbXBsZXRpb24gb24gYSB3aWRlIHBhZ2UgLSBuYXJyb3dlciB0aGFuIHRoYXRcbiAgLy8gY2FyZCdzIG93biA2MDJweCBjYXAgKHNlZSBpdHMgcnVsZSkgb24gcHVycG9zZSwgc28gYSBwYWdlIHdpZGUgZW5vdWdoIGZvclxuICAvLyBib3RoIHRvIGhpdCB0aGVpciBjYXBzIHN0aWxsIGxlYXZlcyB0aGUgaGVhdG1hcCB0aGUgbGFyZ2VyIG9mIHRoZSB0d28uXG4gIG1heC13aWR0aDogNTIycHg7XG4gIC8vIE5vIGZpeGVkIGhlaWdodC4gVGhlIEZpZ21hIGNvbXAncyAzNDVweCBpcyBub3QgYW4gaW5kZXBlbmRlbnQgY29uc3RyYWludCAtXG4gIC8vIGl0IGlzIHdoYXQgdGhpcyBjYXJkJ3Mgb3duIGNvbnRlbnQgKHRpdGxlICsgdGhlIH4xODNweCB0d28tcmluZyBkb251dCArIGFcbiAgLy8gMi1yb3cgbGVnZW5kKSBhZGRzIHVwIHRvIGZvciB0aGUgY29tbW9uIGNhc2Ugb2YgZXhhY3RseSB0d28gcHJvZ3JhbXMuIEFcbiAgLy8gdGhpcmQgcHJvZ3JhbSByb2xscyBhbiBcIk90aGVyXCIgcm93IGludG8gdGhlIGxlZ2VuZCAoc2VlIFJJTkdfTElNSVQgaW4gdGhlXG4gIC8vIGNvbnRyb2xsZXIpLCB3aGljaCBpcyBhIGdlbnVpbmUgZXh0cmEgbGluZSBvZiBjb250ZW50LCBzbyB0aGF0IGNhc2UgaXNcbiAgLy8gY29ycmVjdGx5IGEgbGl0dGxlIHRhbGxlciByYXRoZXIgdGhhbiBzb21ldGhpbmcgdG8gY2xpcCBvciBwYWQgYXJvdW5kLlxuXG4gICZfX3RpdGxlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICB9XG5cbiAgLy8gc3RyZXRjaCwgbm90IHRoZSBvbGQgZmxleC1zdGFydDogcGVyIGRlc2lnbiwgdGhlIHRpbGVzIGNvbHVtbiBmaWxscyB0aGVcbiAgLy8gRlVMTCBoZWlnaHQgb2YgdGhpcyByb3csIGZyb20gdGhlIHRvcCBvZiB0aGUgcmluZ3MgdG8gdGhlIGJvdHRvbSBvZiB0aGVcbiAgLy8gbGVnZW5kIC0gbm90IGp1c3QgaXRzIG93biB0aHJlZSB0aWxlcycgbmF0dXJhbCBoZWlnaHQgc2l0dGluZyBhdCB0aGUgdG9wXG4gIC8vIHdpdGggZGVhZCBzcGFjZSB0cmFpbGluZyBiZWxvdy4gc3RyZXRjaCBpcyB3aGF0IG1ha2VzIHRoYXQgcG9zc2libGU6IGl0XG4gIC8vIGlzIHRoZSBtZWNoYW5pc20gdGhhdCBoYW5kcyAmX19sZWZ0J3MgbmF0dXJhbCBoZWlnaHQgKGRvbnV0ICsgbGVnZW5kXG4gIC8vIHRvZ2V0aGVyLCBzaW5jZSB0aGUgbGVnZW5kIG5vdyBuZXN0cyBpbnNpZGUgaXQgLSBzZWUgJl9fbGVmdCBiZWxvdykgdG9cbiAgLy8gJl9fdGlsZXMgYXMgaXRzIG93biBoZWlnaHQsIHdoaWNoICZfX3RpbGVzJyBvd24ganVzdGlmeS1jb250ZW50OlxuICAvLyBzcGFjZS1iZXR3ZWVuIHRoZW4gc3ByZWFkcyBpdHMgdGhyZWUgdGlsZXMgYWNyb3NzIChzZWUgJl9fdGlsZXMgYmVsb3cpLlxuICAvL1xuICAvLyBzcGFjZS1iZXR3ZWVuIGhlcmUgdG9vLCB3aXRoIGJvdGggY29sdW1ucyBhIGZpeGVkIHdpZHRoICgkcGdvLWxlZ2VuZC13IG9uXG4gIC8vICZfX2xlZnQsIDE4OHB4IG9uICZfX3RpbGVzIC0gc2VlICZfX3RpbGVzIGJlbG93KTogcGVyIGRlc2lnbiB0aGUgdGlsZXNcbiAgLy8gY29sdW1uIHNpdHMgZmx1c2ggYWdhaW5zdCB0aGUgY2FyZCdzIG93biByaWdodCBlZGdlIHJhdGhlciB0aGFuIHRyYWlsaW5nXG4gIC8vIDI4cHggYWZ0ZXIgdGhlIGRvbnV0LiAyMzggKyAxODggbGVhdmVzIGV4YWN0bHkgNTZweCBvZiB0aGlzIGNhcmQncyA0ODJweFxuICAvLyBjb250ZW50IHdpZHRoICg1MjIgbWF4LXdpZHRoIG1pbnVzIDQwcHggcGFkZGluZykgc3BhcmUsIGFuZCBzcGFjZS1iZXR3ZWVuXG4gIC8vIGlzIHdoYXQgdHVybnMgdGhhdCA1NnB4IGludG8gdGhlIGdhcCBiZXR3ZWVuIHRoZSB0d28gY29sdW1ucyBpbnN0ZWFkIG9mXG4gIC8vIGRlYWQgc3BhY2UgYWZ0ZXIgdGhlIHRpbGVzLiBnYXAgc3RheXMgYXMgYSBmbG9vciB1bmRlciB0aGF0IC0gc2VlIHRoZVxuICAvLyBtb2JpbGUgb3ZlcnJpZGUgYmVsb3cgZm9yIHdoeSBpdCBjYW5ub3QganVzdCBiZSB0aGUgb25seSBydWxlLlxuICAmX19ib2R5IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoc3RyZXRjaCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgZ2FwOiAkcGdvLWNvbC1nYXA7XG4gIH1cblxuICAvLyBUaGUgcmluZ3MgYW5kIHRoZWlyIGxlZ2VuZCwgc3RhY2tlZCAtIHdoYXQgdXNlZCB0byBiZSB0d28gc2VwYXJhdGVcbiAgLy8gY2hpbGRyZW4gb2YgJl9fYm9keSAoJl9fZG9udXQpIGFuZCBvZiB0aGUgY2FyZCBpdHNlbGYgKCZfX2xlZ2VuZCkgYXJlIG5vd1xuICAvLyBuZXN0ZWQgdG9nZXRoZXIgaW4gdGhlaXIgb3duIGNvbHVtbi4gVGhhdCBuZXN0aW5nIGlzIHdoYXQgbGV0cyAmX19ib2R5J3NcbiAgLy8gc3RyZXRjaCAoYWJvdmUpIG1lYXN1cmUgXCJ0b3Agb2YgcmluZ3MgdG8gYm90dG9tIG9mIGxlZ2VuZFwiIGFzIE9ORVxuICAvLyBudW1iZXIgYW5kIGhhbmQgaXQgdG8gJl9fdGlsZXM6ICZfX2xlZnQncyBvd24gbmF0dXJhbCBoZWlnaHQgaXNcbiAgLy8gZG9udXQtaGVpZ2h0ICsgZ2FwICsgbGVnZW5kLWhlaWdodCwgd2l0aCBub3RoaW5nIGVsc2UgY29udHJpYnV0aW5nIHRvIGl0LFxuICAvLyB3aGljaCBpcyBleGFjdGx5IHRoZSBzcGFuIHBlciBkZXNpZ24gJl9fdGlsZXMgaXMgbWVhbnQgdG8gZmlsbC5cbiAgLy9cbiAgLy8gTm8gZXhwbGljaXQgd2lkdGggb24gJl9fZG9udXQvJl9fbGVnZW5kIGFueSBtb3JlIC0gYm90aCBhcmUgZmxleCBpdGVtcyBvZlxuICAvLyB0aGlzIGNvbHVtbiwgYW5kIGEgY29sdW1uJ3MgZGVmYXVsdCBhbGlnbi1pdGVtczogc3RyZXRjaCAodW5zZXQgaGVyZSwgc29cbiAgLy8gaXQgYXBwbGllcykgYWxyZWFkeSBzaXplcyBlYWNoIG9mIHRoZW0gdG8gJl9fbGVmdCdzIG93biB3aWR0aC4gT25lIDIzOHB4XG4gIC8vIGhlcmUgaXMgd2hhdCB1c2VkIHRvIGJlIHN0YXRlZCBvbiBib3RoIG9mIHRoZW0gc2VwYXJhdGVseS5cbiAgLy9cbiAgLy8gc3BhY2UtYmV0d2VlbiBhZ2Fpbjogb24gdGhlIHJhcmUgcmVwb3J0IHdoZXJlICZfX3RpbGVzIChub3QgdGhpcyBjb2x1bW4pXG4gIC8vIGlzIHRoZSB0YWxsZXIgc2lkZSAtIG9ubHkgd2hlbiB0aGVyZSBpcyBhIHNpbmdsZSByaW5nIChhIH4xNTdweCBkb251dFxuICAvLyBwbHVzIGEgb25lLXJvdyBsZWdlbmQgY29tZXMgdG8gbGVzcyB0aGFuIHRoZSB0aWxlcyBjb2x1bW4ncyBvd24gfjIxMHB4IG9mXG4gIC8vIGZpeGVkIGNvbnRlbnQ6IHR3byBwbGFpbiB0aWxlcyBwbHVzIGEgdGhpcmQgd2l0aCBhIHBlcmNlbnQgYmFyKSAtIHN0cmV0Y2hcbiAgLy8gaGFuZHMgdGhpcyBjb2x1bW4gdGlsZXMnIGdyZWF0ZXIgaGVpZ2h0IGluc3RlYWQsIGFuZCB0aGlzIGlzIHdoYXQgdHVybnNcbiAgLy8gdGhhdCBleHRyYSBmZXcgcGl4ZWxzIGludG8gYnJlYXRoaW5nIHJvb20gYmV0d2VlbiB0aGUgZG9udXQgYW5kIHRoZVxuICAvLyBsZWdlbmQgcmF0aGVyIHRoYW4gZGVhZCBzcGFjZSB0cmFpbGluZyBhZnRlciBpdC5cbiAgJl9fbGVmdCB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICB3aWR0aDogJHBnby1sZWdlbmQtdztcbiAgfVxuXG4gIC8vIC0tLS0gdGhlIGRvbnV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVGhlIHBvc2l0aW9uaW5nIGNvbnRleHQgZm9yIGJvdGggdGhlIGNlbnRyZSBsYWJlbCBhbmQgdGhlIGhvdmVyIHRvb2x0aXAsXG4gIC8vIHdoaWNoIGFyZSBIVE1MIG92ZXIgdGhlIFNWRyByYXRoZXIgdGhhbiA8dGV4dD4gaW5zaWRlIGl0OiB0aGUgY2VudHJlIGlzXG4gIC8vIHRocmVlIGRpZmZlcmVudGx5LXN0eWxlZCBsaW5lcyBhbmQgdGhlIHRvb2x0aXAgaXMgYSBib3JkZXJlZCBjYXJkLCBuZWl0aGVyXG4gIC8vIG9mIHdoaWNoIFNWRyB0ZXh0IGNhbiBleHByZXNzIHdpdGhvdXQgaGFuZC1wbGFjaW5nIGV2ZXJ5IGJhc2VsaW5lLlxuICAvL1xuICAvLyBoZWlnaHQgaXMgc2V0IGZyb20gdGhlIHRlbXBsYXRlICh2bS5kb251dFNpemUpIGFuZCBNVVNUIHN0YXkgZXhwbGljaXQ6XG4gIC8vIHRoYXQgaXMgd2hhdCBzdG9wcyB0aGlzIGJveCBmcm9tIGJlaW5nIHN0cmV0Y2hlZCBieSAmX19sZWZ0J3Mgb3duXG4gIC8vIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiBhYm92ZS4gSWYgdGhpcyBldmVyIGJlY2FtZSBhdXRvIGluc3RlYWQsXG4gIC8vIGFueSBleHRyYSBoZWlnaHQgJl9fbGVmdCBwaWNrZWQgdXAgZnJvbSAmX190aWxlcyB3b3VsZCBpbmZsYXRlIHRoZSBkb251dFxuICAvLyBpdHNlbGYgcmF0aGVyIHRoYW4ganVzdCB0aGUgZ2FwIGJlbG93IGl0IC0gYW5kIHNpbmNlICZfX2RvbnV0LXN2ZyBpc1xuICAvLyB3aWR0aC9oZWlnaHQ6IDEwMCUgb2YgdGhpcyBib3ggd2l0aCBubyBwcmVzZXJ2ZUFzcGVjdFJhdGlvIG92ZXJyaWRlLCBhXG4gIC8vIHRhbGxlciBib3ggd291bGQgc2NhbGUgdGhlIFJJTkcgR0VPTUVUUlkgdXAgcGFzdCBpdHMgZXhhY3QgMTQ4cHgvOXB4LzRweFxuICAvLyBzcGVjIChzZWUgUklOR19SX0lOTkVSIGluIHRoZSBjb250cm9sbGVyKSB0byBmaWxsIGl0LCByYXRoZXIgdGhhbiBsZWF2aW5nXG4gIC8vIHRoYXQgc3BlYyBhbG9uZSB0aGUgd2F5IGl0IGlzIG1lYW50IHRvLlxuICAmX19kb251dCB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gd2lkdGgvaGVpZ2h0IDEwMCUgb2YgJl9fZG9udXQncyBvd24gYm94LCBOT1Qgb2YgdGhlIGRpYWdyYW06ICZfX2RvbnV0IGlzXG4gIC8vICRwZ28tbGVnZW5kLXcgKDIzOHB4KSB3aWRlIHZpYSAmX19sZWZ0J3MgZGVmYXVsdCBhbGlnbi1pdGVtczogc3RyZXRjaCAtXG4gIC8vIHNlZSAmX19sZWZ0IGFib3ZlIC0gYnV0IHRoZSBkaWFncmFtICh2aWV3Qm94KSBpcyBvbmx5IGV2ZXIgZG9udXRTaXplIHdpZGVcbiAgLy8gKDE1Ny0yMDlweCksIHNvIHRoaXMgU1ZHIHZpZXdwb3J0IGlzIHVzdWFsbHkgd2lkZXIgdGhhbiBpdHMgb3duIGNvbnRlbnQuXG4gIC8vIFRoYXQgd2lkdGggbWlzbWF0Y2ggaXMgd2hhdCBjZW50cmVzIHRoZSByaW5ncyB1bmRlciB0aGUgbGVnZW5kIHJhdGhlclxuICAvLyB0aGFuIHNvbWV0aGluZyB0byBhdm9pZDogU1ZHJ3MgZGVmYXVsdCBwcmVzZXJ2ZUFzcGVjdFJhdGlvICh4TWlkWU1pZFxuICAvLyBtZWV0LCBub3Qgb3ZlcnJpZGRlbiBoZXJlKSBjZW50cmVzIGEgdmlld0JveCB0aGF0IGRvZXNuJ3QgZmlsbCBpdHNcbiAgLy8gdmlld3BvcnQgb24gd2hpY2hldmVyIGF4aXMgaGFzIHJvb20gdG8gc3BhcmUuIFRoZSBIRUlHSFQgaGFsZiBvZiB0aGF0XG4gIC8vIHBhaXIgbWF0Y2hlcyBleGFjdGx5ICgxMDAlIG9mICZfX2RvbnV0LCBpdHNlbGYgcGlubmVkIHRvIGRvbnV0U2l6ZSAtIHNlZVxuICAvLyAmX19kb251dCdzIG93biBub3RlKSwgc28gb25seSB0aGUgd2lkdGggYXhpcyBldmVyIGhhcyBzcGFyZSByb29tIHRvXG4gIC8vIGNlbnRyZSBpbnRvLlxuICAmX19kb251dC1zdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX3JpbmctdHJhY2sge1xuICAgIHN0cm9rZTogJHBnby10cmFjaztcbiAgfVxuXG4gIC8vIFRoZSBhcmMncyBvd24gc3Ryb2tlLCBkYXNoYXJyYXkgYW5kIGRhc2hvZmZzZXQgYXJlIGFsbCBzZXQgcGVyIHJpbmcgZnJvbVxuICAvLyB0aGUgY29udHJvbGxlciAtIG9ubHkgdGhlIGhpdCBhcmVhIGFuZCB0aGUgaG92ZXIgYWZmb3JkYW5jZSBsaXZlIGhlcmUuXG4gIC8vIFBvaW50ZXIgZXZlbnRzIGxhbmQgb24gdGhlIHN0cm9rZSByYXRoZXIgdGhhbiB0aGUgKHVuZmlsbGVkKSBpbnRlcmlvcixcbiAgLy8gd2hpY2ggaXMgd2hhdCBtYWtlcyB0aGUgYW5udWx1cyB0aGUgaG92ZXIgdGFyZ2V0LlxuICAmX19yaW5nLWFyYyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAvLyBDZW50cmVkIGJ5IHRyYW5zbGF0aW5nIG9mZiBpdHMgb3duIHNpemUsIG5vdCBieSBhIGZpeGVkIHRvcC9sZWZ0OiB0aGUgdHdvXG4gIC8vIGRvbnV0IHNpemVzIGFib3ZlIHdvdWxkIGVhY2ggbmVlZCB0aGVpciBvd24gb2Zmc2V0cyBvdGhlcndpc2UuIE5vdCBhXG4gIC8vIHBvaW50ZXIgdGFyZ2V0IC0gaXQgc2l0cyBvdmVyIHRoZSBob2xlLCBhbmQgc3dhbGxvd2luZyB0aGUgcG9pbnRlciB0aGVyZVxuICAvLyB3b3VsZCBibG9jayBub3RoaW5nLCBidXQgaXQgYWxzbyBvdmVybGFwcyB0aGUgaW5uZXIgcmluZydzIHN0cm9rZS5cbiAgJl9fY2VudGVyIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0b3A6IDUwJTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsIC01MCUpKTtcbiAgfVxuXG4gIC8vIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgaXMga2VwdCB0aG91Z2ggdGhlIGRlc2lnbiBzcGVjIGJlbG93IGRvZXNuJ3RcbiAgLy8gbWVudGlvbiBpdCAtIE92ZXJ2aWV3X1RvdGFsJ3Mgb3duIHRyYW5zbGF0aW9uIChcIlRvdGFsXCIpIGlzIG1peGVkLWNhc2UsXG4gIC8vIGFuZCBldmVyeSByZWZlcmVuY2UgcmVuZGVyIHN0aWxsIHNob3dzIFwiVE9UQUxcIiBpbiBjYXBzLCBzbyB0aGlzIGlzIHdoYXRcbiAgLy8gaXMgYWN0dWFsbHkgZG9pbmcgdGhhdCwgbm90IHRoZSBjb3B5LiBsZXR0ZXItc3BhY2luZyBzZXQgdG8gMCBwZXIgc3BlYyxcbiAgLy8gZHJvcHBpbmcgdGhlIDAuMDZlbSBhbiBhbGwtY2FwcyB3b3JkIHVzdWFsbHkgd2FudHMgZm9yIHJlYWRhYmlsaXR5IC0gYVxuICAvLyBkZWxpYmVyYXRlIGRlc2lnbiBjYWxsLCBub3QgYW4gb3ZlcnNpZ2h0LCBzbyBpdCBpcyBub3QgYmVpbmcgcmVzdG9yZWQuXG4gIC8vXG4gIC8vIE5vIHRleHQtYWxpZ24gaGVyZSAtIGNlbnRlcmVkLCBpbmhlcml0ZWQgZnJvbSAmX19jZW50ZXIncyBvd25cbiAgLy8gdGV4dC1hbGlnbjogY2VudGVyLiBFeHBsaWNpdGx5IHJldmVydGVkIG9mZiB0ZXh0LWFsaWduOiByaWdodCAod2hpY2hcbiAgLy8gJl9fY2VudGVyLXN1YiBiZWxvdyBzdGlsbCBjYXJyaWVzKTogXCJUT1RBTFwiIHJlYWRzIGFzIHRoaXMgc3RhY2sncyBvd25cbiAgLy8gaGVhZGluZyBhbmQgY2VudGVyaW5nIGl0IGlzIHdoYXQga2VlcHMgdGhhdCByZWFkLlxuICAmX19jZW50ZXItY2FwdGlvbiB7XG4gICAgY29sb3I6ICRibGFjay02MDA7IC8vICM2ZDZkNmRcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAvLyBPcGVucyB1cCB0aGUgZ2FwIHRvICZfX2NlbnRlci12YWx1ZSBiZWxvdyBpdC4gVGhlIHN0YWNrIGFzIGEgd2hvbGUgaXNcbiAgICAvLyBzdGlsbCBjZW50cmVkIGluIHRoZSBkb251dCdzIGhvbGUgKHNlZSAmX19jZW50ZXIncyB0cmFuc2xhdGUpLCBzbyB0aGlzXG4gICAgLy8gcmVhZHMgYXMgVE9UQUwgbW92aW5nIHVwIHJhdGhlciB0aGFuIHRoZSBwZXJjZW50YWdlIG1vdmluZyBkb3duLlxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgJl9fY2VudGVyLXZhbHVlIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDsgLy8gIzRmNGY0ZlxuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFRoZSBkb25lLWNvdW50IGlzIGEgc2VwYXJhdGUgc3BhbiAoJl9fY2VudGVyLXN1Yi12YWx1ZSkgc28gaXQgYWxvbmUgY2FuXG4gIC8vIGJlIGZvbnQtd2VpZ2h0OiA2MDAgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgLSBcIm9mIHt7dG90YWx9fSBkb25lXCIgLVxuICAvLyBzdGF5cyA1MDAuIFNlZSB0aGUgdGVtcGxhdGU6IHRoaXMgdXNlZCB0byBiZSBvbmUgdHJhbnNsYXRlIHN0cmluZ1xuICAvLyAoWF9PZl9ZX0RvbmUpLCBzcGxpdCBpbnRvIHRoZSBwbGFpbiBudW1iZXIgcGx1cyBhIG5ldyBPZl9Ub3RhbF9Eb25lIGtleVxuICAvLyBmb3IgdGhlIHN1ZmZpeCBzbyB0aGUgdHdvIGNhbiBjYXJyeSBkaWZmZXJlbnQgd2VpZ2h0cy5cbiAgJl9fY2VudGVyLXN1YiB7XG4gICAgY29sb3I6ICRibGFjay02MDA7IC8vICM2ZDZkNmRcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAvLyBPcGVucyB1cCB0aGUgZ2FwIHRvICZfX2NlbnRlci12YWx1ZSBhYm92ZSBpdCwgc2FtZSBtZWNoYW5pc20gYXNcbiAgICAvLyAmX19jZW50ZXItY2FwdGlvbidzIG93biBtYXJnaW4tYm90dG9tLlxuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC8vIFB1cmUgYmxhY2sgcGVyIGRlc2lnbiwgbm90IGEgdG9rZW4gLSBkZWxpYmVyYXRlbHkgZGFya2VyIHRoYW5cbiAgLy8gJl9fY2VudGVyLXN1YidzIG93biAkYmxhY2stNjAwICgjNmQ2ZDZkKSwgb24gdG9wIG9mIHRoZSB3ZWlnaHQgYnVtcCwgc29cbiAgLy8gdGhlIGRvbmUtY291bnQgcmVhZHMgYXMgdGhlIGVtcGhhc2lzZWQgcGFydCBvZiB0aGUgbGluZSByYXRoZXIgdGhhbiBqdXN0XG4gIC8vIGEgaGVhdmllciB2ZXJzaW9uIG9mIHRoZSBzYW1lIGdyZXkuXG4gICZfX2NlbnRlci1zdWItdmFsdWUge1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAvLyAtLS0tIHRoZSBob3ZlciB0b29sdGlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIEFuY2hvcmVkIHRvIHRoZSBob3ZlcmVkIHJpbmcncyAxMiBvJ2Nsb2NrIC0gYHRvcGAgY29tZXMgZnJvbSB0aGUgY29udHJvbGxlclxuICAvLyBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGJveCAtIHJhdGhlciB0aGFuIGZvbGxvd2luZyB0aGUgcG9pbnRlcjogdGhlIGhpdFxuICAvLyBhcmVhIGlzIGEgd2hvbGUgYW5udWx1cywgc28gYSBwb2ludGVyLWZvbGxvd2luZyBidWJibGUgd291bGQgd2FuZGVyIHRoZVxuICAvLyBmdWxsIHdpZHRoIG9mIHRoZSBhcmMuXG4gIC8vXG4gIC8vIEl0IGhhbmdzIERPV05XQVJEIGZyb20gdGhhdCBwb2ludCwgb3ZlcmxhcHBpbmcgdGhlIGRvbnV0LCB3aGljaCBpcyBhbHNvXG4gIC8vIHdoZXJlIHRoZSBkZXNpZ24gcHV0cyBpdC4gTGlmdGluZyBpdCBjbGVhciBpbnN0ZWFkIChhIHRyYW5zbGF0ZVkgb2YgLTEwMCVcbiAgLy8gb3IgbW9yZSkgd291bGQgcHV0IHRoZSBvdXRlcm1vc3QgcmluZydzIGJ1YmJsZSBhYm92ZSB0aGUgY2FyZCBlbnRpcmVseTpcbiAgLy8gdGhhdCByaW5nIGFuY2hvcnMgYXQgNC41JSBvZiB0aGUgYm94LCBhcm91bmQgMTFweCBkb3duLCBhbmQgdGhlIGJ1YmJsZSBpc1xuICAvLyB0YWxsZXIgdGhhbiB0aGF0LlxuICAvL1xuICAvLyBUaGUgaG9yaXpvbnRhbCAtMTAlIGlzIGEgbnVkZ2Ugb2ZmIGNlbnRyZSwgbm90IGEgY2VudHJpbmc6IHRoZSBidWJibGUgaXNcbiAgLy8gd2lkZXIgdGhhbiB0aGUgYXJjIGl0IHBvaW50cyBhdCBhbmQgcmVhZHMgYmV0dGVyIGV4dGVuZGluZyByaWdodCwgYXMgaW5cbiAgLy8gdGhlIGNvbXAuXG4gICZfX3RpcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXA7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbWluLXdpZHRoOiAxODBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgei1pbmRleDogNTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC0xMCUsIDZweCkpO1xuICB9XG5cbiAgJl9fdGlwLWhlYWQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICB9XG5cbiAgJl9fdGlwLWRvdCB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG4gIH1cblxuICAvLyBzcGFjZS1iZXR3ZWVuIHJhdGhlciB0aGFuIGEgZml4ZWQgbGFiZWwgd2lkdGg6IHRoZSB0d28gcm93cyBhcmUgU2NoZWR1bGVkXG4gIC8vIGFuZCBDb21wbGV0ZWQsIGFuZCB0aGUgdmFsdWUgY29sdW1uIGhhcyB0byBsaW5lIHVwIHVuZGVyIHdoaWNoZXZlciBpc1xuICAvLyBsb25nZXIgaW4gdGhlIGFjdGl2ZSBsYW5ndWFnZS5cbiAgJl9fdGlwLXJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZ2FwOiAyNHB4O1xuXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLSB0aGUgdGlsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBGaXhlZCBhdCAxODhweCBwZXIgZGVzaWduLCBub3QgMSAxIDAgYW55IG1vcmU6IGEgZmxleGlibGUgY29sdW1uIHdvdWxkXG4gIC8vIGZpbGwgd2hhdGV2ZXIgdGhlIGRvbnV0IGxlYXZlcyBiZWhpbmQsIHdoaWNoIGlzIHdoYXQgdXNlZCB0byBwdXQgaXQgcmlnaHRcbiAgLy8gbmV4dCB0byB0aGUgZG9udXQgd2l0aCBvbmx5ICRwZ28tY29sLWdhcCBiZXR3ZWVuIHRoZW0uIEEgZml4ZWQgd2lkdGggb25cbiAgLy8gYm90aCBjb2x1bW5zIGlzIHdoYXQgJl9fYm9keSdzIHNwYWNlLWJldHdlZW4gbmVlZHMgdG8gcHVzaCB0aGlzIG9uZSB0b1xuICAvLyB0aGUgY2FyZCdzIG93biByaWdodCBlZGdlIGluc3RlYWQuXG4gIC8vXG4gIC8vIE5vIGV4cGxpY2l0IGhlaWdodDogJl9fYm9keSdzIGFsaWduLWl0ZW1zOiBzdHJldGNoIChzZWUgYWJvdmUpIGlzIHdoYXRcbiAgLy8gZ2l2ZXMgdGhpcyBjb2x1bW4gaXRzIGhlaWdodCwgbWF0Y2hpbmcgJl9fbGVmdCdzIG93biAoZG9udXQgKyBsZWdlbmQpXG4gIC8vIHdoZW5ldmVyIHRoYXQgaXMgdGhlIHRhbGxlciBvZiB0aGUgdHdvIC0gdGhlIHVzdWFsIGNhc2UsIHNpbmNlICZfX2xlZnQnc1xuICAvLyBsZWdlbmQgYWRkcyBoZWlnaHQgJl9fdGlsZXMgaGFzIG5vIGVxdWl2YWxlbnQgb2YuIGp1c3RpZnktY29udGVudDpcbiAgLy8gc3BhY2UtYmV0d2VlbiBpcyB3aGF0IGFjdHVhbGx5IHNwZW5kcyB0aGF0IGV4dHJhIGhlaWdodCwgc3ByZWFkaW5nIHRoZVxuICAvLyB0aHJlZSB0aWxlcyBmcm9tIHRoZSB0b3Agb2YgdGhlIHJpbmdzIHRvIHRoZSBib3R0b20gb2YgdGhlIGxlZ2VuZCBpbnN0ZWFkXG4gIC8vIG9mIGxlYXZpbmcgdGhlbSBwYWNrZWQgYXQgZ2FwOjIwcHggZWFjaCB3aXRoIGRlYWQgc3BhY2UgdHJhaWxpbmcgYmVsb3cgLVxuICAvLyBnYXAgc3RheXMgYXMgdGhlIGZsb29yIGZvciB3aGljaGV2ZXIgcmVwb3J0IGhhcyAmX190aWxlcyBhcyB0aGUgdGFsbGVyXG4gIC8vIGNvbHVtbiBpbnN0ZWFkIChhIHNpbmdsZSByaW5nIC0gc2VlICZfX2xlZnQncyBub3RlIGFib3ZlKSwgd2hlcmUgdGhlcmVcbiAgLy8gaXMgbm8gZXh0cmEgaGVpZ2h0IGZvciBzcGFjZS1iZXR3ZWVuIHRvIHNwZW5kLlxuICAmX190aWxlcyB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBnYXA6IDIwcHg7XG4gICAgd2lkdGg6IDE4OHB4O1xuICB9XG5cbiAgJl9fdGlsZS1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay03MDA7IC8vICM0ZjRmNGZcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIH1cblxuICAmX190aWxlLXZhbHVlIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDsgLy8gIzRmNGY0ZlxuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICB9XG5cbiAgLy8gU2FtZSB0cmFjay9maWxsIG1ldHJpY3MgYXMgLnByb2dyYW1zLWRldGFpbHMnIHBlcmNlbnQgYmFyLCBzbyB0aGUgdHdvIGNhcmRzXG4gIC8vIG9uIHRoaXMgdGFiIHJlYWQgdGhlIHNhbWUuIE5vIG1pbi13aWR0aCBvbiB0aGUgZmlsbDogMCUgbXVzdCByZWFkIGVtcHR5LlxuICAmX19iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBoZWlnaHQ6ICRwZ28tYmFyLWg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAkcGdvLWJhci13O1xuICB9XG5cbiAgJl9fYmFyLWZpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLy8gLS0tLSB0aGUgbGVnZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBOZXN0ZWQgaW5zaWRlICZfX2xlZnQgbm93LCB1bmRlciB0aGUgZG9udXQgcmF0aGVyIHRoYW4gdW5kZXIgdGhlIHdob2xlXG4gIC8vIGJvZHkgLSBzZWUgJl9fbGVmdCBhYm92ZSBmb3Igd2h5LiBObyBleHBsaWNpdCB3aWR0aCBoZXJlIGFueSBtb3JlOiBpdFxuICAvLyBjb21lcyBmcm9tICZfX2xlZnQncyBvd24gZGVmYXVsdCBhbGlnbi1pdGVtczogc3RyZXRjaCwgdGhlIHNhbWUgYXNcbiAgLy8gJl9fZG9udXQncywgc28gYm90aCBzdGF5ICRwZ28tbGVnZW5kLXcgd2l0aG91dCBlaXRoZXIgcmVzdGF0aW5nIGl0LlxuICAvL1xuICAvLyBUaGUgbGFiZWwgc3RpbGwgZWxsaXBzaXNlcyByYXRoZXIgdGhhbiB3cmFwcGluZyAoc2VlICZfX2xlZ2VuZC1sYWJlbCksIHNvXG4gIC8vIGEgbG9uZyBwcm9ncmFtIG5hbWUgdHJ1bmNhdGVzIHNvb25lciBhdCB0aGlzIHdpZHRoIHRoYW4gaXQgd291bGQgYXQgdGhlXG4gIC8vIGNhcmQncyBvd24gZWRnZSAtIHRoYXQgaXMgdGhlIHRyYWRlIHRoaXMgd2lkdGggYnV5cy5cbiAgJl9fbGVnZW5kIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG5cbiAgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gIH1cblxuICAmX19sZWdlbmQtZG90IHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiA5cHg7XG4gICAgd2lkdGg6IDlweDtcbiAgfVxuXG4gIC8vIDEgMSBhdXRvIHdpdGggbWluLXdpZHRoOiAwIHNvIGEgbG9uZyBwcm9ncmFtIG5hbWUgZWxsaXBzaXNlcyByYXRoZXIgdGhhblxuICAvLyBwdXNoaW5nIGl0cyBjb3VudCBvZmYgdGhlIGNhcmQuXG4gICZfX2xlZ2VuZC1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gICZfX2xlZ2VuZC12YWx1ZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAgIHBhZGRpbmc6IDE2cHg7XG5cbiAgICAvLyBUaGUgZG9udXQgYW5kIHRoZSB0aWxlcyBlYWNoIHdhbnQgdGhlIGZ1bGwgd2lkdGggYmVsb3cgdGhpcyB0aWVyOyBzaWRlIGJ5XG4gICAgLy8gc2lkZSB0aGV5IGxlYXZlIHRoZSB0aWxlIHZhbHVlcyB0b28gbmFycm93IHRvIHJlYWQuXG4gICAgLy9cbiAgICAvLyBqdXN0aWZ5LWNvbnRlbnQgcmVzZXQgdG8gZmxleC1zdGFydDogc3BhY2UtYmV0d2VlbiBpcyBhIHJvdy1heGlzIHJ1bGUuXG4gICAgLy8gTGVmdCBhcy1pcyBvbmNlICZfX2JvZHkgdHVybnMgY29sdW1uLCBpdCB3b3VsZCBwdXNoIHRoZSBkb251dCB0byB0aGVcbiAgICAvLyB0b3AgYW5kIHRoZSB0aWxlcyB0byB0aGUgdmVyeSBib3R0b20gb2YgdGhlIHN0YWNrIHdpdGggYWxsIG9mIHRoZVxuICAgIC8vIGxlZnRvdmVyIHZlcnRpY2FsIHNwYWNlIGxhbmRpbmcgYXMgb25lIGdhcCBiZXR3ZWVuIHRoZW0sIGluc3RlYWQgb2YgdGhlXG4gICAgLy8gZXZlbiAyMHB4IHN0YWNraW5nIHRoaXMgdGllciB3YW50cy5cbiAgICAmX19ib2R5IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICBnYXA6IDIwcHg7XG4gICAgfVxuXG4gICAgLy8gQ2VudGVycyAmX19sZWZ0ICh0aGUgcmluZ3MgKyBsZWdlbmQgY29sdW1uLCBzdGlsbCBmaXhlZCBhdFxuICAgIC8vICRwZ28tbGVnZW5kLXcgLSBzZWUgJl9fbGVmdCBhYm92ZSkgd2l0aGluIHRoZSBmdWxsLXdpZHRoIHN0YWNrZWRcbiAgICAvLyBjb2x1bW4sIHJhdGhlciB0aGFuIHN0cmV0Y2hpbmcgaXQgZWRnZSB0byBlZGdlLiAmX19kb251dCBhbmQgJl9fbGVnZW5kXG4gICAgLy8gbm8gbG9uZ2VyIG5lZWQgdGhlaXIgb3duIGFsaWduLXNlbGYgaGVyZTogbmVpdGhlciBpcyBhIGRpcmVjdCBmbGV4XG4gICAgLy8gY2hpbGQgb2YgJl9fYm9keSBhbnkgbW9yZSwgYm90aCBhcmUgJl9fbGVmdCdzIGNoaWxkcmVuIGluc3RlYWQsIGFuZFxuICAgIC8vICZfX2xlZnQncyBvd24gZGVmYXVsdCBhbGlnbi1pdGVtcyBhbHJlYWR5IGtlZXBzIHRoZW0gYXQgaXRzIGZ1bGwgd2lkdGhcbiAgICAvLyByZWdhcmRsZXNzIG9mIHRpZXIuXG4gICAgJl9fbGVmdCB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTtcbiAgICB9XG5cbiAgICAvLyBGaXhlZCAxODhweCBpcyBhIHR3by1jb2x1bW4tcm93IGNvbmNlcm4gLSBzZWUgJl9fdGlsZXMgYWJvdmUuIFN0YWNrZWQsXG4gICAgLy8gdGhpcyByZXZlcnRzIHRvIHRoZSBzYW1lIGZ1bGwtd2lkdGgsIHN0cmV0Y2gtZHJpdmVuIHNpemluZyAmX19sZWZ0XG4gICAgLy8gYWxyZWFkeSBnZXRzIGZyb20gdGhpcyB0aWVyJ3MgJl9fYm9keTogYWxpZ24taXRlbXM6c3RyZXRjaCwgb25jZSBib2R5XG4gICAgLy8gaXMgYSBjb2x1bW4sIHNpemVzICZfX3RpbGVzIHRvIGl0cyBvd24gbmF0dXJhbCBjb250ZW50IGhlaWdodCByYXRoZXJcbiAgICAvLyB0aGFuICZfX2xlZnQncyBoZWlnaHQsIHNvIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiBvbiAmX190aWxlc1xuICAgIC8vIChzZWUgdGhhdCBibG9jayBhYm92ZSkgaGFzIG5vdGhpbmcgdG8gc3BlbmQgaGVyZSBlaXRoZXIgLSB3aGljaCBpc1xuICAgIC8vIGNvcnJlY3QsIHNpbmNlICZfX2xlZnQgYW5kICZfX3RpbGVzIGFyZSBzdGFja2VkLCBub3Qgc2lkZSBieSBzaWRlLCBzb1xuICAgIC8vIHRoZXJlIGlzIG5vIHNoYXJlZCByb3cgaGVpZ2h0IGxlZnQgdG8gZmlsbC5cbiAgICAmX190aWxlcyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLyBJbnRlciBTZW1pIEJvbGQsIHNlbGYtaG9zdGVkOiB0aGUgb25seSB3ZWlnaHQgdGhlIGhlYXRtYXAgY2VsbCBsYWJlbHMgdXNlLlxuLy8gTG9hZGluZyBpdCBmcm9tIEdvb2dsZSBGb250cyBzZW50IGV2ZXJ5IHVzZXIncyBJUCBhbmQgcmVmZXJyZXIgdG8gYSB0aGlyZFxuLy8gcGFydHkgb24gZXZlcnkgcGFnZS4gTGF0aW4gc3Vic2V0IGZyb20gQGZvbnRzb3VyY2UvaW50ZXIgNS4zLjAgKE9GTCwgc2VlXG4vLyBzcmMvZm9udHMvaW50ZXIvT0ZMLnR4dCkuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJbnRlcic7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvaW50ZXIvaW50ZXItbGF0aW4tNjAwLW5vcm1hbC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICB1cmwoJy4uLy4uL2ZvbnRzL2ludGVyL2ludGVyLWxhdGluLTYwMC1ub3JtYWwud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuXG4vKiBUaGUgXCJQcm9ncmFtIENvbXBsZXRpb25cIiBjYXJkIG9uIHRoZSBwcm9ncmVzcyByZXBvcnQncyBQcm9ncmFtcyB0YWJcbiAgICgvcmVwb3J0cy86YXRobGV0ZUlkLCB2aWV3cy9wcm9ncmVzc3JlcG9ydC5odG1sKTogYSBjb250cmlidXRpb24tZ3JhcGggc3R5bGVcbiAgIGhlYXRtYXAgb2YgY29tcGxldGVkL3NjaGVkdWxlZCBwcm9ncmFtcyBwZXIgYnVja2V0LlxuXG4gICBTaXRzIGJlc2lkZSAucHJvZ3JhbXMtb3ZlcnZpZXcgaW4gLnByb2dyYW1zLW92ZXJ2aWV3LXJvdywgd2hpY2ggaXMgZGVjbGFyZWRcbiAgIGluIF9wcm9ncmFtc19vdmVydmlldy5zY3NzIGFsb25nIHdpdGggdGhlIHNoZWxsIGNvbnN0YW50cyBib3RoIGNhcmRzIHNoYXJlIC1cbiAgIHNlZSB0aGF0IGZpbGUncyBoZWFkZXIgZm9yIHdoeSB0aGVzZSBhcmUgc2VwYXJhdGUgYmxvY2tzIGFuZCB3aHkgdGhlIHNoZWxsIGlzXG4gICByZXN0YXRlZCByYXRoZXIgdGhhbiBpbXBvcnRlZC5cblxuICAgVGhlIGdyaWQncyBzaGFwZSBpcyBkYXRhLCBub3Qgc3R5bGUuIFByb2dyZXNzUmVwb3J0Q29udHJvbGxlcidzXG4gICBfcmVuZGVyUHJvZ3JhbUNvbXBsZXRpb24gcGlja3Mgb25lIG9mIHRocmVlIGxheW91dHMgZnJvbSB0aGUgc2VsZWN0ZWQgZGF0ZVxuICAgcmFuZ2UgKHNldmVuIGRheSBjb2x1bW5zIGZvciBhIHdlZWsgb3IgYSBtb250aCwgbW9udGggY29sdW1ucyBvdmVyIFdlZWsgMS01XG4gICByb3dzIGZvciBhbnl0aGluZyBsb25nZXIpIGFuZCBoYW5kcyB0aGUgdGVtcGxhdGUgYm90aCB0aGVcbiAgIGdyaWQtdGVtcGxhdGUtY29sdW1ucyB0cmFjayBsaXN0IGFuZCBhIEZMQVQgbGlzdCBvZiBncmlkIGl0ZW1zLiBGbGF0IGJlY2F1c2VcbiAgIGEgQ1NTIGdyaWQgb25seSBmbG93cyBpdHMgZGlyZWN0IGNoaWxkcmVuLCBzbyB0aGVyZSBjYW4gYmUgbm8gcGVyLXJvd1xuICAgd3JhcHBlciAtIHRoZSBzYW1lIHRyYXAgX3Byb2dyZXNzX292ZXJ2aWV3LnNjc3MncyBoZWFkZXIgZG9jdW1lbnRzIGZvciB0aGVcbiAgIHRpbGVzLiBOb3RoaW5nIGhlcmUgbWF5IGludHJvZHVjZSBvbmUuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCAoc3RhdGUgYm94LXNpemluZyBieSBoYW5kKVxuICAgYW5kIG5vIGF1dG9wcmVmaXhlci4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4vLyBUaGUgY29tcGxldGlvbiByYW1wLCBieSBxdWFydGVyIG9mIGNvbXBsZXRlZC9zY2hlZHVsZWQuXG4vL1xuLy8gQSBkb2N1bWVudGVkIGRpdmVyZ2VuY2UsIG5vdCBhIHRva2VuIGxvb2t1cDogdGhlIGRlc2lnbiBzeXN0ZW0gZGVmaW5lcyBub1xuLy8gZ3JlZW4gU0NBTEUgLSBfZGVzaWduX3Rva2Vucy5zY3NzIGhhcyBvbmx5ICRncmVlbi01MDAgKCMxMmI3NmEpIGFuZFxuLy8gJGdyZWVuLTUwIC0gYW5kIHRoZXNlIGFyZSBhIHllbGxvdy1sZWFuaW5nIG9saXZlIHJhdGhlciB0aGFuIHRoYXQgdG9rZW4nc1xuLy8gdGVhbC1sZWFuaW5nIGdyZWVuLCBzbyB0aGV5IGNhbm5vdCBiZSBkZXJpdmVkIGZyb20gaXQuIFNwZWMnZCBkaXJlY3RseVxuLy8gcmF0aGVyIHRoYW4gc2FtcGxlZC4gU2FtZSB0cmVhdG1lbnQgX2Rlc2lnbl90b2tlbnMuc2NzcyBnaXZlcyBpdHMgb3duICR4LVxuLy8gZGl2ZXJnZW5jZXM6IGhvaXN0ZWQgYW5kIGxhYmVsbGVkIHJhdGhlciB0aGFuIHJlLWludmVudGVkIHBlciB1c2Ugc2l0ZS4gSWYgYVxuLy8gZ3JlZW4gc2NhbGUgaXMgZXZlciBhZGRlZCB0byB0aGUgc2libGluZyBhcHAncyB0YWlsd2luZCBjb25maWcsIHRoZXNlXG4vLyBzaG91bGQgYmUgcmVwbGFjZWQgYnkgaXQgcmF0aGVyIHRoYW4ga2VwdCBhbG9uZ3NpZGUuXG4kcGdjLWwxOiAjYWZkODhjO1xuJHBnYy1sMjogIzg0YjE1ZjtcbiRwZ2MtbDM6ICM1ZjhmMzg7XG4kcGdjLWw0OiAjM2I2ZDExO1xuXG4vLyBTY2hlZHVsZWQsIG5vbmUgY29tcGxldGVkLiBEZWxpYmVyYXRlbHkgTk9UIHRoZSBsaWdodGVzdCBzdGVwIG9mIHRoZSByYW1wXG4vLyBhYm92ZTogYSBtaXNzZWQgZGF5IGFuZCBhIGJhcmVseS1kb25lIGRheSBhcmUgZGlmZmVyZW50IGZhY3RzLCBhbmQgYSBncmV5XG4vLyBzYXlzIHNvIHdoZXJlIGEgcGFsZSBncmVlbiB3b3VsZCByZWFkIGFzIHBhcnRpYWwgY3JlZGl0LlxuJHBnYy16ZXJvOiAjYjNiM2JlO1xuXG4vLyBOb3RoaW5nIHdhcyBldmVyIHNjaGVkdWxlZC5cbiRwZ2Mtbm9uZTogI2VmZWZmMTtcblxuJHBnYy1jZWxsLWg6ICAzMnB4O1xuJHBnYy1nYXA6ICAgICA4cHg7XG4kcGdjLXJhZGl1czogIDdweDtcblxuLnByb2dyYW1zLWNvbXBsZXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gVGhlIGNhcmQgaXMgYSBmbGV4IGNvbHVtbiBzbyB0aGUgbGVnZW5kIGNhbiBiZSBwaW5uZWQgdG8gdGhlIGJvdHRvbSB3aXRoXG4gIC8vIG1hcmdpbi10b3A6IGF1dG8gLSB0aGUgdHdvIGNhcmRzIGluIHRoZSByb3cgYXJlIHN0cmV0Y2hlZCB0byBlcXVhbCBoZWlnaHQsXG4gIC8vIGFuZCB3aXRob3V0IHRoaXMgdGhlIGxlZ2VuZCB3b3VsZCBmbG9hdCBtaWQtY2FyZCB1bmRlciB0aGUgc2hvcnRlciBncmlkLlxuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgLy8gODBweCB3aWRlciB0aGFuIC5wcm9ncmFtcy1vdmVydmlldydzIG93biA1MjJweCBjYXAgKHNlZSBpdHMgaGVhZGVyXG4gIC8vIGNvbW1lbnQpIC0gcGVyIGRlc2lnbiwgdGhpcyBjYXJkIHRha2VzIG1vcmUgb2YgdGhlIHJvdydzIHdpZHRoIG9uIGEgd2lkZVxuICAvLyBwYWdlIHJhdGhlciB0aGFuIHRoZSB0d28gc3BsaXR0aW5nIGl0IGV2ZW5seS4gUHJldmlvdXNseSB0aGlzIGNhcmQgaGFkIG5vXG4gIC8vIG1heC13aWR0aCBhbmQgYWJzb3JiZWQgYWxsIHRoZSByb3cncyBsZWZ0b3ZlciB3aWR0aCBieSBkZXNpZ247IG5vdyBib3RoXG4gIC8vIGNhcmRzIGNhcCBvdXQsIGFuZCBhIHBhZ2Ugd2lkZSBlbm91Z2ggZm9yIGJvdGggbGVhdmVzIHdoaXRlc3BhY2UgaW5cbiAgLy8gLnByb2dyYW1zLW92ZXJ2aWV3LXJvdyBpbnN0ZWFkLlxuICBtYXgtd2lkdGg6IDYwMnB4O1xuICBwYWRkaW5nOiAyMHB4O1xuXG4gICZfX3RpdGxlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICB9XG5cbiAgLy8gVGhlIHNjcm9sbGVyLCBub3QgdGhlIGdyaWQgaXRzZWxmOiBhIGdyaWQgdGhhdCBpcyBpdHMgb3duIHNjcm9sbCBjb250YWluZXJcbiAgLy8gY2Fubm90IGJlIGNlbnRyZWQgYnkgaXRzIHBhcmVudCwgYW5kIGBvdmVyZmxvd2Agb24gdGhlIGdyaWQgd291bGQgYWxzbyBjbGlwXG4gIC8vIG5vdGhpbmcgdXNlZnVsIHNpbmNlIHRoZSBjZWxscyBhcmUgdGhlIG92ZXJmbG93LiBUd2VsdmUgZml4ZWQgMzJweCBtb250aFxuICAvLyBjb2x1bW5zIGNhbiBleGNlZWQgYSBoYWxmLXdpZHRoIGNhcmQsIGFuZCB0aGlzIGlzIHdoYXQgbWFrZXMgdGhhdFxuICAvLyBzdXJ2aXZhYmxlIGluc3RlYWQgb2YgYmxvd2luZyB0aGUgcm93IG9wZW4gKHdpdGggLnByb2dyYW1zLW92ZXJ2aWV3LXJvdydzXG4gIC8vIG1pbi13aWR0aDogMCBvbiB0aGUgY2FyZCwgd2hpY2ggaXMgd2hhdCBsZXRzIHRoaXMgYm94IGJlIG5hcnJvd2VyIHRoYW4gaXRzXG4gIC8vIGNvbnRlbnQpLlxuICAmX19zY3JvbGwge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgIC8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZ3JpZCB3aXRoaW4gd2hhdGV2ZXIgbGVmdG92ZXIgc3BhY2UgZmxleC1ncm93XG4gICAgLy8gZ2l2ZXMgdGhpcyBlbGVtZW50IGJldHdlZW4gdGhlIHRpdGxlIGFuZCB0aGUgbGVnZW5kIC0gdGhlIGdyaWQgc3RheXMgYVxuICAgIC8vIHNpbmdsZSBmbGV4IGNoaWxkIGhlcmUsIHNvIHRoaXMgb25seSBldmVyIGFmZmVjdHMgdGhlIGNyb3NzIGF4aXMsIG5ldmVyXG4gICAgLy8gdGhlIGhvcml6b250YWwgc2Nyb2xsIGJlbG93LlxuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC8vIENsZWFycyB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgd2hlcmUgb25lIGFwcGVhcnMsIHNvIGl0IGRvZXMgbm90IHNpdCBvblxuICAgIC8vIHRoZSBib3R0b20gcm93IG9mIGNlbGxzLlxuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIH1cblxuICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnMgY29tZXMgZnJvbSB0aGUgY29udHJvbGxlciB2aWEgbmctc3R5bGU6IHRoZSBjb2x1bW5cbiAgLy8gY291bnQgaXMgdGhlIG51bWJlciBvZiBkYXlzIG9yIG1vbnRocyBpbiByYW5nZSwgc28gdGhlIHRyYWNrIGxpc3QgY2Fubm90IGJlXG4gIC8vIHdyaXR0ZW4gaGVyZS4gSXQgaXMgYWx3YXlzIGBhdXRvIHJlcGVhdChOLCAkcGdjLWNlbGwtaClgIC0gb25lIHNocmluay10by1maXRcbiAgLy8gY29sdW1uIGZvciB0aGUgcm93IGxhYmVscywgdGhlbiBOIGZpeGVkLXdpZHRoIGNlbGwgY29sdW1ucyBtYXRjaGluZyB0aGVcbiAgLy8gY2VsbHMnIG93biBzcXVhcmUgc2l6ZS5cbiAgLy9cbiAgLy8gZGlzcGxheTogZ3JpZCByYXRoZXIgdGhhbiBpbmxpbmUtZ3JpZDogdGhlIGdyaWQgbXVzdCBiZSBhYmxlIHRvIGJlIG5hcnJvd2VyXG4gIC8vIHRoYW4gaXRzIHRyYWNrcyB3YW50IHNvIF9fc2Nyb2xsIGhhcyBzb21ldGhpbmcgdG8gc2Nyb2xsLlxuICAmX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBnYXA6ICRwZ2MtZ2FwO1xuICAgIC8vIEdyaWQncyBkZWZhdWx0IGp1c3RpZnktY29udGVudCAobm9ybWFsKSBzdHJldGNoZXMgd2hpY2hldmVyIHRyYWNrIGhhc1xuICAgIC8vIGFuIGBhdXRvYCBtYXggc2l6aW5nIGZ1bmN0aW9uIHRvIHNvYWsgdXAgbGVmdG92ZXIgc3BhY2UgLSBoZXJlIHRoYXQnc1xuICAgIC8vIHRoZSByb3ctbGFiZWwgY29sdW1uLCBzaW5jZSB0aGUgY2VsbCBjb2x1bW5zIGFyZSBhIGZpeGVkIDMycHguIExlZnQgYXRcbiAgICAvLyB0aGUgZGVmYXVsdCwgYSBjYXJkIHdpZGVyIHRoYW4gdGhlIHRyYWNrcyBuZWVkIHdvdWxkIGJhbGxvb24gdGhlIGxhYmVsXG4gICAgLy8gY29sdW1uIGFuZCBzaG92ZSBldmVyeSBjZWxsIG92ZXIgdG8gdGhlIHJpZ2h0IGVkZ2UuIGBjZW50ZXJgIG9wdHMgb3V0XG4gICAgLy8gb2YgdGhhdCBzdHJldGNoIGFuZCBjZW50ZXJzIHRoZSB3aG9sZSB0cmFjayBzZXQgKGxhYmVscyBhbmQgY2VsbHNcbiAgICAvLyB0b2dldGhlcikgaW4gdGhlIGJveCBpbnN0ZWFkLlxuICAgIC8vXG4gICAgLy8gUGxhaW4gYGNlbnRlcmAgZmlyc3QgYXMgdGhlIGZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvbid0IHVuZGVyc3RhbmRcbiAgICAvLyBgc2FmZWAgKGFuIGludmFsaWQgdmFsdWUgZHJvcHMgdGhlIHdob2xlIGRlY2xhcmF0aW9uLCBsZWF2aW5nIHRoaXMgb25lXG4gICAgLy8gc3RhbmRpbmcpOyBgc2FmZSBjZW50ZXJgIHNlY29uZCBmb3IgZXZlcnlvbmUgZWxzZS4gV2l0aG91dCBgc2FmZWAsIGFcbiAgICAvLyBncmlkIFdJREVSIHRoYW4gX19zY3JvbGwgLSBMYXN0IFllYXIncyB0d2VsdmUgbW9udGggY29sdW1ucyBpcyB0aGVcbiAgICAvLyByZWxpYWJsZSB3YXkgdG8gaGl0IHRoaXMgLSBjZW50ZXJzIGJ5IHB1c2hpbmcgdGhlIHNhbWUgb3ZlcmZsb3cgb2ZmXG4gICAgLy8gYm90aCBlZGdlcywgYW5kIHVuc2Nyb2xsZWQgdGhhdCBjbGlwcyB0aGUgcm93LWxhYmVsIGNvbHVtbiBvbiB0aGUgbGVmdFxuICAgIC8vIGFuZCBhIHRyYWlsaW5nIG1vbnRoIG9uIHRoZSByaWdodCByYXRoZXIgdGhhbiBzaG93aW5nIGVpdGhlciBpbiBmdWxsLlxuICAgIC8vIGBzYWZlYCBmYWxscyBiYWNrIHRvIHN0YXJ0IGFsaWdubWVudCBvbmx5IG9uY2UgdGhlIGNvbnRlbnQgbm8gbG9uZ2VyXG4gICAgLy8gZml0cywgc28gYSB3aWRlIGdyaWQgc3RpbGwgb3BlbnMgZmx1c2ggbGVmdCB3aXRoIG5vdGhpbmcgY3V0IG9mZiwgYW5kIGFcbiAgICAvLyBuYXJyb3cgb25lIHN0aWxsIGNlbnRlcnMuXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzYWZlIGNlbnRlcjtcbiAgICAvLyBTaHJpbmstd3JhcHMgdGhlIHRyYWNrcyBpbnNpZGUgdGhlIHNjcm9sbGVyIGluc3RlYWQgb2Ygc3RyZXRjaGluZyB0aGVtXG4gICAgLy8gdG8gZmlsbCBpdCAtIHNlZSB0aGUganVzdGlmeS1jb250ZW50IG5vdGUgYWJvdmUgZm9yIHdoeSB0aGF0IG1hdHRlcnMuXG4gICAgd2lkdGg6IC1tb3otbWF4LWNvbnRlbnQ7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIC8vIEZhbGxzIGJhY2sgdG8gZmlsbGluZyB0aGUgc2Nyb2xsZXIgd2hlcmUgbWF4LWNvbnRlbnQgaXMgdW5zdXBwb3J0ZWQsXG4gICAgLy8gd2hpY2ggc3RpbGwgbGF5cyB0aGUgY2VsbHMgb3V0IGNvcnJlY3RseSAtIG9ubHkgdGhlIGNlbnRlcmluZyBkb2VzIG5vdFxuICAgIC8vIGFwcGx5LCBzaW5jZSB0aGVyZSBpcyBubyBsb25nZXIgYW55IGxlZnRvdmVyIHdpZHRoIHRvIGNlbnRlciB3aXRoaW4uXG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIGVtcHR5IGNlbGwgb3ZlciB0aGUgcm93LWxhYmVsIGNvbHVtbi4gRGVjbGFyZWQgc28gdGhlIGZsYXQgaXRlbSBsaXN0XG4gIC8vIGhhcyBzb21ldGhpbmcgdG8gaGFuZyBhIGNsYXNzIG9uOyBpdCBoYXMgbm8gYXBwZWFyYW5jZSBvZiBpdHMgb3duLlxuICAmX19jb3JuZXIge1xuICAgIGhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gU3BlYyBjYWxscyB0aGUgZmFtaWx5ICdOdWRpc3RhIFRSSUFMJyAtIHRoYXQncyBGaWdtYSdzIG5hbWUgZm9yIGEgdHJpYWxcbiAgLy8gbGljZW5zZSBvZiB0aGUgc2FtZSB3ZWJmb250IHRoaXMgd2hvbGUgY2FyZCBhbHJlYWR5IHJlbmRlcnMgaW5cbiAgLy8gKCdOdWRpc3RhJywgZGVjbGFyZWQgb24gLnByb2dyYW1zLWNvbXBsZXRpb24gYWJvdmUpOyBub3RoaW5nIGhlcmUgaXMgb24gYVxuICAvLyBkaWZmZXJlbnQgZmFtaWx5LiBTcGVjIGFsc28gYXNrcyBmb3IgXCJsZWFkaW5nLXRyaW06IG5vbmVcIiwgd2hpY2ggaGFzIG5vXG4gIC8vIGVmZmVjdCBpbiBhbnkgYnJvd3NlciB0aGlzIGFwcCBzdXBwb3J0cyBhbmQgaXMgbGVmdCBvZmYuXG4gICZfX2hlYWQtY2VsbCxcbiAgJl9fcm93LWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB9XG5cbiAgLy8gQ2VudGVyZWQgb3ZlciBlYWNoIGZpeGVkLXdpZHRoIGRheS9tb250aCBjb2x1bW4sIHVubGlrZSB0aGUgcm93IGxhYmVscydcbiAgLy8gcmlnaHQgYWxpZ25tZW50IGJlbG93IC0gdGhlIHR3byBzaXQgaW4gZGlmZmVyZW50IHRyYWNrcyAodGhlIGhlYWQgcm93IHZzLlxuICAvLyB0aGUgYXV0byBsYWJlbCBjb2x1bW4pIHNvIHRoZXJlJ3Mgbm8gc2hhcmVkIGVkZ2UgZm9yIHRoZW0gdG8gYWxpZ25cbiAgLy8gYWdhaW5zdCBlYWNoIG90aGVyIG9uLlxuICAmX19oZWFkLWNlbGwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFJpZ2h0LWFsaWduZWQgYWdhaW5zdCB0aGUgZ3JpZCdzIG93biBnYXAsIGFuZCBtdXN0IG5vdCB3cmFwIChcIk1heSA0LTEwXCJcbiAgLy8gYW5kIFwiV2VlayAxXCIgYXJlIHRoZSB0d28gc2hhcGVzKSBzbyBpdCBzdGF5cyBhIGNvbnNpc3RlbnQgZGlzdGFuY2UgZnJvbVxuICAvLyB0aGUgZmlyc3QgY29sdW1uIG9mIGNlbGxzLlxuICAmX19yb3ctbGFiZWwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyBUaGUgc3F1YXJlcy4gRml4ZWQgMzJ4MzIgLSBib3gtc2l6aW5nIGJ5IGhhbmQsIHNpbmNlIHRoZXJlIGlzIG5vIGdsb2JhbFxuICAvLyBib3JkZXItYm94IHJlc2V0IGluIHRoaXMgYnVpbGQuXG4gIC8vXG4gIC8vIFNwZWMgY2FsbHMgdGhlIGxhYmVsIGZvbnQgJ0ludGVyJywgd2VpZ2h0IDYwMCAtIHNlbGYtaG9zdGVkIGJ5IHRoZVxuICAvLyBAZm9udC1mYWNlIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlLiBzYW5zLXNlcmlmIHN0YXlzIGFzIHRoZSBmYWxsYmFjayBmb3JcbiAgLy8gdGhlIG1vbWVudCBiZWZvcmUgdGhlIGZvbnQgZmlsZSBsb2Fkcy4gU3BlYydzIFwibGVhZGluZy10cmltOiBub25lXCIgYW5kIFwibGV0dGVyLXNwYWNpbmc6IDAlXCIgY2Fycnkgbm9cbiAgLy8gZWZmZWN0L2FyZSB0aGUgZGVmYXVsdCByZXNwZWN0aXZlbHkgYW5kIGFyZSBsZWZ0IG9mZiwgc2FtZSB0cmVhdG1lbnQgYXNcbiAgLy8gdGhlIHJvdy1sYWJlbC9oZWFkLWNlbGwgcnVsZSBhYm92ZS5cbiAgJl9fY2VsbCB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogJHBnYy1yYWRpdXM7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBTcGVjJ3MgbGFiZWwgY29sb3IgaXMgI0VGRUZGMSAtIHRoZSBzYW1lIHZhbHVlIGFzICRwZ2Mtbm9uZSBiZWxvdywgcmV1c2VkXG4gICAgLy8gcmF0aGVyIHRoYW4gcmVzdGF0ZWQuIENvaW5jaWRlbmNlIG9yIG5vdCwgaXQgbWVhbnMgLS1ub25lICh3aGljaCBoYXMgbm9cbiAgICAvLyBsYWJlbCAtIHNlZSBiZWxvdykgbmV2ZXIgYWN0dWFsbHkgcmVuZGVycyB0aGlzIGNvbG9yLCBhbmQgLS16ZXJvIHJlbmRlcnNcbiAgICAvLyBpdCBhdCBsb3cgY29udHJhc3QgYWdhaW5zdCAkcGdjLXplcm87IGJvdGggYXJlIHRoZSBkZXNpZ24ncyBjYWxsLCBub3QgYVxuICAgIC8vIGJ1ZyBoZXJlLlxuICAgIGNvbG9yOiAkcGdjLW5vbmU7XG4gICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgaGVpZ2h0OiAkcGdjLWNlbGwtaDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAvLyAtLW5vbmUgaXMgdGhlIG9ubHkgc3RhdGUgd2l0aCBubyBsYWJlbCBhdCBhbGwgKF9jb21wbGV0aW9uQ2VsbCByZXR1cm5zIG5vXG4gICAgLy8gYGxhYmVsYCBmb3IgaXQpLlxuICAgICYtLW5vbmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLW5vbmU7IH1cbiAgICAmLS16ZXJvIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy16ZXJvOyB9XG4gICAgJi0tbDEgICB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2MtbDE7IH1cbiAgICAmLS1sMiAgIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1sMjsgfVxuICAgICYtLWwzICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWwzOyB9XG4gICAgJi0tbDQgICB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2MtbDQ7IH1cbiAgICAvLyBBIGRheS93ZWVrIHRoZSBjb250cm9sbGVyIGJ1aWx0IG91dHNpZGUgdGhlIHJlcXVlc3RlZCByYW5nZSAodGhlIGdyaWRcbiAgICAvLyBpc24ndCBzbmFwcGVkIHRvIHdob2xlIGJ1Y2tldHMgLSBzZWUgX3JlbmRlclByb2dyYW1Db21wbGV0aW9uJ3MgaGVhZGVyKS5cbiAgICAvLyBNYXRjaGVzIC5wcm9ncmFtcy1jb21wbGV0aW9uJ3Mgb3duIGJhY2tncm91bmQgc28gdGhlIHNxdWFyZSBkaXNhcHBlYXJzXG4gICAgLy8gaW50byB0aGUgY2FyZCByYXRoZXIgdGhhbiByZWFkaW5nIGFzIFwibm8gcHJvZ3JhbVwiIGdyZXksIHdoaWNoIHdvdWxkXG4gICAgLy8gb3ZlcnN0YXRlIHdoYXQgdGhlIEFQSSB3YXMgYXNrZWQuIEFsc28gY2FycmllcyBubyBsYWJlbCwgc2FtZSBhc1xuICAgIC8vIC0tbm9uZS5cbiAgICAmLS1vdXRzaWRlIHsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICB9XG5cbiAgLy8gLS0tLSB0aGUgbGVnZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBtYXJnaW4tdG9wOiBhdXRvIHBpbnMgdGhpcyB0byB0aGUgYm90dG9tIG9mIHRoZSBjYXJkIC0gc2VlIHRoZSBibG9jaydzXG4gIC8vIGZsZXgtY29sdW1uIG5vdGUgYWJvdmUuIHdyYXAgYmVjYXVzZSB0aGUgdHdvIGRvdCBpdGVtcyBmYWxsIHRvIGEgc2Vjb25kXG4gIC8vIGxpbmUgaW4gYSBoYWxmLXdpZHRoIGNhcmQgYW5kIG11c3Qgbm90IHB1c2ggdGhlIHJhbXAgb2ZmIHRoZSBlZGdlLlxuICAvLyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciBjZW50ZXJzIHRoZSByb3cgaXRzZWxmIGluIHRoZSBjYXJkOyB3cmFwcGVkIGl0ZW1zXG4gIC8vIHN0aWxsIGNlbnRlciBhcyB0aGVpciBvd24gbGluZSByYXRoZXIgdGhhbiBzdHJldGNoaW5nIGVkZ2UgdG8gZWRnZS5cbiAgJl9fbGVnZW5kIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICB9XG5cbiAgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLy8gRXh0cmEgYnJlYXRoaW5nIHJvb20gYmV0d2VlbiBcIk5vdGhpbmcgQ29tcGxldGVkXCIgYW5kIFwiTm8gUHJvZ3JhbVxuICAvLyBTY2hlZHVsZWRcIiBzcGVjaWZpY2FsbHksIG9uIHRvcCBvZiBfX2xlZ2VuZCdzIG93biA4cHggcm93IGdhcCAtIHRoZSBzYW1lXG4gIC8vIHN0YWNrZWQtc3BhY2luZyBwYXR0ZXJuICZfX2xlZ2VuZC1ydWxlIHVzZXMgdG8gc2V0IHRoZSByYW1wIGFwYXJ0IGZyb21cbiAgLy8gdGhlc2UgdHdvLiBUaGUgYWRqYWNlbnQtc2libGluZyBzZWxlY3RvciAocmF0aGVyIHRoYW4gYSBtb2RpZmllciBjbGFzcylcbiAgLy8gaXMgd2hhdCBrZWVwcyB0aGlzIG9mZiB0aGUgcnVsZS10by1maXJzdC1pdGVtIGdhcCwgc2luY2Ugb25seSBhXG4gIC8vIGxlZ2VuZC1pdGVtIGZvbGxvd2luZyBhbm90aGVyIGxlZ2VuZC1pdGVtIGlzIG9uZSBvZiB0aGVzZSB0d28uXG4gICZfX2xlZ2VuZC1pdGVtICsgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIH1cblxuICAvLyAnTnVkaXN0YSBUUklBTCcgaW4gc3BlYywgc2FtZSBkaXZlcmdlbmNlIGFzIF9faGVhZC1jZWxsL19fcm93LWxhYmVsIGFib3ZlXG4gIC8vIChpbmhlcml0ZWQgZnJvbSAucHJvZ3JhbXMtY29tcGxldGlvbidzIG93biAnTnVkaXN0YScgcmF0aGVyIHRoYW4gcmVzdGF0ZWRcbiAgLy8gaGVyZSk7IFwibGVhZGluZy10cmltOiBub25lXCIgYW5kIFwibGV0dGVyLXNwYWNpbmc6IDAlXCIgZ2V0IHRoZSBzYW1lXG4gIC8vIG5vLWVmZmVjdC9kZWZhdWx0IHRyZWF0bWVudCB0b28uXG4gICZfX2xlZ2VuZC1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gIC8vIFRoZSBmb3VyIHN0ZXBzIHJlYWQgYXMgb25lIGNvbnRpbnVvdXMgc2NhbGUsIHNvIHRoZXkgbmVlZCB0aGVpciBvd24gdGlnaHRlclxuICAvLyBnYXAgdGhhbiB0aGUgbGVnZW5kIHJvdydzIDhweCAtIGhlbmNlIGEgd3JhcHBlciByYXRoZXIgdGhhbiBmb3VyIGJhcmVcbiAgLy8gc2libGluZ3Mgb2YgXCJsZXNzXCIgYW5kIFwibW9yZVwiLlxuICAmX19yYW1wIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBnYXA6IDJweDtcbiAgfVxuXG4gIC8vIFRoZSBmb3VyIHJhbXAgc3RlcHMgYmV0d2VlbiBcImxlc3NcIiBhbmQgXCJtb3JlXCIuIFN0cmFpZ2h0LWVkZ2VkIHJhdGhlciB0aGFuXG4gIC8vIHRoZSBjZWxscycgcm91bmRlZCBzcXVhcmVzLCBzbyB0aGUgcmFtcCByZWFkcyBhcyBvbmUgY29udGludW91cyBzY2FsZSAtXG4gIC8vIG9ubHkgdGhlIG91dGVyIHR3byBjb3JuZXJzIG9mIHRoZSBmaXJzdCBhbmQgbGFzdCBzdGVwIHJvdW5kIG9mZiwgY2FwcGluZ1xuICAvLyB0aGUgYmFyIHRoZSB3YXkgdGhlIGNlbGxzJyBvd24gcmFkaXVzIGNhcHMgYSBzaW5nbGUgc3F1YXJlLlxuICAmX19zd2F0Y2gge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogOHB4O1xuICAgIHdpZHRoOiAyNnB4O1xuXG4gICAgJi0tbDEgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWwxOyBib3JkZXItcmFkaXVzOiA4cHggMCAwIDhweDsgfVxuICAgICYtLWwyIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1sMjsgfVxuICAgICYtLWwzIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1sMzsgfVxuICAgICYtLWw0IHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1sNDsgYm9yZGVyLXJhZGl1czogMCA4cHggOHB4IDA7IH1cbiAgfVxuXG4gIC8vIFNlcGFyYXRlcyB0aGUgcmFtcCBmcm9tIHRoZSB0d28gbmFtZWQgc3RhdGVzLCB3aGljaCBhcmUgbm90IHBhcnQgb2YgaXQuXG4gICZfX2xlZ2VuZC1ydWxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeC1ib3JkZXItZmFpbnQ7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMCA4cHg7XG4gICAgd2lkdGg6IDFweDtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGNlbnRlcmluZyBhZ2FpbnN0IHRoZSByZXN0IG9mIHRoZSBsZWdlbmQgcm93IGNvbWVzIGZvciBmcmVlIGZyb21cbiAgLy8gX19sZWdlbmQtaXRlbSdzIG93biBhbGlnbi1pdGVtczogY2VudGVyIC0gdGhpcyBvbmx5IG5lZWRzIHRoZSBzaXplLlxuICAmX19sZWdlbmQtZG90IHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDhweDtcblxuICAgICYtLXplcm8geyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLXplcm87IH1cbiAgICAmLS1ub25lIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1ub25lOyB9XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gIH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvKiBPcHQtaW4gcmVzdHlsZSBvZiBmdXNpb25Ecm9wRG93blBpbGwgdG8gbWF0Y2ggZnVzaW9uRGF0ZVJhbmdlU2VsZWN0LlxuXG4gICBUaGUgZGlyZWN0aXZlIGFuZCBpdHMgdGVtcGxhdGUgYXJlIHNoYXJlZCBieSB0ZXN0YXJjaGl2ZXMsIHRlYW1yZXBvcnQsIG5vdGVzXG4gICBhbmQgdGhlIHByb2dyYW0tdHlwZSBmaWx0ZXIsIHNvIG5vbmUgb2YgdGhpcyBtYXkgbGVhay4gSXQgaXMgc2NvcGVkIHRvIGFcbiAgIGBzZWxlY3QtcGlsbGAgY2xhc3MgcHV0IG9uIHRoZSBESVJFQ1RJVkUgSE9TVCBlbGVtZW50ICh0aGUgcGlsbCdzIG93blxuICAgY2xhc3MtY29sb3IgYXR0cmlidXRlIGxhbmRzIG9uIC50cmlnZ2VyLCB3aGljaCBpcyB0b28gZGVlcCB0byByZWFjaCB0aGVcbiAgIHN1Ym1lbnUgZnJvbSkuIEFkZCB0aGUgY2xhc3MsIGRyb3AgY2xhc3MtY29sb3IsIGFuZCB0aGUgaW5zdGFuY2Ugb3B0cyBpbjpcblxuICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXBpbGxcIiBmdXNpb24tZHJvcC1kb3duLXBpbGwgLi4uPlxuXG4gICBUaGUgbGVnYWN5IHJ1bGVzIGxpdmUgaW4gc3JjL3Nhc3MvX3JlcG9ydHMuc2NzcywgaW1wb3J0ZWQgYnkgYSBESUZGRVJFTlRcbiAgIHJvb3Qgc2hlZXQgKGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MpLiBMb2FkIG9yZGVyIGJldHdlZW4gdGhlIHR3b1xuICAgc2hlZXRzIGlzIG5vdCBndWFyYW50ZWVkIGhlcmUsIHNvIGV2ZXJ5IHNlbGVjdG9yIGJlbG93IGNhcnJpZXMgdGhlXG4gICBgLnNlbGVjdC1waWxsYCBwcmVmaXggcHVyZWx5IHRvIG91dHJhbmsgaXRzIGxlZ2FjeSBjb3VudGVycGFydCBvblxuICAgc3BlY2lmaWNpdHkgcmF0aGVyIHRoYW4gb24gc291cmNlIG9yZGVyLlxuXG4gICBJY29ucyBhcmUgZGF0YS1VUkkgYmFja2dyb3VuZHMsIG5vdCBpbmxpbmUgU1ZHLCBiZWNhdXNlIHRoZSBzaGFyZWQgdGVtcGxhdGVcbiAgIGhhcyBubyBpY29uIHNsb3RzIGFuZCBhZGRpbmcgdGhlbSB3b3VsZCBjaGFuZ2UgZXZlcnkgb3RoZXIgY29uc3VtZXIuIEFcbiAgIGJhY2tncm91bmQgaW1hZ2UgY2Fubm90IGluaGVyaXQgY3VycmVudENvbG9yLCBzbyB0aGUgdGhyZWUgZ2x5cGggY29sb3Vyc1xuICAgYmVsb3cgYXJlIGJha2VkIGluIC0ga2VlcCB0aGVtIGluIHN0ZXAgd2l0aCB0aGUgJHNwLSogdG9rZW5zLlxuXG4gICBOb3QgY2hhbmdlZDogdGhlIHBpbGwgc3RpbGwgb3BlbnMgb24gbW91c2VlbnRlciAoRHJvcERvd25QaWxsLmpzIGJpbmRzIGl0KSxcbiAgIHdoZXJlIHRoZSBkYXRlIHNlbGVjdG9yIG9wZW5zIG9uIGNsaWNrLiBUaGF0IGlzIGRpcmVjdGl2ZSBiZWhhdmlvdXIgc2hhcmVkXG4gICB3aXRoIGZvdXIgb3RoZXIgcGFnZXMsIG5vdCBzdHlsaW5nLiAqL1xuXG5cbi8vIE1hdGNoZXMgJGRycy10cmlnZ2VyLWhlaWdodCAvICRkcnMtdHJpZ2dlci1nYXAgaW4gX2RhdGVfcmFuZ2Vfc2VsZWN0LnNjc3MuXG4kc3AtdHJpZ2dlci1oZWlnaHQ6IDQwcHg7XG4kc3AtdHJpZ2dlci1nYXA6ICAgIDZweDtcbi8vIEZpeGVkLCBhbmQgdGhlIG1lbnUgYmVsb3cgaXMgbG9ja2VkIHRvIHRoZSBzYW1lIG51bWJlciBzbyB0aGUgdHdvIGVkZ2VzIGxpbmVcbi8vIHVwLiBUaGUgdHJpZ2dlciBsZWF2ZXMgMjA1IC0gMiBib3JkZXIgLSAxOCBwYWRkaW5nIC0gMTYgZm9sZGVyIC0gMTYgY2FyZXQgLVxuLy8gMTIgZ2FwcyA9IDE0MXB4IGZvciB0aGUgbGFiZWwsIGFuZCB0aGUgbWVudSByb3dzIGxlYXZlIDIwNSAtIDIgLSAyOCBwYWRkaW5nXG4vLyAtIDggZ2FwIC0gMTYgY2hlY2sgPSAxNTFweC4gVGhlIGxvbmdlc3QgbGFiZWwgKFwiQm9keSBNQVA6IE1FIFNjcmVlblwiKSBzaXRzXG4vLyByaWdodCBhdCB0aGF0IGVkZ2UgYW5kIHdpbGwgZWxsaXBzaXMgcmF0aGVyIHRoYW4gd2lkZW4gZWl0aGVyIGJveC5cbiRzcC13aWR0aDogICAgICAgICAgMjA1cHg7XG5cbiRzcC10cmlnZ2VyLXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgxMCwgMTMsIDE4LCAuMDUpO1xuJHNwLXBhbmVsLXNoYWRvdzogICAwIDEycHggMTZweCAtNHB4IHJnYmEoMTYsIDI0LCA0MCwgLjA4KSxcbiAgICAgICAgICAgICAgICAgICAgMCA0cHggNnB4IC0ycHggcmdiYSgxNiwgMjQsIDQwLCAuMDMpO1xuXG4vLyAxNnB4IGdseXBocy4gYCNgIG11c3QgYmUgd3JpdHRlbiAlMjMgaW5zaWRlIGEgZGF0YSBVUkksIGFuZCB0aGUgYXR0cmlidXRlXG4vLyBxdW90ZXMgYXJlIHNpbmdsZSBzbyB0aGUgd2hvbGUgdXJsKCkgY2FuIGJlIGRvdWJsZS1xdW90ZWQuXG4vL1xuLy8gVGhlIGZvbGRlciBpcyBhIGZpbGUgcmF0aGVyIHRoYW4gYSBkYXRhIFVSSSAtIHNlZSB0aGUgdHJpZ2dlciBydWxlIGJlbG93LlxuJHNwLWljb24tY2FyZXQ6ICBcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTYnIGhlaWdodD0nMTYnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGQ9J000IDZMOCAxMEwxMiA2JyBzdHJva2U9JyUyMzZkNmQ2ZCcgc3Ryb2tlLXdpZHRoPScxLjUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcvJTNFJTNDL3N2ZyUzRVwiO1xuJHNwLWljb24tY2hlY2s6ICBcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTYnIGhlaWdodD0nMTYnIHZpZXdCb3g9JzAgMCAxNiAxNicgZmlsbD0nbm9uZSclM0UlM0NwYXRoIGQ9J00xMy4zMyA0TDYgMTEuMzNMMi42NyA4JyBzdHJva2U9JyUyMzk3NjhlYicgc3Ryb2tlLXdpZHRoPScxLjUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcvJTNFJTNDL3N2ZyUzRVwiO1xuXG4uc2VsZWN0LXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgLyogLS0gdHJpZ2dlciAtLSAqL1xuXG4gIC5kcm9wZG93bi13cmFwcGVyIC50cmlnZ2VyLnBpbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAkc3AtdHJpZ2dlci1nYXA7XG4gICAgLy8gTm8gYm9yZGVyLWJveCByZXNldCBpbiB0aGlzIGJ1aWxkLCBzbyB0aGUgMXB4IGJvcmRlciBhbmQgdGhlIHBhZGRpbmcgYXJlXG4gICAgLy8gZm9sZGVkIGludG8gdGhlIDQwcHggYnkgaGFuZC5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogJHNwLXRyaWdnZXItaGVpZ2h0O1xuICAgIHdpZHRoOiAkc3Atd2lkdGg7XG4gICAgLy8gTGVnYWN5IC5waWxsIGlzIGEgMjRweC1yYWRpdXMgbG96ZW5nZSB3aXRoIDI4cHggb2Ygc2lkZSBwYWRkaW5nIGFuZCBhXG4gICAgLy8gMnB4IGFjY2VudCBib3JkZXI7IGFsbCB0aHJlZSBnby5cbiAgICBwYWRkaW5nOiAwIDhweCAwIDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAkc3AtdHJpZ2dlci1zaGFkb3c7XG4gICAgLy8gLnRyaWdnZXIgc2V0cyBsaW5lLWhlaWdodCA0N3B4IHRvIGNlbnRyZSB0ZXh0IGluIHRoZSBvbGQgbG96ZW5nZS4gVGhlXG4gICAgLy8gZmxleCBib3ggY2VudHJlcyBpdCBub3csIHNvIHRoaXMgaGFzIHRvIGNvbWUgYmFjayB0byBhIHJlYWwgdmFsdWUgb3IgdGhlXG4gICAgLy8gNDBweCBib3ggY2Fubm90IGNvbnRhaW4gaXQuXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTQwMDtcbiAgICB9XG5cbiAgICAvLyBMZWFkaW5nIGZvbGRlciBnbHlwaC4gQXMgYSBmbGV4IGl0ZW0gaXQgb3JkZXJzIGJlZm9yZSB0aGUgbGFiZWwgc3BhbixcbiAgICAvLyB3aGljaCBpcyB3aHkgdGhpcyBpcyA6OmJlZm9yZSBhbmQgbm90IGEgYmFja2dyb3VuZCBvbiB0aGUgdHJpZ2dlci5cbiAgICAvL1xuICAgIC8vIFBhdGggaXMgcmVsYXRpdmUgdG8gVEhJUyBwYXJ0aWFsLCBub3QgdG8gdGhlIGVudHJ5IHNoZWV0IC1cbiAgICAvLyByZXNvbHZlLXVybC1sb2FkZXIgKHdlYnBhY2suY29uZmlnLiouanM6MTM3KSByZXdyaXRlcyBpdCBmcm9tIGhlcmUuIFRoYXRcbiAgICAvLyBtYXRjaGVzIF9wcm9maWxlX2F0aGxldGUuc2NzczoyMjAxOyB0aGUgYC4uL2ltYWdlcy9gIGluIF90ZWFtLXRsLnNjc3M6MjY1XG4gICAgLy8gaXMgdGhlIGJyb2tlbiBzcGVsbGluZywgc2luY2Ugc3JjL3Nhc3MvaW1hZ2VzLyBkb2VzIG5vdCBleGlzdC5cbiAgICAvL1xuICAgIC8vIFRoZSBhc3NldCBpcyAzMngzMiBmb3IgYSAxNnB4IGJveCwgc28gaXQgc3RheXMgY3Jpc3Agb24gMnggZGlzcGxheXMgLVxuICAgIC8vIGhlbmNlIHRoZSBleHBsaWNpdCBiYWNrZ3JvdW5kLXNpemUgcmF0aGVyIHRoYW4gYGNvbnRhaW5gLlxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi9pbWFnZXMvcHJvZ3Jlc3NfcGFnZV9mb2xkZXIucG5nJykgbm8tcmVwZWF0IGNlbnRlciAvIDE2cHggMTZweDtcbiAgICB9XG5cbiAgICA+IHNwYW4ge1xuICAgICAgLy8gVGFrZXMgd2hhdCB0aGUgdHdvIGdseXBocyBsZWF2ZTsgY2xpcHMgcmF0aGVyIHRoYW4gd2lkZW5pbmcgdGhlIGNoaXAuXG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIC8vIGgtY29tcGFjdC10ZXh0IHNoaXBzIDEzcHgvYm9sZC91cHBlcmNhc2Ugd2l0aCArMC40cHggdHJhY2tpbmcuXG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0uMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gICAgICAvLyBOdWRpc3RhIHNpdHMgaGlnaCBpbiBpdHMgYm94IC0gc2FtZSBvcHRpY2FsIG51ZGdlIGFzIHRoZSBkYXRlIHRyaWdnZXIuXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcbiAgICB9XG5cbiAgICAvLyBUaGUgaWNvbi1mb250IGNhcmV0IGlzIHJlcGxhY2VkIGJ5IHRoZSA6OmFmdGVyIGNoZXZyb24gc28gYm90aCBjb250cm9sc1xuICAgIC8vIGRyYXcgdGhlIHNhbWUgZ2x5cGguXG4gICAgLmljb24tY2FyZXQtZHJvcGRvd24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiI3skc3AtaWNvbi1jYXJldH1cIikgbm8tcmVwZWF0IGNlbnRlciAvIDE2cHggMTZweDtcbiAgICB9XG4gIH1cblxuICAvKiAtLSBtZW51IC0tICovXG5cbiAgLmRyb3Bkb3duLXdyYXBwZXIgLnN1Ym1lbnUtd3JhcHBlciB7XG4gICAgLy8gdGlueS1wcm9zZSBzZXRzIDEzcHgvYm9sZC91cHBlcmNhc2Ugb24gdGhlIHdyYXBwZXIgYW5kIHRoZSBpdGVtcyBpbmhlcml0XG4gICAgLy8gaXQ7IHJlc2V0IGhlcmUgc28gZWFjaCBydWxlIGJlbG93IGlzIGEgcGxhaW4gdmFsdWUsIG5vdCBhbiBvdmVycmlkZS5cbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcblxuICAgID4gLnN1Ym1lbnUtY29udGVudCA+IC5zdWJtZW51IHtcbiAgICAgIC8vIDdweCBsZWdhY3kuIDRweCBtYXRjaGVzIHRoZSBkYXRlIHBhbmVsJ3MgdG9wOiBjYWxjKDEwMCUgKyA0cHgpLlxuICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgLy8gU2FtZSB3aWR0aCBhcyB0aGUgdHJpZ2dlciwgYm9yZGVycyBmb2xkZWQgaW4gc28gdGhlIHR3byBlZGdlcyBhbGlnbi5cbiAgICAgIC8vIC5zdWJtZW51LWNvbnRlbnQgaXMgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGFuZCBzaHJpbmstdG8tZml0LCBzbyB0aGlzIGlzXG4gICAgICAvLyB3aGF0IGFjdHVhbGx5IHNpemVzIHRoZSBwYW5lbC5cbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogJHNwLXdpZHRoO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBib3gtc2hhZG93OiAkc3AtcGFuZWwtc2hhZG93O1xuICAgICAgLy8gS2VlcHMgdGhlIGZpcnN0IGFuZCBsYXN0IHJvd3MgaW5zaWRlIHRoZSA4cHggY29ybmVycy5cbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnN1Ym1lbnUgdWwge1xuICAgICAgcGFkZGluZzogNnB4IDA7XG5cbiAgICAgICsgdWwge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3VibWVudSBsaSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgLy8gTGVnYWN5IGZsb29ycyB0aGlzIGF0IDIyM3B4LCB3aGljaCB3b3VsZCBwdXNoIHRoZSByb3cgcGFzdCB0aGUgMjA1cHhcbiAgICAgIC8vIHBhbmVsIGFuZCBkZWZlYXQgdGhlIHdpZHRoIGFib3ZlLlxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgLy8gMjFweCBsZWdhY3ktZGVyaXZlZCBsZWZ0IGluc2V0LCBwdWxsZWQgaW4gdG8gMTJweC5cbiAgICAgIHBhZGRpbmc6IDEwcHggMTZweCAxMHB4IDEycHg7XG4gICAgICAvLyBQZXIgdGhlIEZpZ21hIHR5cGUgc3BlYy4gSGVhdmllciBhbmQgbGFyZ2VyIHRoYW4gdGhlIDE0cHgvNTAwIHRoZSBkYXRlXG4gICAgICAvLyBzZWxlY3RvcidzIHByZXNldCByYWlsIHVzZXMgLSB0aGUgdHdvIGxpc3RzIGRvIG5vdCBtYXRjaCBvbiB0eXBlLlxuICAgICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgY29sb3I6ICMwMDAwMDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAvLyBMZWdhY3kgaG92ZXIgaXMgI0RFREZERSwgd2hpY2ggcmVhZHMgYXMgYSBwcmVzc2VkIHN0YXRlIG5leHQgdG8gdGhlXG4gICAgICAgIC8vIHdoaXRlIHBhbmVsLlxuICAgICAgICBiYWNrZ3JvdW5kOiAkcm93LWhvdmVyO1xuICAgICAgfVxuXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLy8gU2VsZWN0ZWQgcm93LiBUaGUgaXMtc2VsZWN0ZWQgY2xhc3MgaXMgc2V0IGZvciBldmVyeSBjb25zdW1lciBvZiB0aGVcbiAgICAgIC8vIHNoYXJlZCB0ZW1wbGF0ZSwgYnV0IG9ubHkgdGhpcyB2YXJpYW50IGRyYXdzIGFueXRoaW5nIGZvciBpdC4gRXZlcnlcbiAgICAgIC8vIHJvdyBpcyBhbHJlYWR5ICMwMDAgaGVyZSwgc28gdGhlIGNoZWNrIG1hcmsgYWxvbmUgY2FycmllcyB0aGUgc3RhdGUuXG4gICAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiI3skc3AtaWNvbi1jaGVja31cIikgbm8tcmVwZWF0IGNlbnRlciAvIDE2cHggMTZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyogRGF0ZSByYW5nZSBzZWxlY3RvciBmb3IgdGhlIHByb2dyZXNzIHJlcG9ydCBwYWdlLlxuXG4gICBQb3J0ZWQgZnJvbSB0aGUgYXBwJ3MgZGF0ZS1maWx0ZXIgLyBkYXRlLWZpbHRlci1kcm9wZG93biAvIGNhbGVuZGFyLWdyaWQuXG4gICBUaG9zZSBhcmUgVGFpbHdpbmQsIHNvIHRoZSB2YWx1ZXMgYmVsb3cgYXJlIHRoZSBkZS1AYXBwbHknZCB0b2tlbnMuIFRoZSBhcHBcbiAgIG9ubHkgZXZlciByZW5kZXJzIG9uZSBtb250aDsgdGhlIHR3by1tb250aCB2aWV3IGhlcmUgaXMgbmV3LlxuXG4gICBUcmFwcyB0aGlzIGJ1aWxkIGhhczogbm8gYXV0b3ByZWZpeGVyIChubyBkdmgsIG5vIHVucHJlZml4ZWQtb25seSBwcm9wcyksXG4gICBhbmQgcmVzcG9uZCgpIG9ubHkga25vd3MgNzY4cHggLyA0ODBweC4gVGhlIHNpbmdsZS1tb250aCBjb2xsYXBzZSBiZWxvdyBpc1xuICAgYSBwcm9wZXJ0eSBvZiB0aGlzIHBhbmVsJ3Mgd2lkdGgsIG5vdCBhIHByb2plY3QgdGllciwgc28gaXQgaXMgYSBiYXJlXG4gICBtZWRpYSBxdWVyeS4gKi9cblxuXG4vLyBGaXhlZCBib3ggLSBpdCBtdXN0IG5vdCByZXNpemUgYXMgdGhlIGxhYmVsIGNoYW5nZXMuIEEgZnVsbCBjdXN0b20gcmFuZ2Vcbi8vIChcIjAxLjIzLjI1IC0gMDIuMjMuMjVcIikgbmVlZHMgfjEyMHB4LCBhbmQgdGhlIGNocm9tZSBhcm91bmQgdGhlIGxhYmVsIGlzXG4vLyBzaXplZCBzbyAxOThweCBjbGVhcnMgdGhhdDogMTk4IC0gMiBib3JkZXIgLSAxOCBwYWRkaW5nIC0gMTYgaWNvbiAtIDE2XG4vLyBjYXJldCAtIDEyIGdhcHMgPSAxMzRweCBmb3IgdGhlIGxhYmVsLlxuJGRycy10cmlnZ2VyLXdpZHRoOiAgICAgMTk4cHg7XG4kZHJzLXRyaWdnZXItaGVpZ2h0OiAgICA0MHB4O1xuJGRycy10cmlnZ2VyLWdhcDogICAgICAgNnB4O1xuJGRycy1yYWlsLXdpZHRoOiAgICAgICAgMjAwcHg7XG5cbi8vIFRoZSB0d28tbW9udGggY2FsZW5kYXIgYmxvY2suIFRoZSBtb250aHMgZGl2aWRlIHRoZSB3aWR0aCBiZXR3ZWVuIHRoZW0gYW5kXG4vLyB0aGUgc2l4IHdlZWsgcm93cyBkaXZpZGUgdGhlIGxlZnRvdmVyIGhlaWdodCwgc28gdGhlIGJsb2NrIGxhbmRzIG9uIHRoaXNcbi8vIHNpemUgZXhhY3RseSB3aGF0ZXZlciB0aGUgaGVhZGVyIGFuZCBkYXktb2Ytd2VlayByb3cgY29zdC4gSGVpZ2h0IGlzIHdoYXRcbi8vIHNldHMgdGhlIHBhbmVsJ3Mgb3ZlcmFsbCA0NDFweCAtIHRoZSB3ZWVrIHJvd3MgdGFrZSB0aGUgZGlmZmVyZW5jZSwgc29cbi8vIHNocmlua2luZyBpdCB0aWdodGVucyB0aGUgY2FsZW5kYXIgcmF0aGVyIHRoYW4gdGhlIHN1cnJvdW5kaW5nIHNwYWNpbmcuXG4kZHJzLW1vbnRocy13aWR0aDogICAgICA2ODBweDtcbiRkcnMtbW9udGhzLWhlaWdodDogICAgIDM0MHB4O1xuJGRycy1tb250aC1nYXA6ICAgICAgICAgMjRweDtcblxuJGRycy1maWVsZC13aWR0aDogICAgICAgMzE5cHg7XG4kZHJzLWZpZWxkLWhlaWdodDogICAgICA0OXB4O1xuJGRycy1maWVsZC1yYWRpdXM6ICAgICAgOXB4O1xuJGRycy1maWVsZC1nYXA6ICAgICAgICAgNHB4O1xuJGRycy1maWVsZC1wYWQteTogICAgICAgOHB4O1xuJGRycy1maWVsZC1wYWQteDogICAgICAgMTJweDtcbiRkcnMtZmllbGQtdmFsdWUtaW5rOiAgICMxZDFkMjk7XG4kZHJzLWZpZWxkLWxhYmVsLWluazogICAjNzQ3NDhhO1xuLy8gRGVlcGVyIHRoYW4gJHB1cnBsZS01MDA7IG9ubHkgdGhlIGZpZWxkIGJlaW5nIGVkaXRlZCB3ZWFycyBpdC5cbiRkcnMtZmllbGQtYWN0aXZlOiAgICAgICM1MzRhYjc7XG4kZHJzLWZpZWxkLWFjdGl2ZS1ib3JkZXI6IDEuNXB4O1xuJGRycy1kYXktc2l6ZTogICAgICAgICAgMzZweDtcbi8vIFZlcnRpY2FsIGluc2V0IG9mIHRoZSByYW5nZSBiYW5kIGluc2lkZSBpdHMgY2VsbC4gVHdvIGFkamFjZW50IHJvd3MgZWFjaFxuLy8gY29udHJpYnV0ZSBvbmUsIGdpdmluZyB0aGUgMnB4IG9mIHdoaXRlIHRoZSBkZXNpZ24gYXNrcyBmb3IgYmV0d2VlbiB3ZWVrcy5cbiRkcnMtYmFuZC1pbnNldDogICAgICAgIDFweDtcbiRkcnMtZGF5LXJhZGl1czogICAgICAgIDRweDtcbiRkcnMtbW9udGgtd2lkdGg6ICAgICAgICRkcnMtZGF5LXNpemUgKiA3O1xuJGRycy1zdGFjazogICAgICAgICAgICAgNzY4cHg7XG5cbiRkcnMtdHJpZ2dlci1zaGFkb3c6ICAgIDAgMXB4IDJweCAwIHJnYmEoMTAsIDEzLCAxOCwgLjA1KTtcbiRkcnMtcGFuZWwtc2hhZG93OiAgICAgIDAgMTJweCAxNnB4IC00cHggcmdiYSgxNiwgMjQsIDQwLCAuMDgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgMCA0cHggNnB4IC0ycHggcmdiYSgxNiwgMjQsIDQwLCAuMDMpO1xuXG4uZGF0ZS1yYW5nZS1zZWxlY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAmX190cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogJGRycy10cmlnZ2VyLWdhcDtcbiAgICAvLyBGaXhlZCBib3g6IHRoZSBsYWJlbCBzd2FwcyBiZXR3ZWVuIGEgcHJlc2V0IG5hbWUgYW5kIGEgZGF0ZSByYW5nZSwgYW5kXG4gICAgLy8gdGhlIGNoaXAgbXVzdCBub3QgcmVzaXplIHVuZGVyIGl0LiBObyBib3JkZXItYm94IHJlc2V0IGluIHRoaXMgYnVpbGQsXG4gICAgLy8gc28gdGhlIGJvcmRlciBhbmQgcGFkZGluZyBoYXZlIHRvIGJlIGZvbGRlZCBpbiBsb2NhbGx5LlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6ICRkcnMtdHJpZ2dlci13aWR0aDtcbiAgICBoZWlnaHQ6ICRkcnMtdHJpZ2dlci1oZWlnaHQ7XG4gICAgcGFkZGluZzogMCA4cHggMCAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogJGRycy10cmlnZ2VyLXNoYWRvdztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNDAwO1xuICAgIH1cblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RyaWdnZXItaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY29sb3I6ICM0ZjRmNGY7XG4gIH1cblxuICAmX190cmlnZ2VyLWxhYmVsIHtcbiAgICAvLyBUYWtlcyB3aGF0ZXZlciB0aGUgdHdvIGljb25zIGxlYXZlLCBhbmQgY2xpcHMgcmF0aGVyIHRoYW4gcHVzaGluZyB0aGVcbiAgICAvLyBjaGlwIHdpZGVyIHdoZW4gdGhlIHRleHQgaXMgYSBsb25nIHByZXNldCBuYW1lLlxuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgLy8gU2xpZ2h0IG5lZ2F0aXZlIHRyYWNraW5nLCBhcyBvbiB0aGUgYXBwJ3MgYnV0dG9ucy4gV29ydGggfjRweCBhY3Jvc3MgYVxuICAgIC8vIGZ1bGwgZGF0ZSByYW5nZSwgd2hpY2ggaXMgbW9zdCBvZiB0aGlzIGxhYmVsJ3MgaGVhZHJvb20gYXQgMTk4cHguXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0uMnB4O1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gICAgLy8gTnVkaXN0YSBzaXRzIGhpZ2ggaW4gaXRzIGJveDsgbnVkZ2UgdGhlIGxhYmVsIHRvIG9wdGljYWwgY2VudGVyLlxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICB9XG5cbiAgJl9fdHJpZ2dlci1jYXJldCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY29sb3I6ICM2ZDZkNmQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXM7XG4gIH1cblxuICAmX190cmlnZ2VyLmlzLW9wZW4gJl9fdHJpZ2dlci1jYXJldCB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxuXG4gICZfX3BhbmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogNjA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6ICRkcnMtcGFuZWwtc2hhZG93O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvKiAtLSBwcmVzZXQgcmFpbCAtLSAqL1xuXG4gICZfX3ByZXNldHMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAkZHJzLXJhaWwtd2lkdGg7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gIH1cblxuICAmX19wcmVzZXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gTGFiZWwgc2l0cyA1cHggZnVydGhlciBpbiB0aGFuIHRoZSBjaGVjayBtYXJrJ3MgZ3V0dGVyLlxuICAgIHBhZGRpbmc6IDEwcHggMTZweCAxMHB4IDIxcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICM0ZjRmNGY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcm93LWhvdmVyO1xuICAgIH1cblxuICAgIC8vIFNhbWUgd2VpZ2h0IGFzIHRoZSByZXN0OyB0aGUgY2hlY2sgbWFyayBhbmQgaW5rIGNvbG91ciBjYXJyeSB0aGUgc3RhdGUuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgY29sb3I6ICRncmF5LTkwMDtcbiAgICB9XG4gIH1cblxuICAmX19wcmVzZXQtY2hlY2sge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX3J1bGUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTIwMDtcbiAgfVxuXG4gIC8qIC0tIGNhbGVuZGFyIHNpZGUgLS0gKi9cblxuICAvKiBQYW5lbCBoZWlnaHQgaXMgZW1lcmdlbnQsIG5vdCBoYXJkLWNvZGVkOiAxNiArIDQ5IChmaWVsZHMpICsgMTYgKGdhcClcbiAgICAgKyAzNDAgKG1vbnRocykgKyAyMCA9IDQ0MS4gU3BhY2luZyBpcyBoZWxkIGF0IGNvbWZvcnRhYmxlIHZhbHVlcyBhbmQgdGhlXG4gICAgIGNhbGVuZGFyIGJsb2NrIGFic29yYnMgdGhlIGhlaWdodCB0YXJnZXQgdmlhICRkcnMtbW9udGhzLWhlaWdodC4gKi9cbiAgJl9fY2FsZW5kYXJzIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDIwcHg7XG4gIH1cblxuICAmX19maWVsZHMge1xuICAgIC8vIEFuY2hvcnMgdGhlIHNoYXJlZCBmaWVsZCBwaWNrZXIgYmVsb3cgd2hpY2hldmVyIGZpZWxkIGlzIG9wZW4uXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAvLyBTYW1lIHdpZHRoIGFzIHRoZSBjYWxlbmRhciBiZWxvdywgd2l0aCB0aGUgdHdvIDMxOXB4IGZpZWxkcyBwdXNoZWQgdG9cbiAgICAvLyBpdHMgZWRnZXMgc28gdGhlIHJvdyBsaW5lcyB1cCB3aXRoIHRoZSBncmlkLlxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogJGRycy1tb250aHMtd2lkdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gICZfX2ZpZWxkIHtcbiAgICAvLyBGaXhlZCBib3gsIHNvIHRoZSBib3JkZXIgYW5kIHBhZGRpbmcgaGF2ZSB0byBiZSBmb2xkZWQgaW4gLSB0aGlzIGJ1aWxkXG4gICAgLy8gaGFzIG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0LiBJdCBhbHNvIG1lYW5zIHRoZSAxLjVweCBhY3RpdmUgYm9yZGVyXG4gICAgLy8gZG9lcyBub3QgbnVkZ2UgdGhlIGxheW91dC5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6ICRkcnMtZmllbGQtZ2FwO1xuICAgIHdpZHRoOiAkZHJzLWZpZWxkLXdpZHRoO1xuICAgIGhlaWdodDogJGRycy1maWVsZC1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGRycy1maWVsZC1wYWQteSAkZHJzLWZpZWxkLXBhZC14O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGRycy1maWVsZC1yYWRpdXM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMTVzLCBib3gtc2hhZG93IC4xNXM7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTQwMDtcbiAgICB9XG5cbiAgICAvLyBIaW50OiB0aGlzIGlzIHdoZXJlIHRoZSBuZXh0IGNsaWNrIG9uIHRoZSB0d28tbW9udGggZ3JpZCBsYW5kcy5cbiAgICAmLmlzLXBlbmRpbmcge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG5cbiAgICAvLyBUaGUgZmllbGQgYWN0dWFsbHkgYmVpbmcgZWRpdGVkLlxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3JkZXI6ICRkcnMtZmllbGQtYWN0aXZlLWJvcmRlciBzb2xpZCAkZHJzLWZpZWxkLWFjdGl2ZTtcbiAgICB9XG4gIH1cblxuICAvKiAtLSBwZXItZmllbGQgZGF5IC8gbW9udGggLyB5ZWFyIHBpY2tlciAtLSAqL1xuXG4gICZfX2ZpZWxkLXBpY2tlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgNnB4KTtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gTWF0Y2hlcyB0aGUgZmllbGQgaXQgZHJvcHMgb3V0IG9mLlxuICAgIHdpZHRoOiAkZHJzLWZpZWxkLXdpZHRoO1xuICAgIHBhZGRpbmc6IDEycHggMTZweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogJGRycy1wYW5lbC1zaGFkb3c7XG5cbiAgICAvLyBUaGUgVE8gZmllbGQgc2l0cyBpbiB0aGUgcmlnaHQgaGFsZiBvZiB0aGUgcm93LlxuICAgICYuaXMtdG8ge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2ZpZWxkLXBpY2tlci1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIH1cblxuICAmX19maWVsZC1waWNrZXItc2VsZWN0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuXG4gICAgLy8gVGhlIHllYXIgaXMgYSBmaXhlZCBmb3VyIGRpZ2l0czsgZ2l2ZSB0aGUgbW9udGggbmFtZSB0aGUgc2xhY2suXG4gICAgJi5pcy15ZWFyIHtcbiAgICAgIGZsZXg6IDAgMCA3NnB4O1xuICAgIH1cbiAgfVxuXG4gIC8qIFRoZSB0d28gbGluZXMgcGx1cyB0aGUgNHB4IGdhcCBoYXZlIHRvIGxhbmQgZXhhY3RseSBvbiB0aGUgZmllbGQnc1xuICAgICBjb250ZW50IGJveCAtIDQ5cHggbGVzcyBpdHMgYm9yZGVycyBhbmQgOHB4IHZlcnRpY2FsIHBhZGRpbmcgaXMgMzFweCAtXG4gICAgIHNvIHRoZXNlIGxpbmUtaGVpZ2h0cyBhcmUgbG9hZC1iZWFyaW5nLCBub3QgZGVjb3JhdGlvbi4gKi9cbiAgJl9fZmllbGQtbGFiZWwge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkZHJzLWZpZWxkLWxhYmVsLWluaztcbiAgfVxuXG4gICZfX2ZpZWxkLXZhbHVlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICRkcnMtZmllbGQtdmFsdWUtaW5rO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gICZfX21vbnRocyB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogJGRycy1tb250aC1nYXA7XG4gICAgd2lkdGg6ICRkcnMtbW9udGhzLXdpZHRoO1xuICAgIGhlaWdodDogJGRycy1tb250aHMtaGVpZ2h0O1xuICB9XG5cbiAgJl9fbW9udGgge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gICZfX21vbnRoLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIH1cblxuICAmX19tb250aC1uYW1lIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgLy8gU3RheXMgdW5kZXIgdGhlIDI4cHggbmF2IGJ1dHRvbiwgc28gdGhlIGhlYWRlciBoZWlnaHQgLSBhbmQgd2l0aCBpdCB0aGVcbiAgICAvLyBzcGFjZSB0aGUgd2VlayByb3dzIGRpdmlkZSAtIGRvZXMgbm90IG1vdmUuXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgY29sb3I6ICRncmF5LTkwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fbmF2IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogIzZkNmQ2ZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRibGFjay0xMDA7XG4gICAgfVxuXG4gICAgLy8gS2VlcHMgdGhlIG1vbnRoIG5hbWUgY2VudHJlZCBvbiB0aGUgc2lkZSB0aGF0IGhhcyBubyBjaGV2cm9uLlxuICAgICYuaXMtcGxhY2Vob2xkZXIge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPbmx5IGVhcm5zIGl0cyBwbGFjZSBvbmNlIHRoZSBzZWNvbmQgbW9udGggaXMgaGlkZGVuLlxuICAgICYuaXMtbmFycm93LW9ubHkge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gICZfX2RvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gICZfX2Rvdy1jZWxsIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fd2VlayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gICZfX2RheSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6ICRkcnMtZGF5LXNpemU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5pcy1vdXRzaWRlIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cblxuICAmX19kYXktbnVtYmVyIHtcbiAgICAvLyBTaXRzIGFib3ZlIHRoZSByYW5nZSBiYW5kIGRyYXduIG9uIHRoZSBjZWxsLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogJGRycy1kYXktc2l6ZSAtICgkZHJzLWJhbmQtaW5zZXQgKiAyKTtcbiAgICBoZWlnaHQ6ICRkcnMtZGF5LXNpemUgLSAoJGRycy1iYW5kLWluc2V0ICogMik7XG4gICAgYm9yZGVyLXJhZGl1czogJGRycy1kYXktcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gIH1cblxuICAmX19kYXkuaXMtdG9kYXkgJl9fZGF5LW51bWJlciB7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICBjb2xvcjogJG11dGVkO1xuICB9XG5cbiAgJl9fZGF5LmlzLW91dHNpZGUgJl9fZGF5LW51bWJlciB7XG4gICAgY29sb3I6ICRibGFjay0zMDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuXG4gICZfX2RheTpub3QoLmlzLW91dHNpZGUpOmhvdmVyICZfX2RheS1udW1iZXIge1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICB9XG5cbiAgLyogVGhlIGluLXJhbmdlIGJhbmQgaXMgYSBwc2V1ZG8tZWxlbWVudCByYXRoZXIgdGhhbiBhIGJhY2tncm91bmQgb24gdGhlXG4gICAgIGNlbGwuIFR3byByZWFzb25zOiBpbnNldCB2ZXJ0aWNhbGx5IGl0IGxlYXZlcyAxcHggYWJvdmUgYW5kIGJlbG93LCBzb1xuICAgICBjb25zZWN1dGl2ZSByb3dzIGtlZXAgMnB4IG9mIHdoaXRlIGJldHdlZW4gdGhlbTsgYW5kIGl0IHNpdHMgYmVoaW5kIHRoZVxuICAgICBkYXkgbnVtYmVyLCBzbyBhbiBlbmRwb2ludCdzIHNvbGlkIHNxdWFyZSBpcyBub3QgcmluZ2VkIGJ5IHRpbnQuICovXG4gICZfX2RheS5pcy1pbi1yYW5nZTo6YmVmb3JlLFxuICAmX19kYXkuaXMtc3RhcnQ6OmJlZm9yZSxcbiAgJl9fZGF5LmlzLWVuZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkZHJzLWJhbmQtaW5zZXQ7XG4gICAgYm90dG9tOiAkZHJzLWJhbmQtaW5zZXQ7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgfVxuXG4gIC8qIEFuIGVuZHBvaW50IG9ubHkgbmVlZHMgdG8gYnJpZGdlIHRoZSBnYXAgdG8gaXRzIG5laWdoYm91ci4gU3RhcnRpbmcgdGhlXG4gICAgIGJhbmQgYXQgdGhlIGNlbGwncyBtaWRwb2ludCBrZWVwcyBpdCBlbnRpcmVseSB1bmRlciB0aGUgc29saWQgc3F1YXJlXG4gICAgIGV4Y2VwdCBmb3IgdGhhdCBnYXAsIHNvIG5vIHRpbnQgc2hvd3MgdG8gdGhlIG91dHNpZGUgb2YgaXQuICovXG4gICZfX2RheS5pcy1zdGFydDo6YmVmb3JlIHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cblxuICAmX19kYXkuaXMtZW5kOjpiZWZvcmUge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cblxuICAvLyBBIG9uZS1kYXkgcmFuZ2UgYnJpZGdlcyB0byBub3RoaW5nLlxuICAmX19kYXkuaXMtc3RhcnQuaXMtZW5kOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKiBUd28tbW9udGggZ3JpZCBvbmx5LiBJdHMgYmxvY2sgaGFzIGEgZml4ZWQgaGVpZ2h0LCBzbyB0aGUgc2l4IHdlZWsgcm93c1xuICAgICBjYW4gc2hhcmUgd2hhdGV2ZXIgdGhlIGhlYWRlciBhbmQgZGF5LW9mLXdlZWsgcm93IGxlYXZlLiBUaGUgZmllbGQgcGlja2VyXG4gICAgIGtlZXBzIHRoZSBmaXhlZCAzNnB4IGNlbGxzIGFib3ZlIC0gaXQgaGFzIG5vIGRlZmluaXRlIGhlaWdodCwgc28gYVxuICAgICBwZXJjZW50YWdlIHRoZXJlIHdvdWxkIHJlc29sdmUgdG8gYXV0by4gKi9cbiAgJl9fbW9udGhzICZfX3dlZWsge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cblxuICAmX19tb250aHMgJl9fZGF5IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAmX19tb250aHMgJl9fZGF5LW51bWJlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gU3RpbGwgZXhhY3RseSAycHggc2hvcnRlciB0aGFuIGl0cyByb3csIHNvIHRoZSB3aGl0ZSBnYXAgYmV0d2VlbiB3ZWVrc1xuICAgIC8vIGFuZCB0aGUgZml0IGFnYWluc3QgdGhlIHJhbmdlIGJhbmQgYm90aCBzdXJ2aXZlIHRoZSB0YWxsZXIgcm93cy5cbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7JGRycy1iYW5kLWluc2V0ICogMn0pO1xuICB9XG5cbiAgJl9fZGF5LmlzLXN0YXJ0ICZfX2RheS1udW1iZXIsXG4gICZfX2RheS5pcy1lbmQgJl9fZGF5LW51bWJlcixcbiAgJl9fZGF5LmlzLXN0YXJ0OmhvdmVyICZfX2RheS1udW1iZXIsXG4gICZfX2RheS5pcy1lbmQ6aG92ZXIgJl9fZGF5LW51bWJlciB7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cblxuICAvKiBFYWNoIGVuZHBvaW50IGtlZXBzIGl0cyByb3VuZGluZyBvbmx5IG9uIHRoZSBvdXRzaWRlIG9mIHRoZSByYW5nZTsgdGhlXG4gICAgIGVkZ2UgZmFjaW5nIHRoZSBiYW5kIGlzIHNxdWFyZSwgc28gdGhlIHNvbGlkIHNxdWFyZSBhbmQgdGhlIHRpbnQgbWVldFxuICAgICBmbHVzaCBpbnN0ZWFkIG9mIGxlYXZpbmcgYSBub3RjaC4gKi9cbiAgLyogVGhlIHNxdWFyZSBlZGdlIGFsc28gcHVsbHMgaW4gYnkgMXB4LCBzbyBhIHNsaXZlciBvZiB0aGUgYmFuZCBzaG93c1xuICAgICBiZXR3ZWVuIHRoZSBzb2xpZCBlbmRwb2ludCBhbmQgdGhlIHJhbmdlIGl0IG9wZW5zLiBUaGUgbWFyZ2luIGVhdHMgaW50b1xuICAgICB0aGUgbnVtYmVyJ3Mgd2lkdGggcmF0aGVyIHRoYW4gbW92aW5nIGl0IC0gaXQgaXMgYSBmbGV4IGl0ZW0gc2l6ZWQgdG9cbiAgICAgMTAwJSBvZiB0aGUgY2VsbCwgc28gaXQgc2hyaW5rcyB0byBtYWtlIHJvb20uICovXG4gICZfX2RheS5pcy1zdGFydCAmX19kYXktbnVtYmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZHJzLWRheS1yYWRpdXMgMCAwICRkcnMtZGF5LXJhZGl1cztcbiAgICBtYXJnaW4tcmlnaHQ6ICRkcnMtYmFuZC1pbnNldDtcbiAgfVxuXG4gICZfX2RheS5pcy1lbmQgJl9fZGF5LW51bWJlciB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAkZHJzLWRheS1yYWRpdXMgJGRycy1kYXktcmFkaXVzIDA7XG4gICAgbWFyZ2luLWxlZnQ6ICRkcnMtYmFuZC1pbnNldDtcbiAgfVxuXG4gIC8vIEEgb25lLWRheSByYW5nZSBmYWNlcyBvdXR3YXJkIG9uIGJvdGggc2lkZXMsIHNvIG5vdGhpbmcgaXMgcHVsbGVkIGluLlxuICAmX19kYXkuaXMtc3RhcnQuaXMtZW5kICZfX2RheS1udW1iZXIge1xuICAgIGJvcmRlci1yYWRpdXM6ICRkcnMtZGF5LXJhZGl1cztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvKiAtLSBuYXJyb3cgLS0gKi9cblxuICBAbWVkaWEgKG1heC13aWR0aDogJGRycy1zdGFjaykge1xuICAgICZfX3BhbmVsIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgICB9XG5cbiAgICAmX19wcmVzZXRzIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgIGdhcDogNHB4O1xuICAgIH1cblxuICAgICZfX3ByZXNldCB7XG4gICAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fcnVsZSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogMXB4O1xuICAgIH1cblxuICAgIC8vIFR3byBtb250aHMgZG8gbm90IGZpdDsgc2hvdyB0aGUgbGVmdCBvbmUgb25seSwgYW5kIGxldCBpdCB0YWtlIG92ZXJcbiAgICAvLyB0aGUgZm9yd2FyZCBjaGV2cm9uIHRoZSByaWdodC1oYW5kIG1vbnRoIHdhcyBjYXJyeWluZy5cbiAgICAmX19tb250aCArICZfX21vbnRoIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fbmF2LmlzLW5hcnJvdy1vbmx5IHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZpeGVkIDY4MHgzNzYgYmxvY2sgaXMgYSB3aWRlLXZpZXdwb3J0IHNoYXBlOyBkcm9wIGJhY2sgdG8gY29udGVudFxuICAgIC8vIHNpemluZyBoZXJlLiBUaGF0IGFsc28gbWVhbnMgdGhlIHBlcmNlbnRhZ2UgZGF5IGhlaWdodHMgbm8gbG9uZ2VyIGhhdmVcbiAgICAvLyBhIGRlZmluaXRlIHBhcmVudCwgc28gcmVzdG9yZSB0aGUgZml4ZWQgY2VsbCBzaXplcyB3aXRoIHRoZW0uXG4gICAgJl9fZmllbGRzIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmX19maWVsZCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19maWVsZC1waWNrZXIge1xuICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNDhweCk7XG4gICAgfVxuXG4gICAgJl9fbW9udGhzIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fbW9udGgge1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogJGRycy1tb250aC13aWR0aDtcbiAgICB9XG5cbiAgICAmX19tb250aHMgJl9fZGF5IHtcbiAgICAgIGhlaWdodDogJGRycy1kYXktc2l6ZTtcbiAgICB9XG5cbiAgICAmX19tb250aHMgJl9fZGF5LW51bWJlciB7XG4gICAgICBoZWlnaHQ6ICRkcnMtZGF5LXNpemUgLSAoJGRycy1iYW5kLWluc2V0ICogMik7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5wYWdlLWhlYWRlci1iYWNrLW5hdiB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgbWluLWhlaWdodDogNDBweDtcblxuICBsYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBpLmljb24ge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG4gIH1cbn1cblxuLnRlc3QtYXJjaGl2ZXMtb3B0aW9ucyB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAzMHB4IDAgNXB4O1xuICByb3ctZ2FwOiAxMHB4O1xuXG4gID4gZGl2ICsgZGl2IHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxuXG4gIC5kYXRlLXJhbmdlcyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICBnYXA6IDIwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4uYXJjaGl2ZS1jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBtYXJnaW46IDMwcHggMDtcblxuICA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG4gICAgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgaS5pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAuYXJjaGl2ZS1uYW1lLFxuICAgIC5hcmNoaXZlLWluZm8sXG4gICAgLmFyY2hpdmUtYWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgfVxuXG4gICAgLmFyY2hpdmUtbmFtZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICBzcGFuIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hcmNoaXZlLWluZm8sXG4gICAgLmFyY2hpdmUtYWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgfVxuXG4gICAgLmFyY2hpdmUtaW5mbyB7XG4gICAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDU2OHB4KSB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFyY2hpdmUtYWN0aW9uIHtcbiAgICAgIG1pbi13aWR0aDogNjBweDtcbiAgICB9XG5cbiAgICAmLmhlYWRlci1yb3cge1xuICAgICAgbWluLWhlaWdodDogNDBweDtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLy92ZXJzaW9uIDIgb2YgaGVhZGVyIChzZWUgbmV3LWhlYWRlci5odG1sIGZvciB0ZW1wbGF0ZSAoc3dpdGNoZWQgdjIpKVxuLmhlYWRlci1jb250ZW50IHtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoaW5pdGlhbCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2MHB4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblxuICAuaGVhZGVyLWxvZ28tY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLXByYWMtYnVyZ2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMyZTJlMmU7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1wcmFjLW1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDYwcHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiAjMWMxYzFjO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgei1pbmRleDogMTAwMDtcblxuICAgIC5oZWFkZXItcHJhYy1tZW51X19pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWluLWhlaWdodDogNjBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDYwcHg7XG4gICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMztcbiAgICAgIGNvbG9yOiAjYTBhNGE4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItcHJhYy11c2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cbiAgLmhlYWRlci1sb2dvICB7XG4gICAgbWFyZ2luOiAxMHB4IDM1cHg7XG4gIFx0aW1nICB7XG4gIFx0XHRtYXgtd2lkdGg6IDE4MHB4O1xuICAgICAgbWF4LWhlaWdodDogNzBweDtcbiAgXHR9XG4gIH1cbiAgLnJlc3AtY2VudGVyIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gIC51c2VyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5oZWFkZXItdGVhbS1uYW1lIHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNDOEM4Qzk7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgIH1cbiAgICBoMyB7XG4gICAgICBwYWRkaW5nOiAwcHggMThweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgY29sb3I6ICRkYXJrX2JsdWU7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgICBcbiAgfVxuICAuaGVhZGVyLXRlYW0tbmFtZS1yZXNwIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgID4gaDMge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLXRlYW0tbmFtZS1saW5rIHtcbiAgICBAZXh0ZW5kIC5oZWFkZXItdGVhbS1uYW1lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnRlYW0tc3dpdGNoZXIgIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDgwJTtcbiAgICAgIGxlZnQ6IDkwJTtcbiAgICAgIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICB9XG4gIH1cbiAgLnRlYW0tb3B0aW9ucyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAyJTtcbiAgICBsZWZ0OiAtMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmYxZjE7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDY4LCA2NywgNzYsIDAuMjUpO1xuICAgIG1pbi13aWR0aDogMTMwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMztcbiAgICBcbiAgICA+ZGl2IHtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4IDVweCAxNHB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWRmZGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLndoaXRlLWZpZWxkIHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG5cbiAgICBpLmljb24tc2hvcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDYwcHgpO1xuICAgICAgbWFyZ2luOiAwcHg7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBpIHtcbiAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgbWFyZ2luOiAtMXB4IDhweCAwcHggMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICRkYXJrX2JsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6ICRkYXJrX2JsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQtYXRobGV0ZSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcblxuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNwYW4gKyBzcGFuIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+IGRpdiArIGRpdiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBidXR0b24ge1xuICAgICAgJi5zaWdub3V0IHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzVweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTAwcHgpO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc2hvcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcHg7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMCA3cHggMCAxNXB4O1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW46IDAgMjVweCAwIDdweDtcbiAgICAgIH1cblxuICAgICAgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgICAgICBpLmZhIHtcbiAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmhlYWRlci1jb250ZW50LS1wcmFjIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLmhlYWRlci10ZWFtLW5hbWUsXG4gICAgLmhlYWRlci10ZWFtLW5hbWUtbGluayB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gRGFyayBhcHAgaGVhZGVyIHNoYXJlZCBieSBhdGhsZXRlIGFuZCBwcmFjdGl0aW9uZXIgKFZpc29yIGxvZ28gKyBwcm9maWxlKS5cbi5oZWFkZXItY29udGVudC5oZWFkZXItY29udGVudC0tYXRobGV0ZSxcbi5oZWFkZXItY29udGVudC5oZWFkZXItY29udGVudC0tcHJhYyB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDYwcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTJlO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC5hdGhsZXRlLXByb2ZpbGUtc3dpdGNoIHtcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgIG1heC1oZWlnaHQ6IDYwcHg7XG4gIH1cblxuICAuYXRobGV0ZS1oZWFkZXItbG9nbyB7XG4gICAgbWFyZ2luOiAwIDI4cHg7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAxNDVweDtcbiAgICAgIG1heC1oZWlnaHQ6IDI5cHg7XG4gICAgfVxuICB9XG5cbiAgLnVzZXJfX2xvZ28ge1xuICAgIGhlaWdodDogNDRweDtcbiAgICB3aWR0aDogNDRweDtcbiAgfVxuXG4gIC51c2VyX19uYW1lIHtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC51c2VyX19pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgLnVzZXJfX25hbWUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLnVzZXJfX3JvbGUge1xuICAgIGNvbG9yOiAjRTFFMUU2O1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi8vIE1lbWJlciBtb2JpbGUgYmFyOiBidXJnZXIgKGZpeGVkLCA2MHB4IGxlZnQgY2VsbCkgfCBWaXNvciBtYXJrIHwgYXZhdGFyLlxuLy8gX3Bhc3Nwb3J0LnNjc3MgaGlkZXMgLnBhc3Nwb3J0IHdob2xlc2FsZSB1bmRlciA3NjhweCwgc28gcmUtc2hvdyBpdCBoZXJlIGZvclxuLy8gdGhlIG1lbWJlciBoZWFkZXIgb25seSBhbmQgc2hyaW5rIHRoZSBtYXJrIHRvIGZpdCB0aGUgNjBweCBiYXIuXG4uaGVhZGVyLWNvbnRlbnQuaGVhZGVyLWNvbnRlbnQtLWF0aGxldGUge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAvLyBDZW50cmVkIGFnYWluc3QgdGhlIGJhciBpdHNlbGYsIG5vdCBzYXQgYmV0d2VlbiBpdHMgbmVpZ2hib3VyczogdGFrZW5cbiAgICAvLyBvdXQgb2YgZmxvdyBzbyB0aGUgYXZhdGFyIG9uIHRoZSByaWdodCBjYW5ub3QgcHVsbCB0aGUgbWFyayBvZmYgY2VudHJlLlxuICAgIC8vIC5oZWFkZXItY29udGVudCBpcyBwb3NpdGlvbjogcmVsYXRpdmUsIGFuZCAuYXRobGV0ZS1wcm9maWxlLXN3aXRjaCBpc1xuICAgIC8vIGxvY2tlZCB0byB0aGUgYmFyJ3Mgb3duIDYwcHggYWJvdmUsIHNvIHRoZSBvZmZzZXRzIGxhbmQgZXhhY3RseS5cbiAgICAucGFzc3BvcnQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC5hdGhsZXRlLWhlYWRlci1sb2dvIHtcbiAgICAgIG1hcmdpbjogMCAxMnB4O1xuXG4gICAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDExMHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAyNHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBtZW1iZXIgbmFtZSB3b3VsZCBzcXVlZXplIHRoZSBtYXJrIGFnYWluc3QgdGhlIGF2YXRhciBhdCBwaG9uZVxuICAgIC8vIHdpZHRoczsgdGhlIGF2YXRhciBzdGF5cyBhcyB0aGUgb25seSBwcm9maWxlIGFmZm9yZGFuY2UsIG1hdGNoaW5nIHRoZVxuICAgIC8vIHByYWN0aXRpb25lciBiYXIgYWJvdmUuXG4gICAgLnVzZXJfX25hbWUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gUHJhY3RpdGlvbmVyIHRlYW0gc3dpdGNoZXIgYm94IChGaWdtYTogYm9yZGVyZWQgZHJvcGRvd24gbmV4dCB0byBsb2dvKS5cbi5oZWFkZXItY29udGVudC5oZWFkZXItY29udGVudC0tcHJhYyB7XG4gIC5hdGhsZXRlLWhlYWRlci1sb2dvIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIH1cblxuICAuaGVhZGVyLXRlYW0tc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuXG4gICAgJl9fYnRuIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAxODhweDtcbiAgICAgIGhlaWdodDogNDRweDtcbiAgICAgIHBhZGRpbmc6IDhweCA4cHggOHB4IDEycHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNkM2QzdDO1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgYmFja2dyb3VuZDogIzM1MzU0QjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAmX19jYXJldCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cblxuICAgIC8vIEZpZ21hOiBsaWdodCBwYW5lbCBmbG9hdGluZyBvZmYgdGhlIGRhcmsgaGVhZGVyLCByb3dzIGdyb3VwZWQgdW5kZXIgYVxuICAgIC8vIFwiVGVhbXNcIiBjYXB0aW9uLCB3aXRoIGEgY2hlY2sgYWdhaW5zdCB0aGUgdGVhbSBjdXJyZW50bHkgaW4gY29udGV4dC5cbiAgICAmX19vcHRpb25zIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYygxMDAlICsgNnB4KTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgLy8gRmlnbWEncyAzMjBweCwgYnV0IGFzIGEgZmxvb3IgcmF0aGVyIHRoYW4gYSBmaXhlZCB3aWR0aDogYGF1dG9gIHdvdWxkXG4gICAgICAvLyBzaHJpbmstdG8tZml0IHRoZSBwb3NpdGlvbmVkIGFuY2VzdG9yICh0aGUgMTg4cHggYnV0dG9uKSwgc28gbmFtZXNcbiAgICAgIC8vIGxvbmdlciB0aGFuIHRoZSBwYW5lbCBnb3QgY2xpcHBlZC4gYG1heC1jb250ZW50YCBpZ25vcmVzIGl0IGFuZCBncm93c1xuICAgICAgLy8gcmlnaHR3YXJkcyBmcm9tIHRoZSBzcGVjJ2Qgd2lkdGggaW5zdGVhZC5cbiAgICAgIG1pbi13aWR0aDogMzIwcHg7XG4gICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgICAgIC8vIDNweCB0b3AvYm90dG9tIHBlciBGaWdtYTsgNHB4IGVhY2ggc2lkZSBpcyB0aGUgMzIwIC0gMzEyIHJvdyBpbnNldC5cbiAgICAgIHBhZGRpbmc6IDNweCA0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgLy8gRmlnbWEgbGlzdHMgdGhlICNFQUVDRjAgc3Ryb2tlIG9uIHRoZSBib3R0b20gZWRnZSBhbG9uZTsgdGhlIGNhcmQgcmVhZHNcbiAgICAgIC8vIGFzIGEgY2xvc2VkIHJlY3RhbmdsZSBpbiB0aGUgZnJhbWUsIHNvIGl0IHJ1bnMgdGhlIHdob2xlIHdheSByb3VuZC5cbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFQUVDRjA7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBib3gtc2hhZG93OiAwIDEycHggMTZweCAtNHB4IHJnYmEoMTYsIDI0LCA0MCwgMC4wOCksIDAgNHB4IDZweCAtMnB4IHJnYmEoMTYsIDI0LCA0MCwgMC4wMyk7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIC8vIEFuIGFkbWluJ3MgbGlzdCBzcGFucyBldmVyeSB0ZWFtIHRoZXkgYWRtaW5pc3Rlciwgc28gY2FwIHRoZSBkcm9wLWRvd25cbiAgICAgIC8vIGFuZCBzY3JvbGwgcmF0aGVyIHRoYW4gcnVubmluZyBpdCBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgdmlld3BvcnQuXG4gICAgICBtYXgtaGVpZ2h0OiA2MHZoO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgY29sb3I6ICM0RjRGNEY7XG4gICAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJl9fb3B0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgLy8gMTBweCBwYWRkaW5nIGFyb3VuZCBhIDIwcHggbGluZSBpcyBGaWdtYSdzIDQwcHggYm94IGV4YWN0bHk7IGBtaW4tYFxuICAgICAgLy8gc28gYSByb3cgY2FycnlpbmcgYW4gb3JnYW5pemF0aW9uIHN1Yi1saW5lIGdyb3dzIGluc3RlYWQgb2YgY2xpcHBpbmcuXG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgICAgIH1cblxuICAgICAgLy8gUHVycGxlIHdhc2ggc3RheXMgcHV0IG9uIGhvdmVyOiB0aGUgcm93IGlzIGFscmVhZHkgdGhlIGFjdGl2ZSBvbmUuXG4gICAgICAmLS1zZWxlY3RlZCxcbiAgICAgICYtLXNlbGVjdGVkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZWRmYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaWdtYSdzIDhweCBnYXAsIGJldHdlZW4gcm93cyBvbmx5OiB0aGUgY2FwdGlvbiBzaXRzIHRpZ2h0IHRvIHRoZSBmaXJzdC5cbiAgICAmX19vcHRpb24gKyAuaGVhZGVyLXRlYW0tc3dpdGNoZXJfX29wdGlvbiB7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgfVxuXG4gICAgJl9fb3B0aW9uX190ZXh0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC8vIEJvdGggbGluZXMgc3RpbGwgZWxsaXBzaXplLCBmb3IgdGhlIGNhc2Ugd2hlcmUgbWF4LXdpZHRoIGNsYW1wcyB0aGUgcGFuZWwuXG4gICAgJl9fb3B0aW9uX19uYW1lIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAvLyBUZWFtIG5hbWVzIHJlcGVhdCBhY3Jvc3Mgb3JnYW5pemF0aW9ucywgc28gcXVhbGlmeSB0aGVtIHdoZXJlIHdlIGtub3cgaXQuXG4gICAgJl9fb3B0aW9uX19vcmcge1xuICAgICAgY29sb3I6ICM2ZDZkNmQ7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgJl9fb3B0aW9uX19jaGVjayB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBjb2xvcjogIzk3NjhlYjtcbiAgICB9XG5cbiAgICAmX19vcHRpb24tLXNlbGVjdGVkIC5oZWFkZXItdGVhbS1zd2l0Y2hlcl9fb3B0aW9uX19jaGVjayB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLS1zd2l0Y2hhYmxlIC5oZWFkZXItdGVhbS1zd2l0Y2hlcl9fYnRuIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBSZXBvcnRzIC8gRGFzaGJvYXJkIC8gQWRtaW4gZW50cnkgcG9pbnRzIGZvciB0aGUgcGFnZXMgdGhhdCByZW5kZXIgd2l0aG91dFxuICAvLyB0aGUgc2lkZWJhcjsgc2l0cyBpbW1lZGlhdGVseSBsZWZ0IG9mIHRoZSBwcmFjdGl0aW9uZXIgaWRlbnRpdHkgYmxvY2suXG4gIC5oZWFkZXItbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gcHVzaCB0aGUgbmF2IChhbmQgdGhlIGlkZW50aXR5IGJsb2NrIGFmdGVyIGl0KSB0byB0aGUgcmlnaHQgZWRnZVxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBnYXA6IDJweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLW5hdl9fYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gbmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCkgfVxuICAgIG1pbi13aWR0aDogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgfVxuXG4gICAgLy8gVGlnaHQgcGhvbmUgd2lkdGhzIGtlZXAgdGhlIGljb25zIG9ubHk7IHRoZSBsYWJlbHMgd291bGQgcHVzaCB0aGVcbiAgICAvLyBpZGVudGl0eSBibG9jayBvZmYgdGhlIGJhci5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGdhcDogMDtcbiAgICAgIHBhZGRpbmc6IDAgOHB4O1xuXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItbmF2X19pY29uIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBUaGUgbmF2IGFscmVhZHkgY2FycmllcyB0aGUgYXV0byBtYXJnaW4gaW4gdGhhdCBjYXNlLlxuICAuaGVhZGVyLW5hdiArIC51c2VyIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIE9uIG1vYmlsZSB0aGUgYmFyIGlzIHRvbyB0aWdodCBmb3IgdGhlIHR3by1saW5lIGlkZW50aXR5IGJsb2NrLCBzbyBkcm9wIHRoZVxuICAvLyBwcmFjdGl0aW9uZXIgbmFtZSArIHRpdGxlIGFuZCBsZWF2ZSB0aGUgYXZhdGFyIGFzIHRoZSBvbmx5IHByb2ZpbGUgYWZmb3JkYW5jZS5cbiAgLnVzZXJfX2luZm8ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIHByb2ZpbGUgdmlldyB3cmFwcyB0aGUgaGVhZGVyIGluY2x1ZGUgaW4gYW4gZXh0cmEgLmhlYWRlci1jb250ZW50XG4vLyBlbGVtZW50IChkZWZhdWx0IDgwcHggKyBib3R0b20gYm9yZGVyKS4gQ29sbGFwc2UgdGhhdCB3cmFwcGVyIHRvIHRoZSBzYW1lXG4vLyA2MHB4IHNvIG5vIHdoaXRlIHN0cmlwIHNob3dzIGJlbmVhdGggdGhlIGRhcmsgaGVhZGVyLlxuLmhlYWRlci1jb250ZW50OmhhcyguaGVhZGVyLWNvbnRlbnQtLWF0aGxldGUpLFxuLmhlYWRlci1jb250ZW50OmhhcyguaGVhZGVyLWNvbnRlbnQtLXByYWMpIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi8vIHJlc3BvbnNpdmUgdHdlYWtzLCBzaG91bGQganVzdCBiZSBpbXBsZW1lbnRlZCB3aXRoIHRoZSByZXN0XG5AaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAuaGVhZGVyLWNvbnRlbnQtdjIge1xuICAgIC53aGl0ZS1maWVsZCAge1xuICAgICAgICA+IGRpdiA+IGRpdiAge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgKyBkaXYgIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkgIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGkuaWNvbi1zaG9wICB7XG4gICAgICAgICAgICBtYXJnaW46IDAgNXB4IDAgMDtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4kZ3V0dGVyLXdpZHRoOiAxNXB4O1xuLy8gJGNvbC1nYXA6IDMwcHg7XG4kY29sLWdhcDogMTVweDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGFsbCBzaXplcyByZXNwb25zaXZlbmVzcyBhZGp1c3RtZW50c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLndoaXRlYm9hcmQgIHtcbiAgICBtaW4td2lkdGg6IDA7XG59XG51bC5jYXRhbG9nX25hdiAge1xuICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICBsaSA+IHNwYW4gIHtcbiAgICAgICAgcGFkZGluZzogMTFweCAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cbn1cbnVsLmNhdGFsb2dfbmF2IGxpID4gdWwgbGkgPiB1bCBsaSAge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgQGluY2x1ZGUgeXBhZCg2cHgpO1xuICAgIHBhZGRpbmctbGVmdDogNTBweDsgLy8gdGhpcyB3YXksIHdoZW4gaXQgd3JhcHMsIGl0IGRvZXNuJ3QgbG9vayBzdHJhbmdlXG59XG5cbi5jYXRhbG9nLXNlbGVjdGVkIC50aXRsZS1jb250YWluZXIgLnJldHVybi1saW5rICB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBhdGhsZXRlIGdyaWQgdW5pdmVyc2FsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uYXRobGV0ZS1pbmZvLWJveCAge1xuICAgIC5iaW8taGVhZGVyICB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgLmF0aGxldGUtbnVtYmVyICB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSByZXNwb25kKHNtKSAge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5iaW8tYm9keSAge1xuICAgICAgICAuYXRobGV0ZS1wcm9maWxlICB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICAgICAgLnByb2ZpbGUtcGljICB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5hdGhsZXRlLXN0YXRzICB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4KDIpO1xuICAgICAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgICAgICArIGRpdiAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhbnZhcyAge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGFsbCBzaXplcyA+IGF0aGxldGUgbGlzdCB2aWV3ID4gbG9ja2VkL3dyYXBwZWQgYXRobGV0ZSBudW1iZXIuLi5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5hdGhsZXRlLWxpc3Qtdmlldy52aWV3LWxheW91dCAge1xuICAgIC5hdGhsZXRlLW51bWJlciAge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDUzcHgpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgfVxuICAgIC5hdGhsZXRlLW5hbWUgIHtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4IDAgNXB4O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWxsIHNpemVzID4gYXRobGV0ZSBwcm9maWxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4ucHJvZmlsZS1zdW1tYXJ5ICB7XG4gICAgLnRvZGF5LXByb2dyYW0sXG4gICAgLnRvZGF5LW5vdGljZSAge1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMTBweCA2cHg7XG4gICAgfVxufVxuLmNvbHVtbi1jb250YWluZXIucHJvZmlsZS1zY29yZSArIGRpdiB7XG4gICAgQGluY2x1ZGUgcmVzcG9uZChsZykgIHtcbiAgICAgICAgd2lkdGg6IDM4MHB4O1xuICAgIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdW5pdmVyc2FsIGJyZWFrcG9pbnQgZHJvcGRvd25cbi8vIG9uY2UgYnJvd3NlciB3aWR0aCBnb2VzIGJlbG93IDEwNTQgKHNlZSBtaXhpbiByZXNwb25kKHNtKSlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgYm9keSAgIHtcblxuIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAvLyBzZWN0aW9uID4gdW5pdmVyc2FsXG4gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gLnZpZXctY29udGFpbmVyICB7XG4gICAgd2lkdGg6ICRjb21wcmVzc2VkQ29udGVudFdpZHRoO1xuICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIEBpbmNsdWRlIHhwYWQoJGd1dHRlci13aWR0aCk7XG4gICAgLnZpZXctY29udGFpbmVyICB7XG4gICAgICAgIEBpbmNsdWRlIHhwYWQoMCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuLndlZWstd3JhcHBlciAud2Vlay1kYXktY29sdW1uICB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLmhlYWRlci1jb250ZW50IC53aGl0ZS1maWVsZCA+IGRpdiAge1xuICAgIG1hcmdpbjogMHB4IDIwcHg7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IHByb2ZpbGUgcGFnZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLnByb2ZpbGUtZGV0YWlsICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgLnByb2ZpbGUtcGljICB7XG4gICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLWhlaWdodDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMjAwIC8gMTc1O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyAge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnByb2ZpbGUtYWN0aW9uICB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLnByb2ZpbGUtc3VtbWFyeSAge1xuICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICBAaW5jbHVkZSBmbGV4KDQpO1xuICAgIHBhZGRpbmctbGVmdDogJGNvbC1nYXA7XG4gICAgPiAucm93LWNvbnRhaW5lci5kaXZpZGVkICB7XG4gICAgICAgID4gZGl2ICB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICAgICAgKyBkaXYgIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2wtZ2FwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5zY29yZS1jb250YWluZXIgIHtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAucHJvZmlsZS1zY29yZSAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAucHJvZmlsZS1zY29yZS1ncmFwaC1jYW52YXMgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdW5sb2NrLWhlaWdodDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoYXJ0LW1lbnUgIHtcbiAgICAuY2hhcnQtbWVudS1pdGVtICB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgICB9XG59XG4ucHJvZ3JhbS1jaGFydCxcbi5saW5lLWNoYXJ0ICB7XG4gICAgQGluY2x1ZGUgZmxleCgyKTtcbn1cbi5wcm9ncmFtLWNoYXJ0ICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG59XG4udmlldy1sYXlvdXQgLnZpZXctY29udGFpbmVyIC5saW5lLWNoYXJ0ICB7XG4gICAgLmxpbmUtY2hhcnQtY2FudmFzICB7XG4gICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLWhlaWdodDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuLmNoYXJ0LWRldGFpbHMgIHtcbiAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgcGFkZGluZy1sZWZ0OiAkY29sLWdhcDtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xufVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHVuaXZlcnNhbCAoYmFzZWQgb2ZmIG9mIHByb2ZpbGUgPT4gcHJvZ3JhbXMgPT4gdmVydGljYWwgYmFyIGNoYXJ0KVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuY2FudmFzICB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiBwcm9maWxlID4gY2FsZW5kYXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5jYWxlbmRhci1tb250aCAge1xuICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICBAaW5jbHVkZSBmbGV4KDIpO1xuICAgIC53ZWVrLWRheS1sYWJlbHMge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhbGVuZGFyLWRheXMgIHtcbiAgICAgICAgLmNhbGVuZGFyLWRheSAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICgxMDAvNykqMSU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5ub3Rlcy1jYWxlbmRhciAge1xuICAgICAgICBtYXgtd2lkdGg6IDQ5MnB4O1xuICAgIH1cbn1cbi5jYWxlbmRhci1kYXktaW5mbyAge1xuICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgIHBhZGRpbmctbGVmdDogJGNvbC1nYXA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5zY2hlZHVsZS1jYWxlbmRhci1sYXlvdXQge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAuY2FsZW5kYXItbW9udGgge1xuICAgICAgICAgICAgZmxleDogMSAwIDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuICAgICAgICAuY2FsZW5kYXItZGF5LWluZm8ge1xuICAgICAgICAgICAgZmxleDogMSAwIDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1kID4gYXRobGV0ZSBncmlkID4gbGlzdCB2aWV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uYXRobGV0ZS1saXN0LXZpZXcudmlldy1sYXlvdXQgIHtcbiAgICAuYXRobGV0ZS1zdGF0ICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNy41JSk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIH1cbiAgICAuYXRobGV0ZS1wcm9ncmFtcyAge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDE4JSk7XG4gICAgfVxuICAgIC5hdGhsZXRlLWxhc3QtYWN0aXZpdHkgIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxOCUpO1xuICAgIH1cbiAgICAuYXRobGV0ZS1yb3cgIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiBtb2RhbHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5tb2RhbCAge1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG59XG4ubW9kYWwtY29udGFpbmVyICB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiBub3RlcyA+IHRyYWluaW5nIGxvYWQgPiBtaXNjXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4udGwtZW50cnktaGVhZGVyIC50bC1zZWxlY3QsXG4udGwtZW50cnkgLnRsLXNlbGVjdCAge1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTIwcHgpO1xufVxuLnRsLWVudHJ5LWhlYWRlciAudGwtaW5wdXQsXG4udGwtZW50cnkgLnRsLWlucHV0ICB7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCg4NnB4KTtcbn1cbi50bC1lbnRyeSAudGwtaW5wdXQgPiAuYmFzaWMtaW5wdXQuc21hbGwgIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cbi50bC1lbnRyeS1oZWFkZXIgIHtcbiAgICAuZmllbGQtbGFiZWwgIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1kID4gdW5pdmVyc2FsIGlucHV0IHNpemUgcmVkdWN0aW9uLi4uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmlucHV0LmJhc2ljLWlucHV0LFxuZGl2LmJhc2ljLWlucHV0LFxuZGl2LmJhc2ljLWlucHV0LXJlYWRvbmx5IHtcbiAgICB3aWR0aDogMTAwcHg7XG59XG5cbi8vIGN1cnJlbnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IGF0aGxldGUgbmF2IGZpbHRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmF0aGxldGUtbWVudSAge1xuICAgIC5hdGhsZXRlLXNlYXJjaCAge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgLmF0aGxldGUtZmlsdGVyLXNvcnQgIHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBAaW5jbHVkZSBmbGV4KGluaXRpYWwpO1xuICAgICAgICA+IC5hdGhsZXRlLXNvcnQtYm94ICB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAubGFiZWwgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAxN3B4IDE1cHggMTBweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgJjphZnRlciAge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDlweDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDdweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAzOCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5hdGhsZXRlLXJlc2V0LXZpZXcgIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleChpbml0aWFsKTtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgICAuYXRobGV0ZS10b2dnbGUtdmlldyAge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KGluaXRpYWwpO1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBoZWFkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLmhlYWRlci1jb250ZW50ICB7XG4gICAgLndoaXRlLWZpZWxkICB7XG4gICAgICAgID4gZGl2ID4gZGl2ICB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICArIGRpdiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaS5pY29uLXNob3AgIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIGJ1dHRvbiAge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cbiAgICAubG9nbyAge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGd1dHRlci13aWR0aDtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMjBweCk7XG4gICAgfVxuICAgIC53aGl0ZS1maWVsZCA+IGJ1dHRvbjpsYXN0LWNoaWxkICB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGd1dHRlci13aWR0aDtcbiAgICB9XG59XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiBncmFwaCBrZXlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5saW5lLWNoYXJ0LW1lbnUgIHtcbiAgICAuY2hhcnQtbGVnZW5kICB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMTZweDtcbiAgICAgICAgPiAuZmEgIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiB0ZXN0aW5nIHByb21wdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5wcm9tcHQtYm94ICB7XG4gICAgcGFkZGluZzogMTVweDtcbn1cbi50ZXN0LWxhbmRpbmcgLnByb21wdC1ib3ggIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpICB7XG4gICAgLnRlc3QtbGFuZGluZyAge1xuICAgICAgICBwYWRkaW5nOiAyOHB4IDAgNTZweDtcbiAgICB9XG4gICAgLnRlc3QtbGFuZGluZ19fdGl0bGUgIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICB9XG4gICAgLnRlc3QtbGFuZGluZ19fc2VjdGlvbiArIC50ZXN0LWxhbmRpbmdfX3NlY3Rpb24gIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICB9XG4gICAgLnRlc3QtbGFuZGluZ19fY2FyZCxcbiAgICAudGVzdC1sYW5kaW5nIC5wcm9tcHQtYm94ICB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAvLyBUaGUgZGVza3RvcCBydWxlcyBwaW4gdGhlIGNhcmQgdG8gYSBmaXhlZCA4NHB4IHNvIHRoZSBvbmUtbGluZSByb3dcbiAgICAgICAgLy8gc3RheXMgdW5pZm9ybS4gU3RhY2tpbmcgbWFrZXMgdGhhdCBhIGhhcmQgY2xpcCwgc28gcmVsZWFzZSBpdCBoZXJlIG9yXG4gICAgICAgIC8vIHRoZSBidXR0b24gc3BpbGxzIG91dCBvZiB0aGUgY2FyZCBhbmQgb3ZlciB0aGUgbmV4dCBvbmUuXG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogODRweDtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX19jYXJkLWFjdGlvbnMgIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICB9XG4gICAgLnRlc3QtbGFuZGluZ19fYnRuICB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1kID4gbWlzYyBjaGFydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5yZXBvcnQtY2hhcnQtY29udGFpbmVyICB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLmxpbmUtY2hhcnQgIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5yZXBvcnQtY2hhcnQtZGV0YWlscyAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAucmVwb3J0LWNoYXJ0LWRldGFpbCAge1xuICAgICAgICAgICAgPiBkaXYgIHtcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiByZXBvcnQgdGFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5yZXBvcnQtZGV0YWlscy1jb250YWluZXIgIHtcbiAgICAudGl0bGUgIHtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIH1cbn1cblxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBzZWN0aW9uID4gbWQgPiBlbmRcbiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG59XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQoc20pICB7IGJvZHkgIHtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBzbSA+IGF0aGxldGUgZ3JpZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBjYXRhbG9nIG5hdlxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmFkbWluLW1lbnUgPiBkaXYgKyBkaXYge1xuICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gY2F0YWxvZyBzaWRlIG5hdlxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmNhdGFsb2dfY29udGFpbmVyICB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgMjAwcHgpO1xufVxuLmNhdGFsb2ctc2VhcmNoICB7XG4gICAgZm9ybSAge1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGlucHV0W3R5cGU9J3RleHQnXSAge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICB9XG4gICAgICAgIGJ1dHRvblt0eXBlPSdyZXNldCddICB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhdGFsb2ctZmVhdHVyZSAuZmVhdHVyZS1jb250YWluZXIgLmZlYXR1cmUtY29udGVudCAge1xuICAgIGxlZnQ6IDQwcHg7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB0ZWFtcyB0YWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4ucHJhY3RpdGlvbmVyc1RhYmxlLFxuLnRlYW1zVGFibGUgIHtcbiAgICA+IC5yb3ctY29udGFpbmVyICB7XG4gICAgICAgID4gZGl2ICB7XG4gICAgICAgICAgICA+IHNwYW4gIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLnByYWN0aXRpb25lcnNUYWJsZSAge1xuICAgID4gLnJvdy1jb250YWluZXIgIHtcbiAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMTEycHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSg5NnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMTA4cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4SW5saW5lT3ZlcnJpZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCg1KSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKDExMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDYpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoODhweCk7XG4gICAgICAgICAgICAgICAgYnV0dG9uICB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRlYW1zVGFibGUgIHtcbiAgICA+IC5yb3ctY29udGFpbmVyICB7XG4gICAgICAgID4gZGl2ICB7XG4gICAgICAgICAgICAvLyBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKDk2cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgxMDBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzKSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKDEwMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDQpICB7XG4gICAgICAgICAgICAgICAgLy8gQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMTYwcHgpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXhJbmxpbmVPdmVycmlkZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDUpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoNzBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCg2KSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKDIxMnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gc21hbGxlciBzY3JlZW5zIHVwZGF0ZXNcbkBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG5cdC8vIG1ha2UgdGhlIGxvZ28gYSBsaXR0bGUgc21hbGxlclxuXHQuaGVhZGVyLWxvZ28gIHtcblx0XHRtYXJnaW46IDAgMTVweDtcblx0XHRpbWcgIHtcblx0XHRcdHdpZHRoOiAxMDAlOyAvLyBkb24ndCB3b3JyeSwgdGhlcmUncyBhbHJlYWR5IGEgbWF4LXdpZHRoIGFwcGxpZWQgdG8gdGhpc1xuXHRcdH1cblx0fVxuXG5cdC8vIGhpZGUgdGhlIG5hdiBpY29ucyB0byBzYXZlIHNvbWUgc3BhY2Vcblx0LmhlYWRlci1jb250ZW50IC53aGl0ZS1maWVsZCA+IGRpdiA+IGRpdiAge1xuXHRcdGkgIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0Ly8gZm9yIHNjcmVlbiBzaXplcyBhcm91bmQgNzY4cHgsIDIgdGVhbSBtZW1iZXJzIHBlciByb3cgbG9va3MgYmV0dGVyIHRoYW4gM1xuXHQuYXRobGV0ZS1kYXNoYm9hcmQgLmF0aGxldGUtZGFzaGJvYXJkLWNvbnRhaW5lciB7XG5cdFx0LmF0aGxldGUtaW5mby1ib3gsXG5cdFx0LmF0aGxldGUtYWRkLWJveCAge1xuXHRcdFx0d2lkdGg6IGNhbGMoKDEwMCUgLSAyMHB4KSAvIDIpO1xuXHRcdH1cblx0XHQuYXRobGV0ZS1pbmZvLWJveCAuYmlvLWJvZHkgLmF0aGxldGUtcHJvZmlsZSAucHJvZmlsZS1waWMgIHtcblx0XHRcdG1heC1oZWlnaHQ6IG5vbmU7IC8vIG90aGVyd2lzZSBpdCB3aWxsIHN0cmV0Y2ggd2hlbiBtaXhlZCB3aXRoIHdpZHRoOiAxMDAlXG5cdFx0fVxuXHR9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBlbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbn0gfSAvLyBlbmQgcmVzcG9uZChzbSlcblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIGJvZHkgLmF0aGxldGUtZGFzaGJvYXJkIC5hdGhsZXRlLWRhc2hib2FyZC1jb250YWluZXIge1xuICAgIC5hdGhsZXRlLWluZm8tYm94LFxuICAgIC5hdGhsZXRlLWFkZC1ib3gge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBsaXN0IHZpZXcgPiBzbWFsbCBzY3JlZW5zXG4vLyBvdmVycmlkZSByZXNwb25kKG1kKSBwZXJjZW50YWdlIGxvY2std2lkdGhzIHNvIHRoZSB0YWJsZSBzY3JvbGxzXG4vLyBpbnN0ZWFkIG9mIGNydXNoaW5nIGNvbHVtbnMgdG8gNy41JS8xOCUgb2YgYSB0aW55IHZpZXdwb3J0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWV0ZXN0IHBhZ2UgPiBzbWFsbCBzY3JlZW5zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLy8gVW5sb2NrIHRoZSA3NzBweCBsb2NrIG9uIHRoZSBBbmd1bGFyVUkgbW9kYWwgYW5pbWF0ZSBjb250YWluZXJcbiAgLm1vZGFsLWFuaW1hdGUtY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCkgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpICFpbXBvcnRhbnQ7XG4gIH1cbiAgLy8gQm9vdHN0cmFwIG1vZGFsIGRpYWxvZyBmYWxsYmFja1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgfVxuICAvLyBSZW1vdmUgMzAwcHggbWluLXdpZHRoIGFuZCBzdHJldGNoIGNoaWxkcmVuIHNvIHRleHRhcmVhIGZpbGxzIGZ1bGwgd2lkdGhcbiAgLm1vZGFsLWNvbnRhaW5lciBzZWN0aW9uIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB9XG5cbiAgLy8gQ2xpbmljYWwgcmVwb3J0IG1vZGFsOiBkcm9wZG93biBmaXRzIHNjcmVlbiwgc2VsZWN0ZWQgdmFsdWUgdHJ1bmNhdGVzIHdpdGggZWxsaXBzaXNcbiAgbGFiZWwuY2xpbmljYWwtZm9ybS1maWVsZCB7XG4gICAgbWFyZ2luOiAwIDE1cHg7XG4gIH1cbiAgZnVzaW9uLW9yZGVyZWQtZHJvcC1kb3duLmNsaW5pY2FsLWRyb3AtZG93biB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgID4gZGl2LmNvbHVtbi1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLnNlbGVjdC10b2dnbGUge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIC5zZWxlY3QtdG9nZ2xlIHNwYW4uZmlsdGVyZWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQcm9ncmFtIGVkaXQgcGFnZSByZXNwb25zaXZlIHJ1bGVzIGFyZSBpbiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzXG4vLyAobXVzdCBiZSBpbiB0aGUgc2Vjb25kLWxvYWRlZCBidW5kbGUgdG8gd2luIHRoZSBjYXNjYWRlKVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgYm9keSAuYXRobGV0ZS1saXN0LXZpZXcudmlldy1sYXlvdXQge1xuICAgIC5hdGhsZXRlLWhlYWRlcixcbiAgICAuYXRobGV0ZS1yb3cge1xuICAgICAgbWluLXdpZHRoOiA2ODBweDtcbiAgICB9XG4gICAgLmF0aGxldGUtbmFtZSB7XG4gICAgICBtaW4td2lkdGg6IDEzMHB4O1xuICAgIH1cbiAgICAuYXRobGV0ZS1zdGF0IHtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNzBweCk7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuICAgIC5hdGhsZXRlLXByb2dyYW1zIHtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTEwcHgpO1xuICAgIH1cbiAgICAuYXRobGV0ZS1sYXN0LWFjdGl2aXR5IHtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTIwcHgpO1xuICAgIH1cbiAgICAuYXRobGV0ZS1yb3cge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMyXCI7XG5cblxuLmFycm93VGFicyAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgQGluY2x1ZGUgZ3JpZHhnYXAoMnB4KTtcbiAgICA+IHNwYW4gIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAmOmJlZm9yZSAge1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7ICAgICAgXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLThweDtcbiAgICAgICAgICAgIGJvdHRvbTogLTZweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKDE2cHggNnB4LCAkYmx1ZSwgZG93bik7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIH1cbiAgICAgICAgc3BhbiAge1xuICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0YyRjRGNTtcbiAgICAgICAgICAgIGNvbG9yOiAjQUJCMEIzO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBzcGFuICB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDAgMCA1cHg7ICBcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgc3BhbiAge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUgIHtcbiAgICAgICAgICAgICY6YmVmb3JlICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcGFuICB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsdWU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwcm9ncmFtIHNjaGVkdWxlIHRhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwcm9ncmFtU2NoZWR1bGVUYWJsZUF0dHJzKCRsZWZ0UHVsbCwgJGlubmVyU3BhY2luZykgIHsgIFxuICAgICRwcm9ncmFtYnJlYWtwb2ludDogJGxhcmdlQnJlYWtwb2ludCArICRsZWZ0UHVsbCArIDQwcHg7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDsgIFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHByb2dyYW1icmVha3BvaW50KSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjeyRsZWZ0UHVsbH0pO1xuICAgICAgICBtYXJnaW4tbGVmdDogJGxlZnRQdWxsKi0xO1xuICAgIH1cbiAgICB0ciAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJGxlZnRQdWxsO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICArICogIHsgICAgICBcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygoMTAwLzcqMSUpIC0gI3skbGVmdFB1bGwvN30pO1xuICAgICAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRpbm5lclNwYWNpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgICsgdHIgIHtcbiAgICAgICAgICAgID4gKiAge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkaW5uZXJTcGFjaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHRoZWFkICB7XG4gICAgICAgIHRoICB7XG4gICAgICAgICAgICBjb2xvcjogI0JEQzFDNTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0Ym9keSAge1xuICAgICAgICB0aCAge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBjb2xvcjogIzg0ODk5MDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH0gICAgXG4gICAgfVxufVxuLnByb2dyYW1TY2hlZHVsZVRhYmxlICB7XG4gICAgQGluY2x1ZGUgcHJvZ3JhbVNjaGVkdWxlVGFibGVBdHRycyg3MHB4LCA1cHgpO1xufVxuXG5AbWl4aW4gYWN0aXZpdHlQaWxsR3JvdXBBdHRzKCRwaWxsR2FwKSAge1xuICAgICRwaWxsSGVpZ2h0OiAkcGlsbEdhcCoyLzM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNGMkY0RjU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbjsgIFxuICAgIGhlaWdodDogMTE3LjNweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAuYWN0aXZpdHlQaWxsICB7XG4gICAgICAgIGhlaWdodDogY2FsYygzMy4zMzMlIC0gI3skcGlsbEhlaWdodH0pO1xuICAgICAgICArIC5hY3Rpdml0eVBpbGwgIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRwaWxsR2FwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hZGRJY29uICB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjQ0REM0Q3OyAgICBcbiAgICAgICAgQGluY2x1ZGUgYWJzQ2VudGVySWNvbig0MHB4KTtcbiAgICB9ICBcbn1cblxuLmFjdGl2aXR5UGlsbEdyb3VwICB7XG4gICAgQGluY2x1ZGUgYWN0aXZpdHlQaWxsR3JvdXBBdHRzKDNweCk7XG59XG4uYWN0aXZpdHlQaWxsICB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYWN0aXZpdHlQaWxsLS1wcm9tcHQgIHtcbiAgICBiYWNrZ3JvdW5kOiAjRTRFOUVDO1xuICAgIGNvbG9yOiAjQkRDMUM1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmFjdGl2aXR5UGlsbC0tYWN0aXZlICB7XG4gICAgYmFja2dyb3VuZDogJGJsdWU7ICBcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMCAxNXB4O1xuICAgIC5jbG9zZUljb24gIHtcbiAgICAgICAgQGluY2x1ZGUgYWJzQ2VudGVySWNvbl95KDEwcHgpO1xuICAgICAgICByaWdodDogNXB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfSAgIFxufVxuXG4uYWN0aXZpdHlQaWxsR3JvdXAtLWVtcHR5ICB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC5hZGRJY29uICB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHNlbGVjdCArIGFkZCBwaWxsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuLnNlbGVjdEFkZFBpbGwgIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgQGluY2x1ZGUgZmxleC1yb3c7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgLnRsLWVudHJ5IC50bC1zZWxlY3QsXG4gICAgLnRsLWVudHJ5IC50bC1zZWxlY3QtaW5wdXQgLnNlbGVjdC10b2dnbGUge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG4gICAgYnV0dG9uLnByaW1hcnkgIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuICAgICAgICArICogIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgICB9XG4gICAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwibWl4aW5zMlwiO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB2YXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbiRmbGV4Rm9ybUlucHV0X2g6IDQ2cHg7XG4kZmxleEZvcm1fcGFkOiAxMnB4O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHlwb2dyYXBoeVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4udF9wYWdlQ29udGVudFRpdGxlICB7XG5cdG1hcmdpbjogMDtcblx0Y29sb3I6ICRibHVlO1xuXHRmb250LXNpemU6IDI0cHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdCYudG9wICB7XG5cdFx0Y29sb3I6ICM3NTc4N0I7XG5cdH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gaGVscGVyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4ueWNlbnRlci1pdGVtcyAge1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbi54Z2FwQ2hpbGRyZW4gIHtcblx0PiAqICsgKiAge1xuXHRcdHBhZGRpbmctbGVmdDogMTVweDtcblx0fVxufVxuXG4uaW5saW5lU3BhY2VkICB7XG5cdEBpbmNsdWRlIGlubGluZS1ncmlkLWJhc2U7XHRcbn1cbi5pbmxpbmVTcGFjZWQtLWFsaWduLS10b3AgIHtcblx0PiAqICB7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxufVxuLmlubGluZVNwYWNlZC0tYWxpZ24tLW1pZGRsZSAge1xuXHQ+ICogIHtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG59XG4uaW5saW5lU3BhY2VkLS1jb21wYWN0ICB7XG5cdEBpbmNsdWRlIGlubGluZS1ncmlkLXh5KDJweCk7XG59XG4uaW5saW5lU3BhY2VkLS1zcGFjZWQgIHtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQteHkoOHB4KTtcbn1cbi5pbmxpbmVTcGFjZWQtLXNwYWNlZE1lZCAge1xuXHRAaW5jbHVkZSBpbmxpbmUtZ3JpZC14eSg0cHgpO1xufVxuLmlubGluZVNwYWNlZC0tb3B0aW9uSW5wdXRzICB7XG5cdEBpbmNsdWRlIGlubGluZS1ncmlkLXgoMTBweCk7XG5cdEBpbmNsdWRlIGlubGluZS1ncmlkLXkoNHB4KTtcbn1cbi5pbmxpbmVTcGFjZWRfX2NoaWxkICB7XG5cdEBpbmNsdWRlIHRyaW1Jbm5lck1hcmdpbjtcbn1cblxuLmNvbG9yLS1iYWQgIHtcblx0Y29sb3I6ICRyZWQ7XG59XG4uY29sb3ItLWdvb2QgIHtcblx0Y29sb3I6ICRncmVlbjtcbn1cbi5jb2xvci0tb2sgIHtcblx0Y29sb3I6ICR5ZWxsb3c7XG59XG4uY29sb3ItLW5ldXRyYWwgIHtcblx0Y29sb3I6ICRncmV5O1xufVxuLmNvbG9yLS1uZXV0cmFsQmx1ZSwgXG4uY29sb3ItLWxpbmsgIHtcblx0Y29sb3I6ICM0QUIzREEgIWltcG9ydGFudDsgLy8gbmVlZHMgdG8gb3ZlcnJpZGUgZGVmYXVsdCBzdHlsZXMgc2luY2UgaXQgaXMgYSBoZWxwZXIgY2xhc3Ncbn1cblxuLmZsZXhSb3cgIHtcblx0QGluY2x1ZGUgZmxleC1yb3coKTtcdFxufVxuLmZsZXhSb3dfX2ZsZXggIHtcblx0QGluY2x1ZGUgZmxleCgxKTtcbn1cblxuYnV0dG9uLndpZGUgIHtcblx0bWluLXdpZHRoOiAyMDBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGFwcC1zcGVjaWZpYyBtaXhpbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuQG1peGluIGJsb2NrU2hhZG93ICB7XG5cdGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgjMDAwLCAwLjIpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc2Nyb2xsIHNlY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuXG4uc2Nyb2xsU2lkZVdyYXAgIHtcdFxuXHRAaW5jbHVkZSByZXNwb25kKG1kLXVwKSAge1xuXHRcdEBpbmNsdWRlIGZsZXgtcm93O1x0XG5cdH1cdFxufVxuJHNjcm9sbFNpZGVXcmFwX19zaWRlX2RhcmtDOiAjMjkzMDQwO1xuLnNjcm9sbFNpZGVXcmFwX19zaWRlICB7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRiYWNrZ3JvdW5kOiAjMzYzQTQ2O1x0XG5cdEBpbmNsdWRlIHJlc3BvbmQobWQtdXApICB7XG5cdFx0bWluLXdpZHRoOiAyNzVweDtcblx0XHRtYXgtd2lkdGg6IDM0N3B4O1xuXHRcdHdpZHRoOiAyNi43JTtcblx0fVx0XG5cdEBpbmNsdWRlIHJlc3BvbmQoc20pICB7XG5cdFx0QGluY2x1ZGUgZmxleC1yb3c7XHRcblx0XHRiYWNrZ3JvdW5kOiAkc2Nyb2xsU2lkZVdyYXBfX3NpZGVfZGFya0M7XG5cdFx0LmxvZ2dlZEluQmxvY2sgIHtcblx0XHRcdHdpZHRoOiAyNDBweDtcblx0XHR9XHRcblx0XHQuc2lkZUJhck1haW5Db250ZW50ICB7XG5cdFx0XHRAaW5jbHVkZSBmbGV4KDEpO1xuXHRcdH1cblx0XHQuc2lkZUJhclNlY3Rpb24gIHtcdFx0XHRcblx0XHRcdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRcdFx0KyAuc2lkZUJhclNlY3Rpb24gIHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHR9XG5cdFx0fVx0XHRcdFx0XG5cdFx0LnNpZGVCYXJTZWN0aW9uX19jb250ZW50ICB7XG5cdFx0XHRAaW5jbHVkZSBmbGV4KDEpO1xuXHRcdH1cdFx0XG5cdH1cdFxufVxuLnNpZGVCYXJGaWx0ZXJGaWVsZHMgIHtcblx0QGluY2x1ZGUgcmVzcG9uZChtZC11cCkgIHtcblx0XHQ+ICogKyAqICB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMXB4O1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSByZXNwb25kKHNtKSAge1xuXHRcdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRcdEBpbmNsdWRlIGdyaWR4Z2FwKCRmbGV4Rm9ybV9wYWQvMik7XG5cdFx0PiAqICB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdH1cblx0fVxufVxuLnNjcm9sbFNpZGVXcmFwX19tYWluICB7XG5cdEBpbmNsdWRlIGZsZXgoMSk7XG5cdHBhZGRpbmc6IDIwcHg7XG5cdGJhY2tncm91bmQ6ICNFRkYxRjI7XG59XG5cbkBtaXhpbiBzY3JvbGxTaWRlV3JhcFhwYWQgIHtcblx0QGluY2x1ZGUgeHBhZCgyMnB4KTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGFkbWluMiBzaWRlYmFyIGxvZ2dlZCBpbiBibG9jayBoaWdoIGxldmVsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5sb2dnZWRJbkJsb2NrICB7XG5cdGJhY2tncm91bmQ6ICM5NzY4RUI7XHRcblx0QGluY2x1ZGUgc2Nyb2xsU2lkZVdyYXBYcGFkO1xuXHRwYWRkaW5nLXRvcDogMTFweDtcblx0cGFkZGluZy1ib3R0b206IDIxcHg7XG59XG4ubG9nZ2VkSW5CbG9ja19fbmFtZSAge1xuXHRtYXJnaW46IDAgMCA3cHg7XG5cdGNvbG9yOiAjZmZmO1xuXHRmb250LXNpemU6IDI2cHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubG9nZ2VkSW5CbG9ja19fbWVudSAge1xuXHRcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBhcnQgb2YgbG9nZ2VkIGluIHByb2ZpbGUgdGhhdCdzIGp1c3QgdGhlIG1lbnVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmxvZ2dlZEluTWVudSAge1xuXHRcbn1cbi5sb2dnZWRJbk1lbnVfX2Ryb3BEb3duICB7XG5cdFxufVxuLmxvZ2dlZEluTWVudV9fdHJpZ2dlciAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXG59XG4ubG9nZ2VkSW5NZW51X190cmlnZ2VyX19pbWcgIHtcdFxuXHRpbWcgIHtcblx0XHR3aWR0aDogMzJweDtcblx0XHRoZWlnaHQ6IDMycHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG4ubG9nZ2VkSW5NZW51X190cmlnZ2VyX19uYW1lICB7XG5cdGNvbG9yOiAjZmZmO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XHRcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuLmxvZ2dlZEluTWVudV9fdHJpZ2dlcl9faWNvbiAge1x0XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjb2xvcjogI2ZmZjtcblx0Zm9udC1zaXplOiA2cHg7XG5cdHBhZGRpbmc6IDZweCAwIDAgNXB4O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc2lkYmUgc2VjdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uc2lkZUJhclNlY3Rpb24gIHtcblx0QGluY2x1ZGUgc2Nyb2xsU2lkZVdyYXBYcGFkO1xuXHRAaW5jbHVkZSB5cGFkKDIwcHgpO1xuXHRjb2xvcjogI2ZmZjtcbn1cbi5zaWRlQmFyU2VjdGlvbi0tZGFyayAge1xuXHRiYWNrZ3JvdW5kOiAkc2Nyb2xsU2lkZVdyYXBfX3NpZGVfZGFya0Ncbn1cbi5zaWRlQmFyU2VjdGlvbl9fY29udGVudCAge1xuXHRcbn1cbi5zaWRlQmFyU2VjdGlvbl9faGVhZGVyICB7XG5cdEBpbmNsdWRlIHJlc3BvbmQobWQtdXApICB7XG5cdFx0bWFyZ2luOiAwIDAgMTVweDtcblx0fVxuXHRAaW5jbHVkZSByZXNwb25kKHNtKSAge1xuXHRcdHdpZHRoOiAxMTBweDtcblx0fVxufVxuLnNpZGVCYXJTZWN0aW9uX19oZWFkZXJfX3RpdGxlICB7XG5cdGZvbnQtc2l6ZTogMjBweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcdFxufVxuXG4uYmxvY2tDb250ZW50ICB7XG5cdEBpbmNsdWRlIHRyaW1Jbm5lck1hcmdpbjtcbn1cblxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGZpZWxkIHBpbGxzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbkBtaXhpbiBvcGVuRmllbGRfeHBhZCgkcGFkKSAge1xuXHQ+ICogIHtcblx0XHQmOmZpcnN0LWNoaWxkICB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6ICRwYWQ7XG5cdFx0fVxuXHRcdCY6bGFzdC1jaGlsZCAge1xuXHRcdFx0cGFkZGluZy1yaWdodDogJHBhZDtcblx0XHR9XG5cdH1cbn1cbi5vcGVuRmllbGQgIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDM2cHg7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0YmFja2dyb3VuZDogI0Y0RjRGNDtcblx0Zm9udC1zaXplOiAxNHB4O1x0XG5cdEBpbmNsdWRlIGZsZXgtcm93O1x0XG5cdEBpbmNsdWRlIG9wZW5GaWVsZF94cGFkKDEycHgpO1x0XG5cdGlucHV0ICB7XG5cdFx0cGFkZGluZzogNXB4IDA7XG5cdH1cbn1cbi5vcGVuRmllbGRUYWxsX2J0biAge1xuXHRtYXgtaGVpZ2h0OiAkZmxleEZvcm1JbnB1dF9oO1xuXHRtaW4taGVpZ2h0OiAkZmxleEZvcm1JbnB1dF9oO1xuXHRoZWlnaHQ6ICRmbGV4Rm9ybUlucHV0X2g7XG59XG4ub3BlbkZpZWxkLS1yb3VuZGVkICB7XG5cdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdEBpbmNsdWRlIG9wZW5GaWVsZF94cGFkKDIwcHgpO1xufVxuXG5AbWl4aW4gb3BlbkZpZWxkX2NvbG9yKCRwbGFjZWhvbGRlciwgJGFjdGl2ZSkgIHtcblx0aW5wdXQgIHtcblx0XHRjb2xvcjogIzc1Nzg3Qjtcblx0XHRAaW5jbHVkZSBwbGFjZWhvbGRlciAge1xuXHRcdFx0Y29sb3I6ICNBQUFCQUY7XG5cdFx0fVxuXHR9XG5cdC5vcGVuRmllbGRTZWxlY3RfX3RyaWdnZXIgIHtcblx0XHQudGV4dCAge1xuXHRcdFx0Y29sb3I6ICM3NTc4N0I7XG5cdFx0XHQmLnBsYWNlaG9sZGVyICB7XG5cdFx0XHRcdGNvbG9yOiAjQUFBQkFGO1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ub3BlbkZpZWxkLS1kYXJrZXIgIHtcblx0QGluY2x1ZGUgb3BlbkZpZWxkX2NvbG9yKCNBQUFCQUYsICM3NTc4N0IpO1x0XG59XG4ub3BlbkZpZWxkLS10YWxsICB7XG5cdGhlaWdodDogJGZsZXhGb3JtSW5wdXRfaDtcblx0Lm9wZW5GaWVsZFNlbGVjdF9fdHJpZ2dlciBpICB7XG5cdFx0Zm9udC1zaXplOiA4cHg7XG5cdFx0cGFkZGluZy10b3A6IDRweDtcblx0fVxufVxuXG4ub3BlbkZpZWxkU2VsZWN0ICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xufVxuJGRhcmtJbnB1dFBsYWNlaG9sZGVyT3BhY2l0eTogMC4zODtcbi5vcGVuRmllbGRTZWxlY3RfX3RyaWdnZXIgIHtcblx0QGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG5cdEBpbmNsdWRlIGZsZXgoMSk7XG5cdC50ZXh0ICB7XG5cdFx0QGluY2x1ZGUgZmxleCgxKTtcblx0XHQmLnBsYWNlaG9sZGVyICB7XG5cdFx0XHRvcGFjaXR5OiAkZGFya0lucHV0UGxhY2Vob2xkZXJPcGFjaXR5O1xuXHRcdH1cblx0fVxuXHRpICB7XG5cdFx0Zm9udC1zaXplOiA2cHg7XG5cdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRcdG9wYWNpdHk6IDAuMjY7XG5cdH1cdFxufVxuXG4ub3BlbkZpZWxkSW5wdXQgIHtcblx0QGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG5cdD4gKiAge1xuXHRcdCsgKiAge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDE1cHg7XG5cdFx0fVxuXHR9XG5cdGlucHV0ICB7XG5cdFx0bWluLXdpZHRoOiAwO1xuXHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0YmFja2dyb3VuZDpub25lO1xuXHRcdGJvcmRlcjogMDtcblx0XHRmb250LXNpemU6IGluaGVyaXQ7XHRcdFxuXHR9XG5cdC5zdWJtaXRXcmFwICB7XHRcdFxuXHRcdG9wYWNpdHk6IDAuMzY7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcblx0XHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcblx0XHQmOmhvdmVyICB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVx0XG5cdC5pY29uLXNlYXJjaCAge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0fVxufVxuLm9wZW5GaWVsZFNlbGVjdC0tZGFyayAge1xuXHRiYWNrZ3JvdW5kOiAjNTE1OTZGO1x0XG59XG5cbi5vcGVuRmllbGRJbnB1dC0tbGlnaHQgIHtcblx0YmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLm9wZW5GaWVsZElucHV0LS1kYXJrICB7XG5cdGJhY2tncm91bmQ6ICM0MTQ5NUM7XG5cdGlucHV0ICB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0QGluY2x1ZGUgcGxhY2Vob2xkZXIgIHtcblx0XHRcdG9wYWNpdHk6ICRkYXJrSW5wdXRQbGFjZWhvbGRlck9wYWNpdHk7XG5cdFx0fVx0XG5cdH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGRhcmsgc2lkZSBsaW5rc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uZGFya1NpZGVMaW5rcyAge1xuXHRtYXJnaW46IDUwcHggLTEwcHg7IC8vIHRoZXNlIHNob3VsZCB0YWtlIHVwIGEgYml0IG1vcmUgb2YgdGhlIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgc2lkZWJhciBzZWN0aW9uXG5cdHBhZGRpbmc6IDA7XG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcdFx0XG5cdD4gbGkgIHtcblx0XHQrIGxpICB7XG5cdFx0XHRtYXJnaW4tdG9wOiA1cHg7XG5cdFx0fVxuXHR9XG5cdGEgIHtcblx0XHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcblx0XHRiYWNrZ3JvdW5kOiAjNDE0OTVDO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHBhZGRpbmc6IDEwcHggMTdweDtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Ym9yZGVyLWxlZnQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHQmOmhvdmVyICB7XG5cdFx0XHRcblx0XHR9XG5cdFx0Ji5hY3RpdmUgIHtcblx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAkYmx1ZTtcblx0XHRcdGJhY2tncm91bmQ6ICM1MTU5NkY7XG5cdFx0XHQubnVtICB7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQudGV4dCAge1xuXHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHR9XG5cdC5udW0gIHtcblx0XHRjb2xvcjogIzcwN0M5Nztcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHNlY3Rpb24gSGVhZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5wYWdlU2VjdGlvbkJsb2NrICB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcdFxuXHRiYWNrZ3JvdW5kOiAjZmZmO1x0XG5cdEBpbmNsdWRlIGJsb2NrU2hhZG93O1xuXHRib3JkZXItdG9wOiA1cHggc29saWQgJGJsdWU7XG59XG4ucGFnZVNlY3Rpb25CbG9ja19faGVhZGVyICB7XG5cdHBhZGRpbmc6IDEwcHggMTVweCAzMHB4O1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRUVFRTtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0PiAqICB7XG5cdFx0KyAqICB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdFx0fVxuXHR9XHRcdFxufVxuLnBhZ2VTZWN0aW9uQmxvY2tfcHJlSGVhZGVyICB7XG5cdG1hcmdpbjogMCAwIDEwcHg7XG59XG4uYWN0aW9uc0JhciAge1xuXHRwYWRkaW5nOiA4cHggMTVweCA4cHggOHB4O1x0XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBidXR0b24gYWRqdXN0bWVudHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuYnV0dG9uLnByaW1hcnkgIHtcblx0Ji5zbWFsbCAge1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwO1xuXHRcdG1heC1oZWlnaHQ6IG5vbmU7XG5cdFx0bWluLWhlaWdodDogMDtcblx0XHRoZWlnaHQ6IDQxcHg7XG5cdFx0cGFkZGluZzogMCAxNHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYnRuIGljb25zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5idG5JY29uICB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1zaXplOiAyMHB4O1xuXHQmLmljb24tYWRkLXRlYW0gIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdH1cblx0Ji5pY29uLWFkZC1wZXJzb24gIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdH1cblx0Ji5pY29uLWFkZC1wcmFjdGl0aW9uZXIgIHtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdH1cbn1cbi5idG5JY29uLS1sZWZ0ICB7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpY29uVGV4dExpbmtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmljb25UZXh0TGluayAge1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjb2xvcjogJGJsdWU7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcdFxuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGkgIHtcblx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cdH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBhZ2Ugc2VjdGlvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLnBhZ2VTZWN0aW9uICB7XG5cdCsgLnBhZ2VTZWN0aW9uICB7XG5cdFx0bWFyZ2luLXRvcDogMzBweDtcblx0fVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBmaWx0ZXJzIGJhclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbi50YWJsZUZpbHRlcnNXcmFwICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93KCk7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuXHRtYXJnaW46IDAgMCAxMHB4O1xufVxuLnRhYmxlRmlsdGVyc1dyYXBfX21haW4gIHtcblx0QGluY2x1ZGUgZmxleCgxKTtcbn1cbi50YWJsZUZpbHRlcnNXcmFwX19zaWRlICB7XG5cdHBhZGRpbmctbGVmdDogMTVweDtcblx0d2lkdGg6IDI1JTtcblx0bWluLXdpZHRoOiAxODBweDtcdFxufVxuXG4ucGFnaW5hdGlvbkluZm8gIHtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRjb2xvcjogIzc1Nzg3Qjtcbn1cblxuXG5cbi5jb21wYWN0UGFnaW5hdGlvbiAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdygpO1xuXHQ+IGRpdiAge1x0XHRcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHR3aWR0aDogMzFweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZDogJGJsdWU7XHRcblx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0b3BhY2l0eTogMC40O1x0XHRcdFx0XG5cdFx0KyAqICB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMXB4O1xuXHRcdH1cdFx0XG5cdFx0Jjpob3ZlciAge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdFx0JjpmaXJzdC1jaGlsZCAge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XHRcblx0XHQmOmxhc3QtY2hpbGQgIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cdFxuXHR9XG5cdGkgIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAtMXB4O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRmb250LXNpemU6IDIycHg7XHRcblx0XHRsaW5lLWhlaWdodDogMjhweDtcdFxuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cbn1cblxuXG4uZHJvcGRvd24td3JhcHBlci5kcm9wZG93bi13cmFwcGVyLS1pbmxpbmUgIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1x0XG5cdC50cmlnZ2VyICB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRcdC5pY29uLWNhcmV0LWRyb3Bkb3duICB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDRweDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDRweDtcdFxuXHRcdH1cblx0fVxuXHQ+IC5zdWJtZW51LXdyYXBwZXIgIHtcblx0XHQ+IC5zdWJtZW51LWNvbnRlbnQgIHtcblx0XHRcdD4gLnN1Ym1lbnUgIHtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdFx0bGkgIHtcblx0XHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdFx0cGFkZGluZzogNXB4O1xuXHRcdFx0XHRcdD4gc3BhbiA+IHNwYW4gIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5pY29uLS1mbGlwICB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxODBkZWcpKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHNvcnQgSWNvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uc29ydGVkVGFibGVIZWFkZXIgIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQmLnNvcnRlZCwgXG5cdCY6aG92ZXIgIHtcblx0XHRiYWNrZ3JvdW5kOiAjRjdGN0Y3O1xuXHR9XG59XG4kc29ydEljb25XcmFwX2NfZGVmYXVsdDogI0Q4RDhEODtcbiRzb3J0SWNvbldyYXBfY19hY3RpdmU6ICM3ODdCN0U7XG4uc29ydEljb25XcmFwICB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcdFxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGhlaWdodDogMTZweDtcblx0d2lkdGg6IDlweDtcblx0bWFyZ2luLWxlZnQ6IDNweDtcblx0JjpiZWZvcmUsICY6YWZ0ZXIgIHtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0d2lkdGg6IDA7XG5cdFx0Y29udGVudDogXCIgXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci10b3Atd2lkdGg6IDZweDtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOiA2cHg7XG5cdFx0Ym9yZGVyLWxlZnQtd2lkdGg6IDRweDtcblx0XHRib3JkZXItcmlnaHQtd2lkdGg6IDRweDtcblx0fVxuXHQmOmJlZm9yZSAge1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6ICRzb3J0SWNvbldyYXBfY19kZWZhdWx0O1xuXHRcdHRvcDogLTVweDtcblx0fVxuXHQmOmFmdGVyICB7XG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogJHNvcnRJY29uV3JhcF9jX2RlZmF1bHQ7XG5cdFx0Ym90dG9tOiAtNXB4O1xuXHR9XG5cdC5zb3J0ZWRUYWJsZUhlYWRlci0tZGVzYyAmICB7XG5cdFx0JjpiZWZvcmUgIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVx0XG5cdFx0JjphZnRlciAge1xuXHRcdFx0Ym9yZGVyLXRvcC1jb2xvcjogJHNvcnRJY29uV3JhcF9jX2FjdGl2ZTtcblx0XHR9XHRcblx0fVxuXHQuc29ydGVkVGFibGVIZWFkZXItLWFzYyAmICB7XG5cdFx0JjpiZWZvcmUgIHtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6ICRzb3J0SWNvbldyYXBfY19hY3RpdmU7XG5cdFx0fVxuXHRcdCY6YWZ0ZXIgIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVx0XHRcblx0fVx0XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGFjdGlvbiBpY29uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLmFjdGlvbkljb24gIHtcblx0Zm9udC1zaXplOiAxNDAlO1xuXHRjb2xvcjogJGJsdWU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0Ji5pY29uLWxldHRlciAge1xuXHRcdGZvbnQtc2l6ZTogMTAwJTtcdFx0XG5cdH1cblx0Ji5pY29uLWxhdW5jaCAge1xuXHRcdGZvbnQtc2l6ZTogMTkyJTtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gaWNvbkFjdGl2ZUNoZWNrXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5pY29uQWN0aXZlQ2hlY2sgIHtcblx0Zm9udC1zaXplOiAxMTAlO1xuXHRjb2xvcjogI0RCREJEQjtcbn1cbi5pY29uQWN0aXZlQ2hlY2stLWFjdGl2ZSAge1xuXHRjb2xvcjogJGdyZWVuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gaW5saW5lIHBlcnNvbiBiYWRnZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uaW5saW5lUGVyc29uQmFkZ2UgIHtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRwYWRkaW5nLWxlZnQ6IDFweDtcdFxufVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGFsdCB0YWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5AbWl4aW4gYWx0VGFibGVYcGFkKCRwYWQpICB7XHRcblx0LmFsdFRhYmxlICB7XG5cdFx0dHIgIHtcdFx0XHRcblx0XHRcdD4gKiAge1xuXHRcdFx0XHRAaW5jbHVkZSB4cGFkKCRwYWQvMik7XG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQgIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6ICRwYWQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0JjpsYXN0LWNoaWxkICB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogJHBhZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuYWx0VGFibGVfX3JvdyAge1xuXHRcdEBpbmNsdWRlIHhwYWQoJHBhZCk7XG5cdH1cdFxufVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGFsdCB0YWJsZSB4IHBhZGRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuXG5AaW5jbHVkZSByZXNwb25kKGxnKSAge1xuXHRAaW5jbHVkZSBhbHRUYWJsZVhwYWQoMjBweCk7XHRcbn1cdFxuQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcblx0QGluY2x1ZGUgYWx0VGFibGVYcGFkKDhweCk7XG59IFxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWx0IHRhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5hbHRUYWJsZV9faW5uZXJXcmFwICB7XG5cdGNvbG9yOiAjNzU3ODdCO1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdEBpbmNsdWRlIGJsb2NrU2hhZG93O1xuXHRAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0fSAgXG59XG5cbi5hbHRUYWJsZSAge1x0XHQgXG5cdHRhYmxlICB7XG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cdH1cblx0dHIgIHtcblx0XHQ+ICogIHtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHRcdFx0XHRcblx0XHRcdCY6Zmlyc3QtY2hpbGQgIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdH1cblx0XHR9XG5cdFx0dGggIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQ0ZDRkNGO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdEBpbmNsdWRlIHlwYWQoMTRweCk7XG5cdFx0fVxuXHRcdHRkICB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFRUVFRTtcblx0XHRcdEBpbmNsdWRlIHlwYWQoMTJweCk7XHRcblx0XHR9XG5cdH1cdFxufVxuXG4uYWx0VGFibGVfX3NpbXBsZUhlYWRlciAge1xuXHRtYXJnaW46IDAgMCAxNXB4O1xuXHRjb2xvcjogIzc1Nzg3Qjtcblx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC1zaXplOiAxM3B4O1x0XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFsdFRhYmxlX19mb290ZXJCYXIgIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRAaW5jbHVkZSB5cGFkKDEwcHgpO1xufVxuLmJ0biAge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnNob3J0V2lkZUJ0biAge1xuXHRtaW4td2lkdGg6IDE2N3B4O1xuXHRsaW5lLWhlaWdodDogMjRweDtcblx0Ym9yZGVyOiAxcHggc29saWQgJGJsdWU7XG5cdHBhZGRpbmc6IDAgMTVweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRjb2xvcjogJGJsdWU7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLnRkLS1uYW1lICB7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHNpdGUgaGVhZGVyIGJhclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uc2l0ZUhlYWRlckJhciAge1xuXHRcbn1cblxuLnNpdGVIZWFkZXJCYXJfX2xvZ29Hcm91cCAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcblx0PiBkaXYgIHtcblx0XHRAaW5jbHVkZSBmbGV4LXJvdztcblx0XHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdFx0cGFkZGluZzogMTVweCAyMHB4O1xuXHRcdCsgZGl2ICB7XG5cdFx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkICNDOEM5Qzk7XG5cdFx0fVxuXHR9XG59XG5cbi5zaXRlSGVhZGVyQmFyX19hY3Rpb25zICB7XG5cdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBsb2dvcyBcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmxvZ28tLWZ1c1NtYWxsICB7XG5cdHdpZHRoOiAxMTlweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+ICB0ZXh0IGxpbmtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLnRleHRMaW5rICB7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRmb250LXNpemU6IDEzcHg7XHRcbn1cbi50ZXh0TGluay0tYnVtcCAge1xuXHRmb250LXNpemU6IDE4cHg7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBiYWNrIGJ0blxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbi5iYWNrQnRuICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHdpZHRoOiA0NXB4O1xuXHRoZWlnaHQ6IDM5cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0YmFja2dyb3VuZDogJGJsdWU7XG5cdGNvbG9yOiAjZmZmO1xuXHRmb250LXNpemU6IDE1cHg7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gZmxleCBmb3JtXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbiRmbGV4Rm9ybV9ocjogI0VGRUZGMDtcbi5mbGV4Rm9ybSAge1xuXHRmaWVsZHNldCAge1xuXHRcdGJvcmRlcjogMDtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogJGZsZXhGb3JtX3BhZCAwO1xuXHRcdCsgZmllbGRzZXQgIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkZmxleEZvcm1faHI7XG5cdFx0fVxuXHR9XG59XG4uZmxleEZvcm1Gb290ZXIgIHtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRmbGV4Rm9ybV9ocjtcblx0cGFkZGluZzogMjBweCAkZmxleEZvcm1fcGFkO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mbGV4Rm9ybVJvdyAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdygpO1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdHBhZGRpbmc6IDAgJGZsZXhGb3JtX3BhZDtcblx0bWluLWhlaWdodDogJGZsZXhGb3JtSW5wdXRfaDtcblx0KyAuZmxleEZvcm1Sb3cgIHtcblx0XHRtYXJnaW4tdG9wOiAkZmxleEZvcm1fcGFkO1xuXHR9XG59XG4uZmxleEZvcm1Sb3ctLWxhcmdlU2VjdGlvbiAge1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuXHRAaW5jbHVkZSB5cGFkKDEycHgpO1x0XG5cdC5mbGV4Rm9ybVJvd19fbGFiZWxDb2wgIHtcblx0XHRwYWRkaW5nLXRvcDogMTJweDtcblx0fVxufVxuXG5cbi5mbGV4Rm9ybVJvd19fbGFiZWxDb2wgIHtcblx0bWluLWhlaWdodDogMXB4O1xuXHR3aWR0aDogMTgycHg7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGNvbG9yOiAjNkM2RDZDO1xuXHRwYWRkaW5nLXJpZ2h0OiAyN3B4O1xufVxuLmZsZXhGb3JtUm93X19maWVsZHNDb2wgIHtcblx0QGluY2x1ZGUgZmxleCgxKTtcbn1cblxuLmZpZWxkc1JvdyAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZ3JpZHhnYXAoJGZsZXhGb3JtX3BhZC8yKTtcbn1cbi5maWVsZHNSb3ctLWNvbXByZXNzZWQgIHtcblx0bWF4LXdpZHRoOiA1MDBweDtcbn1cbi5maWVsZHNSb3ctLXR3b0NvbCAge1xuXHQ+ICogIHtcblx0XHR3aWR0aDogNTAlO1xuXHR9XG59XG4uZmllbGRzUm93LS10aHJlZUNvbCAge1xuXHQ+ICogIHtcblx0XHR3aWR0aDogMzMuMzMlO1xuXHR9XG59XG4uZmllbGRzUm93LS1mb3VyQ29sICB7XG5cdD4gKiAge1xuXHRcdHdpZHRoOiAyNSU7XG5cdH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGljb24gbGFiZWxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmljb25MYWJlbCAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXHRpICB7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdGNvbG9yOiAjQUM5RUE1O1xuXHR9XG5cdHNwYW4gIHtcblx0XHRAaW5jbHVkZSBmbGV4KDEpO1xuXHRcdHBhZGRpbmctbGVmdDogMTVweDtcblx0fVxufVxuXG4udXBsb2FkQmxvY2sgIHtcblx0bWF4LXdpZHRoOiAzOTBweDtcblx0YmFja2dyb3VuZDogI0Y1RjVGNTtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRwYWRkaW5nOiAyMHB4IDE1cHggMjBweCAyMHB4O1xufVxuXG4uaW5wdXRJbm5lckxhYmVsICB7XG5cdGNvbG9yOiAjQUFBQkFGO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gY29sbGFwc2VkIHJldXNhYmxlIGVsZW1lbnRzIFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uY29sbGFwc2VkX19kZWZhdWx0RWxlbWVudCAge1xuXHRkaXNwbGF5OiBub25lO1xuXHQuY29sbGFwc2VkICYgIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uY29sbGFwc2VkX19hbHRFbGVtZW50ICB7XG5cdC5jb2xsYXBzZWQgJiAge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHRvZ2dsZXJCYXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLnRvZ2dsZXJCYXIgIHtcblx0cGFkZGluZzogMTJweCAxN3B4O1xuXHRiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdCsgLnRvZ2dsZXJCYXIgIHtcblx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdH1cblx0Ji5jb2xsYXBzZWQgIHtcblx0XHQudG9nZ2xlckJhcl9fY29udGVudCAge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLnRvZ2dsZXJCYXJfX3RyaWdnZXIgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcdFxufVxuLnRvZ2dsZXJCYXJfX3RyaWdnZXJfX2FsbFRvZ2dsZUlucHV0ICB7XG5cdEBpbmNsdWRlIGZsZXgoMSk7XG59XG4udG9nZ2xlckJhcl9fdHJpZ2dlcl9faWNvbiAge1xuXHRjb2xvcjogJGJsdWU7XG5cdGZvbnQtc2l6ZTogMTFweDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRwYWRkaW5nOiA1cHg7XG59XG5cbi50b2dnbGVyQmFyX19jb250ZW50ICB7XG5cdHBhZGRpbmc6IDI0cHggMCAwO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gaW5wdXQgb3B0aW9ucyB0cmVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5pbnB1dE9wdGlvbnNUcmVlICB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcdFxuXHR1bCAge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0bWFyZ2luOiAwIDAgMCAzMHB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblx0bGkgKyBsaSwgXG5cdGxhYmVsICsgdWwge1x0XHRcblx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdH1cblx0PiBsaSAge1xuXHRcdD4gbGFiZWwgc3BhbiB7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdH1cblx0XHQ+IHVsICB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyNHB4O1xuXHRcdFx0PiBsaSAge1xuXHRcdFx0XHQ+IHVsICB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMThweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uY29sdW1uc0xpc3QgIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcdFxuXHRtYXJnaW46IDMwcHggMDtcblx0cGFkZGluZzogMDtcblx0PiBsaSAge1xuXHRcdG1hcmdpbi1ib3R0b206IDExcHg7XG5cdH1cbn1cblxuLmNvbHVtbnNMaXN0LS00ICB7XG5cdEBpbmNsdWRlIGNvbHVtbi1jb3VudCg0KTtcbn1cblxuLmNsb3NhYmxlQnV0dG9uICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdGJhY2tncm91bmQ6ICNFOUYwRjI7XG5cdGJvcmRlci1yYWRpdXM6IDVweDtcblx0cGFkZGluZzogOHB4IDE2cHg7XG5cdGNvbG9yOiAjNzU3ODdCO1xuXHRzcGFuICB7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcdFx0XG5cdFx0Zm9udC1zaXplOiAxMnB4O1x0XHRcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjlweDtcblx0fVxuXHRpICB7XG5cdFx0bWFyZ2luLWxlZnQ6IDdweDtcblx0XHRwYWRkaW5nOiAzcHggMDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1x0XHRcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdW5pdmVyc2FsIHJhZGlvL2NoZWNrYm94IHRleHQgc3R5bGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxubGFiZWwuY2hlY2tib3gtaW5wdXQsIFxubGFiZWwucmFkaW8taW5wdXQgIHtcblx0c3BhbiAge1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRjb2xvcjogIzc1Nzc3QTtcblx0fVx0XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25zaXZlIHNob3cgaGVscGVyIGNsYXNzZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuXG4ucmVzcG9uc2l2ZVNob3cgIHtcblx0ZGlzcGxheTogbm9uZTtcdFxufVxuLnJlc3BvbnNpdmVTaG93LS1tZFVwICB7XG5cdEBpbmNsdWRlIHJlc3BvbmQobWQtdXApICB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cbi5yZXNwb25zaXZlU2hvdy0tc21Eb3duICB7XG5cdEBpbmNsdWRlIHJlc3BvbmQoc20pICB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gaWNvbiBjb2wgY2VsbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uaWNvbkNvbENlbGwgIHtcblx0d2lkdGg6IDIwcHg7XG5cdC5pY29uLWVkaXQgIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAtMnB4O1xuXHR9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gbm90ZTogIHRoaXMgaXMgYW4gdXBkYXRlZCBtaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgICBcblxuQG1peGluIGV2ZW4tY29scyAge1xuICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgICAmLmNvbXBhY3QgIHtcbiAgICAgICAgPiAqICB7XG4gICAgICAgICAgICArICogIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnNwYWNlZC1vdXQgIHtcbiAgICAgID4gKiAge1xuICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNDVweDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuZGVmYXVsdC1zcGFjZWQgIHtcbiAgICAgID4gKiAge1xuICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuYm90dG9tLWFsaWduICB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcbiAgICB9XG4gICAgJi5ldmVuLWNvbHMtLXN0cmlwSW5uZXJNYXJnaW5zICB7XG4gICAgICA+ICogIHtcbiAgICAgICAgPiAqICB7XG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiAqICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgZXZlcnl0aGluZyBiZWxvdyB0aGlzIGlzIG5ld1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgIFxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHRyaWFuZ2xlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cblxuXG5AbWl4aW4gZ3JpZHhnYXAoJGdhcCkgIHtcbiAgICBtYXJnaW46IDAgJGdhcCotMTtcbiAgICA+ICogIHtcbiAgICAgICAgcGFkZGluZzogMCAkZ2FwO1xuICAgIH1cbn1cblxuXG5AbWl4aW4gaW5saW5lLWdyaWQtYmFzZSAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICA+ICogIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAgIFxuICB9XG59XG5AbWl4aW4gaW5saW5lLWdyaWQteCgkZ2FwKSAge1xuICBAaW5jbHVkZSB4bWFyZ2luKCRnYXAqLTEpO1xuICA+ICogIHtcbiAgICBAaW5jbHVkZSB4bWFyZ2luKCRnYXApO1xuICB9XG59XG5AbWl4aW4gaW5saW5lLWdyaWQteSgkZ2FwKSAge1xuICBAaW5jbHVkZSB5bWFyZ2luKCRnYXAqLTEpO1xuICA+ICogIHtcbiAgICBAaW5jbHVkZSB5bWFyZ2luKCRnYXApO1xuICB9XG59XG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC14eSgkZ2FwKSAge1xuICBtYXJnaW46ICRnYXAqLTE7XG4gID4gKiAge1xuICAgIG1hcmdpbjogJGdhcDtcbiAgfVxufVxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcIm1peGluczJcIjsiLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gbm90ZTogIHRoaXMgaXMgYW4gdXBkYXRlZCBtaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgICBcblxuQG1peGluIGV2ZW4tY29scyAge1xuICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgICAmLmNvbXBhY3QgIHtcbiAgICAgICAgPiAqICB7XG4gICAgICAgICAgICArICogIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnNwYWNlZC1vdXQgIHtcbiAgICAgID4gKiAge1xuICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNDVweDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuZGVmYXVsdC1zcGFjZWQgIHtcbiAgICAgID4gKiAge1xuICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuYm90dG9tLWFsaWduICB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcbiAgICB9XG4gICAgJi5ldmVuLWNvbHMtLXN0cmlwSW5uZXJNYXJnaW5zICB7XG4gICAgICA+ICogIHtcbiAgICAgICAgPiAqICB7XG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiAqICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgZXZlcnl0aGluZyBiZWxvdyB0aGlzIGlzIG5ld1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgIFxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHRyaWFuZ2xlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cblxuXG5AbWl4aW4gZ3JpZHhnYXAoJGdhcCkgIHtcbiAgICBtYXJnaW46IDAgJGdhcCotMTtcbiAgICA+ICogIHtcbiAgICAgICAgcGFkZGluZzogMCAkZ2FwO1xuICAgIH1cbn1cblxuXG5AbWl4aW4gaW5saW5lLWdyaWQtYmFzZSAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICA+ICogIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAgIFxuICB9XG59XG5AbWl4aW4gaW5saW5lLWdyaWQteCgkZ2FwKSAge1xuICBAaW5jbHVkZSB4bWFyZ2luKCRnYXAqLTEpO1xuICA+ICogIHtcbiAgICBAaW5jbHVkZSB4bWFyZ2luKCRnYXApO1xuICB9XG59XG5AbWl4aW4gaW5saW5lLWdyaWQteSgkZ2FwKSAge1xuICBAaW5jbHVkZSB5bWFyZ2luKCRnYXAqLTEpO1xuICA+ICogIHtcbiAgICBAaW5jbHVkZSB5bWFyZ2luKCRnYXApO1xuICB9XG59XG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC14eSgkZ2FwKSAge1xuICBtYXJnaW46ICRnYXAqLTE7XG4gID4gKiAge1xuICAgIG1hcmdpbjogJGdhcDtcbiAgfVxufVxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcIm1peGluczJcIjsiLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gbm90ZTogIHRoaXMgaXMgYW4gdXBkYXRlZCBtaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgICBcblxuQG1peGluIGV2ZW4tY29scyAge1xuICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgICAmLmNvbXBhY3QgIHtcbiAgICAgICAgPiAqICB7XG4gICAgICAgICAgICArICogIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnNwYWNlZC1vdXQgIHtcbiAgICAgID4gKiAge1xuICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNDVweDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuZGVmYXVsdC1zcGFjZWQgIHtcbiAgICAgID4gKiAge1xuICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuYm90dG9tLWFsaWduICB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcbiAgICB9XG4gICAgJi5ldmVuLWNvbHMtLXN0cmlwSW5uZXJNYXJnaW5zICB7XG4gICAgICA+ICogIHtcbiAgICAgICAgPiAqICB7XG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiAqICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgZXZlcnl0aGluZyBiZWxvdyB0aGlzIGlzIG5ld1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgIFxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHRyaWFuZ2xlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cblxuXG5AbWl4aW4gZ3JpZHhnYXAoJGdhcCkgIHtcbiAgICBtYXJnaW46IDAgJGdhcCotMTtcbiAgICA+ICogIHtcbiAgICAgICAgcGFkZGluZzogMCAkZ2FwO1xuICAgIH1cbn1cblxuXG5AbWl4aW4gaW5saW5lLWdyaWQtYmFzZSAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICA+ICogIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAgIFxuICB9XG59XG5AbWl4aW4gaW5saW5lLWdyaWQteCgkZ2FwKSAge1xuICBAaW5jbHVkZSB4bWFyZ2luKCRnYXAqLTEpO1xuICA+ICogIHtcbiAgICBAaW5jbHVkZSB4bWFyZ2luKCRnYXApO1xuICB9XG59XG5AbWl4aW4gaW5saW5lLWdyaWQteSgkZ2FwKSAge1xuICBAaW5jbHVkZSB5bWFyZ2luKCRnYXAqLTEpO1xuICA+ICogIHtcbiAgICBAaW5jbHVkZSB5bWFyZ2luKCRnYXApO1xuICB9XG59XG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC14eSgkZ2FwKSAge1xuICBtYXJnaW46ICRnYXAqLTE7XG4gID4gKiAge1xuICAgIG1hcmdpbjogJGdhcDtcbiAgfVxufVxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcIm1peGluczJcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGFkZGl0aW9uYWwgaGVscGVyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbi8vIGZpZWxkIHdpZHRoc1xuLm9wZW5GaWVsZFdpZHRoLS1tYXgxMDAgIHtcblx0bWF4LXdpZHRoOiAxMDAlOyAvLyBtYWtlIHN1cmUgaXQgaXMgc3RpbGwgZmxleGlibGUuLi5cbn1cbi5vcGVuRmllbGRXaWR0aC0tc21hbGwgIHtcblx0d2lkdGg6IDUycHg7XG59XG4ub3BlbkZpZWxkV2lkdGgtLW1lZGl1bSAge1xuXHR3aWR0aDogMTQ4cHg7XG59XG5cbi5vcGVuRmllbGRXaWR0aC0tcnBlICB7XG5cdHdpZHRoOiAyMDBweDtcbn1cblxuLy8gY2VsbCB3aWR0aHNcbi5jZWxsV2lkdGgtLXRyYWluaW5nTG9hZCAge1xuXHR3aWR0aDogMTMycHg7XG59IFxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdW5pcXVlIHN0eWxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cblxuLnNjb3JlTnVtICB7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm9wZW5GaWVsZC0tY2VudGVyZWQgIHtcblx0aW5wdXQgIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cbn1cblxuJHRsRmlsdGVycy14Z2FwOiAxNXB4O1xuJHRsRmlsdGVycy1YZWRnZUdhcDogMTVweDtcblxuLnRsRmlsdGVyc0hlYWRlciAge1xuXHRwYWRkaW5nOiAxNXB4ICR0bEZpbHRlcnMtWGVkZ2VHYXA7XG59XG5cbi50bEZpbHRlcnNIZWFkZXJNYWluICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHQ+ICogKyAqICB7XG5cdFx0cGFkZGluZy1sZWZ0OiAkdGxGaWx0ZXJzLXhnYXA7XG5cdH1cbn1cblxuLmZsVGFibGUgIHtcblx0dHIgIHtcblx0XHQ+ICogIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0KyAqICB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogJHRsRmlsdGVycy14Z2FwO1xuXHRcdFx0fVxuXHRcdFx0JjpmaXJzdC1jaGlsZCAge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6ICR0bEZpbHRlcnMtWGVkZ2VHYXA7XG5cdFx0XHR9XG5cdFx0XHQmOmxhc3QtY2hpbGQgIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogJHRsRmlsdGVycy1YZWRnZUdhcDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LnByb2NjZXNzQXJyb3cgIHtcdFx0XG5cdFx0bWFyZ2luLXJpZ2h0OiAkdGxGaWx0ZXJzLXhnYXAqLTE7XG5cdH1cbn1cbi5mbFRhYmxlQ29sV2lkdGggIHtcblx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG59XG5AaW5jbHVkZSByZXNwb25kKGxnKSAge1xuXHQuZmxUYWJsZUNvbFdpZHRoLS10aXRsZSAge1xuXHRcdHdpZHRoOiAzMDBweDtcblx0fVxuXHQuZmxUYWJsZUNvbFdpZHRoLS1zZXNzaW9uICB7XG5cdFx0d2lkdGg6IDMwMHB4O1xuXHR9XG59XG5cbi5mbFRhYmxlQ29sV2lkdGgtLWR1cmF0aW9uVGFyZ2V0ICB7XG5cdHdpZHRoOiBhdXRvO1xufVxuXG4uc21hbGxGaWVsZExhYmVsICB7XHRcblx0cGFkZGluZzogMCAwIDdweDtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRjb2xvcjogIzc1Nzg3Qjtcbn1cblxuXG4udGxGaWx0ZXJzSGVhZGVyU2lkZSAge1xuXHRAaW5jbHVkZSBmbGV4LWNvbHVtbjtcblx0QGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG59XG5cbi5udW1OYW1lICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRmb250LXNpemU6IDE4cHg7XG59XG4ubnVtTmFtZV9fbnVtICB7XG5cdG9wYWNpdHk6IDAuNDtcbn1cbi5udW1OYW1lX19uYW1lICB7XG5cdHBhZGRpbmctbGVmdDogMTVweDtcbn1cblxuLm51bU5hbWUtLWxpZ2h0ICB7XG5cdGNvbG9yOiAjNzU3NzdBO1xufVxuJG9wZW5GaWVsZE1lZEhlaWdodDogMzlweDtcbiRvcGVuRmllbGRUYWxsSGVpZ2h0OiA0NnB4O1xuLm9wZW5GaWVsZC0tbWVkaXVtICB7XG5cdGhlaWdodDogJG9wZW5GaWVsZE1lZEhlaWdodDtcbn1cblxuJHNlbGVjdEJhcmxoOiAyMXB4O1xuJHNlbGVjdEJhcnlwYWQ6ICgkb3BlbkZpZWxkTWVkSGVpZ2h0IC0gJHNlbGVjdEJhcmxoKS8yO1xuJHNlbGVjdEJhcnlwYWRCaWc6ICgkb3BlbkZpZWxkVGFsbEhlaWdodCAtICRzZWxlY3RCYXJsaCkvMjtcbi5zZWxlY3RCYXIgIHtcblx0YmFja2dyb3VuZDogIzk3NjhFQjtcblx0Y29sb3I6ICNmZmY7XG5cdGZvbnQtc2l6ZTogMTVweDtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRwYWRkaW5nOiAjeyRzZWxlY3RCYXJ5cGFkfSAxNXB4O1xuXHRsaW5lLWhlaWdodDogJHNlbGVjdEJhcmxoO1xuXHQmLnRhbGwgIHtcblx0XHRwYWRkaW5nOiAkc2VsZWN0QmFyeXBhZEJpZyAxNXB4O1xuXHR9XG5cdGkgIHtcblx0XHRkaXNwbGF5OiBub25lOyAvLyBvbmx5IHNob3cgdGhlIGNoZWNrbWFyayBpY29uIHdoZW4gXCJpc1NlbGVjdGVkXCIgY2xhc3MgaXMgcHJlc2VudC4uLi5cblx0XHRwYWRkaW5nLWxlZnQ6IDVweDtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdH1cblx0Ji5pc1NlbGVjdGVkICB7XG5cdFx0YmFja2dyb3VuZDogI0Y0RjRGNDtcblx0XHRjb2xvcjogI0M3Q0JDRTtcblx0XHRpICB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0fVxuXHR9XG59XG4uc3VibWVudV9fbnVtVGV4dFdyYXAgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Lm51bSAge1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Y29sb3I6ICM2QzZENkM7XG5cdFx0d2lkdGg6IDE1cHg7XG5cdFx0cGFkZGluZy1yaWdodDogNXB4O1xuXHR9XG5cdC50ZXh0ICB7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0fVxufVxuXG5cbi5jb250ZW50V2l0aFByb2Nlc3NBcnJvd1dyYXAgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0PiAqOmZpcnN0LWNoaWxkICB7XG5cdFx0QGluY2x1ZGUgZmxleCgxKTtcblx0fVxuXHQucHJvY2Nlc3NBcnJvdyAge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR3aWR0aDogNDBweDtcblx0XHRjb2xvcjogI0VGRjFGMjtcblx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0QGluY2x1ZGUgcmVzcG9uZChsZykgIHtcblx0XHRcdHdpZHRoOiAxMDBweDtcblx0XHR9XG5cdH1cbn1cbi5vcGVuRmllbGRTZWxlY3RfX3RyaWdnZXIgIHtcblx0Lmljb24tdGFyZ2V0ICB7XG5cdFx0Zm9udC1zaXplOiAxOXB4O1xuXHRcdGNvbG9yOiAjQUFBQkFGO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDhweDtcblx0fVx0XG59XG5cblxuLlRMLUR1cmF0aW9uIHtcbiAgaW5wdXQ6aW52YWxpZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0NDMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNGRkNDQ0M7XG4gIH1cbn1cblxuXG4uYmFja1RvTGluayAge1xuXHRtYXJnaW46ICAwIDAgMjBweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRjb2xvcjogIzk3NjhFQjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXI7XG5cblx0aSAge1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXHQudGV4dCAge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHR9XG59XG5cblxuLmNvbXBhY3RGb3JtU3RhY2sgIHtcblx0PiAqICB7XG5cdFx0KyAqICB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdH1cblx0fVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpbmxpbmUgb3ZlcmxheVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbi5pbmxpbmVPdmVybGF5V3JhcCAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pbmxpbmVPdmVybGF5ICB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMTA7XHRcblx0dG9wOiBjYWxjKDEwMCUgLSAxNXB4KTtcblx0bGVmdDogNTAlO1x0XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHR3aWR0aDogMzc3cHg7XG5cdG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG5cdHBhZGRpbmc6IDE1cHg7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNFRUVFRUU7XG5cdGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKCMwMDAwMDAsIDAuMTMpO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uaW5saW5lT3ZlcmxheV9fdHJpYW5nbGUgIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDNweDtcblx0bGVmdDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTAwJSk7XG5cdHdpZHRoOiAyOXB4O1xuXHRoZWlnaHQ6IDE3cHg7XG5cdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvb3ZlcmxheS10cmlhbmdsZS5wbmcpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG4uaW5saW5lT3ZlcmxheV9fY2xvc2UgIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDE1cHg7XG5cdHJpZ2h0OiAxNXB4O1xuXHRmb250LXNpemU6IDE3cHg7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuLmlubGluZU92ZXJsYXlfX3RpdGxlICB7XG5cdG1hcmdpbjogMCAwIDIwcHg7XG5cdHBhZGRpbmc6IDAgMzBweDtcblx0Zm9udC1zaXplOiAxOHB4O1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRjb2xvcjogIzc1Nzg3Qjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gZGxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmNoYXJ0LWRhdGUtaGVhZGVyICsgLmRsUm93ICB7XG5cdG1hcmdpbjogMTBweCAwIDIwcHg7XG59XG4uZGxSb3cgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuXHQrIC5jaGFydC1kYXRlLWhlYWRlciAge1xuXHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cdH1cblx0KyAuZGxSb3cgIHtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHR9XG59XG5cbi5kbEl0ZW0gIHtcblx0XG59XG4uZGxJdGVtX19sYWJlbCAge1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRjb2xvcjogIzc1Nzc3QTtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4uZGxJdGVtX19udW0gIHtcblx0Zm9udC13ZWlnaHQ6IDEwMDtcblx0Zm9udC1zaXplOiAzMHB4O1xuXHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXI7XG5cdC5zY29yZUNoYW5nZUljb24gIHsgICBcdFxuXHRcdGZvbnQtc2l6ZTogN3B4O1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0cGFkZGluZy1yaWdodDogOHB4O1xuXHR9XG59XG5cbi5tZW51LXBvaW50ZXIge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi53ZWVrbHlTY29yZUNoYW5nZUljb24gIHsgICBcdFxuXHRmb250LXNpemU6IDdweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZy1yaWdodDogNHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDRweDtcbn1cblxuLnByb2ZpbGVUTENoYW5nZUljb24gIHsgICBcdFxuXHRmb250LXNpemU6IDEwcHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHBhZGRpbmctcmlnaHQ6IDFweDtcblx0cGFkZGluZy1ib3R0b206IDNweDtcbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gbm90ZTogIHRoaXMgaXMgYW4gdXBkYXRlZCBtaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgICBcblxuQG1peGluIGV2ZW4tY29scyAge1xuICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgICAmLmNvbXBhY3QgIHtcbiAgICAgICAgPiAqICB7XG4gICAgICAgICAgICArICogIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLnNwYWNlZC1vdXQgIHtcbiAgICAgID4gKiAge1xuICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNDVweDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuZGVmYXVsdC1zcGFjZWQgIHtcbiAgICAgID4gKiAge1xuICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuYm90dG9tLWFsaWduICB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcbiAgICB9XG4gICAgJi5ldmVuLWNvbHMtLXN0cmlwSW5uZXJNYXJnaW5zICB7XG4gICAgICA+ICogIHtcbiAgICAgICAgPiAqICB7XG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiAqICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgZXZlcnl0aGluZyBiZWxvdyB0aGlzIGlzIG5ld1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgIFxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHRyaWFuZ2xlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cblxuXG5AbWl4aW4gZ3JpZHhnYXAoJGdhcCkgIHtcbiAgICBtYXJnaW46IDAgJGdhcCotMTtcbiAgICA+ICogIHtcbiAgICAgICAgcGFkZGluZzogMCAkZ2FwO1xuICAgIH1cbn1cblxuXG5AbWl4aW4gaW5saW5lLWdyaWQtYmFzZSAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICA+ICogIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICAgIFxuICB9XG59XG5AbWl4aW4gaW5saW5lLWdyaWQteCgkZ2FwKSAge1xuICBAaW5jbHVkZSB4bWFyZ2luKCRnYXAqLTEpO1xuICA+ICogIHtcbiAgICBAaW5jbHVkZSB4bWFyZ2luKCRnYXApO1xuICB9XG59XG5AbWl4aW4gaW5saW5lLWdyaWQteSgkZ2FwKSAge1xuICBAaW5jbHVkZSB5bWFyZ2luKCRnYXAqLTEpO1xuICA+ICogIHtcbiAgICBAaW5jbHVkZSB5bWFyZ2luKCRnYXApO1xuICB9XG59XG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC14eSgkZ2FwKSAge1xuICBtYXJnaW46ICRnYXAqLTE7XG4gID4gKiAge1xuICAgIG1hcmdpbjogJGdhcDtcbiAgfVxufVxuIiwiXG4ucmV2aWV3LWNvbnRhaW5lciB7XG4gICAgLnJldmlldy10YWJzICsgZGl2IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMGFmO1xuICAgIH1cblxuICAgIC5yZXZpZXctZnJhbWUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgXG4gICAgICAgIGZsZXg6IDAuOTU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjYzBjMGMwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJi5lcnJvciB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICMyMjI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpLmZhLmZhLXRyYXNoIHtcbiAgICAgICAgICAgIGNvbG9yOiAjYzBjMGMwO1xuICAgIFxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM5OTAwMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMThweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogIzBhZjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYmM7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgIzBhZjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWxbZm9yKj1cIktleXBvaW50c1wiXSxcbiAgICBsYWJlbFtmb3IqPVwiUmVwc1wiXSxcbiAgICBsYWJlbFtmb3IqPVwiQ29tcGVuc2F0aW9uc1wiXSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIDAgLTFweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAyNXB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICNhYmM7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBmb250YXdlc29tZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNzg5O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWxbZm9yKj1cIktleXBvaW50c1wiXTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxmMTkyJztcbiAgICB9XG4gICAgbGFiZWxbZm9yKj1cIlJlcHNcIl06YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjBjYic7XG4gICAgfVxuICAgIGxhYmVsW2Zvcio9XCJDb21wZW5zYXRpb25zXCJdOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYxZmUnO1xuICAgIH1cblxuICAgIC5jb21wcyB7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2NvcmVfZ3JlZW47XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2NvcmVfZ3JlZW47XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAgICAgJi5mb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNjb3JlX3JlZDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzY29yZV9yZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaGFyZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcHVycGxlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcHVycGxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmVkZ2Uge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYmM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjYWJjO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5hc3Nlc3NtZW50LWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cblxuICAmLm1vcmUge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgPmRpdiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgfVxuICB9XG5cbiAgJi5pbmZvLW9ubHkge1xuICAgIG1hcmdpbi10b3A6IDYwcHg7XG5cbiAgICA+Lmxpc3QtY29udGFpbmVyIHtcbiAgICAgID5kaXY6bm90KC5zY3JvbGwtY29udGFpbmVyKSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPi5iYW5uZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB0ZXh0LWluZGVudDogMTBweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M5YzljOTtcbiAgICB9XG4gIH1cblxuICA+Lmxpc3QtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIG1hcmdpbjogMzBweCAwO1xuXG4gICAgPmRpdjpub3QoLnNjcm9sbC1jb250YWluZXIpIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG5cbiAgICAgIC5saXN0LWluZm8ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDE0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAgICAgPmEge1xuICAgICAgICAgID5zcGFuIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3Rpb24ge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgICAgIG1pbi13aWR0aDogNjBweDtcbiAgICAgICAgICA+YnV0dG9uIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5oZWFkZXItcm93IHtcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgICBcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgPi5zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICBcbiAgICAgID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIC5saXN0LWluZm8ge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDE0MHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICAgICYuYWN0aW9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDYwcHg7XG4gICAgICAgICAgICA+YnV0dG9uIHtcbiAgICAgICAgICAgICAgbWluLWhlaWdodDogMzVweDtcbiAgICAgICAgICAgICAgbWF4LWhlaWdodDogMzVweDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPi5uby1kYXRhIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuXG4gIC5pbmZvLWNvbHVtbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICAgIG1pbi13aWR0aDogMjQwcHg7XG5cbiAgICA+LmluZm8tY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDhweDsgXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuXG4gICAgICA+LmJhbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgbWFyZ2luOiA4cHggMHB4OyBcbiAgICAgICAgbWluLWhlaWdodDogMzVweDsgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7XG4gICAgICB9XG5cbiAgICAgID5kaXY6bm90KC5iYW5uZXIpIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICA+ZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgPmRpdjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgIG1heC13aWR0aDogMTIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgJi5zdGF0ZS1pbmZvIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmluZm8tY29udGFpbmVyICsgLmluZm8tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxuICB9XG5cbiAgLm1lZGlhLWNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICB9XG5cbiAgLnZpZGVvLWNvbHVtbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgID52aWRlbyxcbiAgICA+Y2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLy8gQ2FwIGJ5IHZpZXdwb3J0IGhlaWdodCBzbyB0YWxsL3BvcnRyYWl0IHZpZGVvcyBzdGF5IGluc2lkZSB0aGUgdmlzaWJsZVxuICAgICAgLy8gYXJlYTsgYXV0byB3aWR0aC9oZWlnaHQgcHJlc2VydmVzIHRoZSBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvLlxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDE2MHB4KTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC52aWRlby1wbGF5LW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIC8vIExldCB0aGUgY2xpY2sgZmFsbCB0aHJvdWdoIHRvIHRoZSBjYW52YXMsIHdoaWNoIG93bnMgcGxheS9wYXVzZS5cbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmLmlzLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIGkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDg0cHg7XG4gICAgICAgIGhlaWdodDogODRweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kZXRhaWwtY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIC50YWJsZS1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLmRldGFpbC10YWJsZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgPmRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgICAgICYuaGVhZGVyIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pdGVtcyB7XG4gICAgICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RhZGFkYTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5leGVyY2lzZS10YWJsZSB7XG4gICAgICBtaW4td2lkdGg6IDcwMHB4O1xuICAgIH1cblxuICAgIC5leGVyY2lzZS1saXN0IHtcbiAgICAgICYuaXRlbXMge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDA7XG4gICAgICB9XG5cbiAgICAgID4ubmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoLjYpO1xuICAgICAgICBtaW4td2lkdGg6IDE2MHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG5cbiAgICAgID4uc3RhdHVzIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCguNCk7XG4gICAgICAgIG1pbi13aWR0aDogMTEwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgPi5yZWFzb25pbmcge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEuNCk7XG4gICAgICAgIG1pbi13aWR0aDogMzQwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgID4uYWN0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgPmJ1dHRvbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMzVweDtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnJlYXNvbi1lbnRyeSArIC5yZWFzb24tZW50cnkge1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGxpZ2h0X2dyZXk7XG4gICAgICB9XG5cbiAgICAgIC5yZWFzb24tc291cmNlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjA0ZW07XG4gICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgfVxuXG4gICAgICAucmVhc29uLXJlYXNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICB9XG5cbiAgICAgIC5yZWFzb24tbWV0YSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgfVxuXG4gICAgICAucmVhc29uLXdhcm5pbmcge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgICBjb2xvcjogZGFya2VuKCR5ZWxsb3csIDIyJSk7XG4gICAgICB9XG5cbiAgICAgIC5yZWFzb24tbXV0ZWQge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZWFzdXJlbWVudC1saXN0IHtcbiAgICAgICYuaGVhZGVyIHtcbiAgICAgICAgLm5hbWUgfiBkaXYge1xuICAgICAgICAgIG1pbi13aWR0aDogODBweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPi5uYW1lIHtcbiAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIC5uYW1lIH4gZGl2IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIH1cblxuICAgICAgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICBcbiAgICAgIGxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNjb3JlX2dyZWVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2NvcmVfZ3JlZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgbWluLXdpZHRoOiA4MHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICYuaW5hY3RpdmUge1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmluYWN0aXZlOm5vdCguZm91bmQpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzBjMGMwO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogI2MwYzBjMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZm91bmQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzY29yZV9yZWQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2NvcmVfcmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmV4ZXJjaXNlLXN0YXR1cyB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgPmRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgbWluLWhlaWdodDogNTJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MwYzBjMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RhZGFkYTtcblxuICAgICAgICAmLnBlbmRpbmcge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGI5NmRcbiAgICAgICAgfVxuXG4gICAgICAgIC50ZXh0IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAmLm1hbnVhbCB7IGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgICAgICAgJi5wZW5kaW5nIHsgY29sb3I6ICNlZmVmZWY7IH1cbiAgICAgICAgICAmLmNvbXBsZXRlIHsgY29sb3I6ICMyZDZiMWQ7IH1cbiAgICAgICAgICAmLmFib3J0ZWQgeyBjb2xvcjogIzJkMTgxODsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lYXN1cmVtZW50LXNhdmUge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgPmJ1dHRvbiB7XG4gICAgICAgIG1pbi13aWR0aDogMTMwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLy8gUHJvZ3JhbXMgcGFnZSBjYXJkIGdyaWQgKC8jL3Byb2dyYW1zLzphdGhsZXRlSWQpIC0gcmVwbGFjZXMgdGhlIGxlZ2FjeVxuLy8gLmNhdGFsb2ctaGlzdG9yeSB0YWJsZS4gVXNlcyByZWFsIGZsZXgvZ3JpZCByYXRoZXIgdGhhbiB0aGUgcm93LWNvbnRhaW5lciBtaXhpbnMuXG5cbiRwcm9ncmFtLWNhcmQtdGl0bGU6ICMxZjFmMjg7XG4kcHJvZ3JhbS1jYXJkLXRhZy1iZzogI2YyZjJmNDtcbiRwcm9ncmFtLWNhcmQtaGlzdG9yeS10aHVtYi1iZzogI2Q5ZDlkOTtcbiRwcm9ncmFtLWNhcmQtbm90aWNlLWJnOiAjZmRmOGVjO1xuJHByb2dyYW0tY2FyZC1ub3RpY2UtYm9yZGVyOiAjZjJlM2JkO1xuJHByb2dyYW0tY2FyZC1jaGlwLWJnOiAjZjJmMmY0O1xuJHByb2dyYW0tY2FyZC1jaGlwLW9mZjogI2M0YzRjODtcblxuLy8gRGVsaWJlcmF0ZWx5IG5vdCAud2hpdGVib2FyZC8uY29sdW1uLWNvbnRhaW5lciAtIC53aGl0ZWJvYXJkIGZvcmNlcyBtaW4td2lkdGg6IDY0MHB4LFxuLy8gd2hpY2ggd291bGQgZGVmZWF0IHRoZSBncmlkJ3MgbW9iaWxlIHJlZmxvdy5cbi8vIFBhaW50cyB0aGUgcGFnZSBiYWNrZ3JvdW5kIGVkZ2UgdG8gZWRnZSBhbmQgY2VudGVycyBpdHMgc2luZ2xlIGNoaWxkLCBzbyB0aGUgY2F0YWxvZ1xuLy8gYW5kIHByb2dyYW0gZGV0YWlsIHBhbmVzIGNhbiBjYXAgdGhlaXIgd2lkdGggd2l0aG91dCBsZWF2aW5nIGEgZ3JleSBjb2x1bW4gc3RyYW5kZWRcbi8vIG9uIHRoZSB3aGl0ZSAudmlldy1sYXlvdXQuIE5vIGVmZmVjdCBvbiB0aGUgY2FyZCBncmlkLCB3aGljaCBoYXMgbm8gbWF4LXdpZHRoLlxuLnByb2dyYW1zLXBhZ2UtaG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG59XG5cbi5wcm9ncmFtcy1wYWdlIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDI0cHggMzJweCA0OHB4O1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICAvLyBOZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlIH1cbiAgLy8gRG8gbm90IHNldCBoZWlnaHQ6IGF1dG8gaGVyZSAtIGl0IG91dC1zcGVjaWZpZXMgY29tcG9uZW50IGhlaWdodCBsb2Nrcy5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXJkLXRpdGxlO1xuICB9XG5cbiAgLy8gRXZlcnkgY29udHJvbCBvbiB0aGlzIHBhZ2Ugc3RhbmRzIDQwcHguIFRoZSBnbG9iYWwgYnV0dG9uIHsgbG9jay1oZWlnaHQoNTBweCkgfVxuICAvLyBpbiBfYmFzZS5zY3NzIHNldHMgYGhlaWdodGAsIHdoaWNoIHRoZSBgLnByb2dyYW1zLXBhZ2UgYnV0dG9uYCByZXNldCBhYm92ZSBkb2VzXG4gIC8vIE5PVCBjbGVhciAoaXQgb25seSBkcm9wcyBtaW4taGVpZ2h0IC8gbWF4LWhlaWdodCksIHNvIGVhY2ggb2YgdGhlc2UgbmVlZHMgdGhlXG4gIC8vIGhlaWdodCBzdGF0ZWQgb3V0cmlnaHQgLSBwYWRkaW5nIGFsb25lIG5ldmVyIHdpbnMgYWdhaW5zdCBpdC5cbiAgJl9fY2F0YWxvZy1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAxOHB4O1xuICAgIC8vIFJlYWRzIGFzIGFuIG91dGxpbmUgYnV0dG9uIGxpZnRlZCBvZmYgdGhlIHBhZ2UgcmF0aGVyIHRoYW4gYSB3aGl0ZSBjYXJkIG9uIGdyZXkuXG4gICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsdWU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gICZfX3RhYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRibHVlO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBjb2xvcjogJGJsdWU7XG4gICAgfVxuICB9XG5cbiAgJl9fdGFiLWNvdW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMjJweDtcbiAgICBwYWRkaW5nOiAwIDZweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1jYXJkLXRhZy1iZztcbiAgICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fdGFiLS1hY3RpdmUgJl9fdGFiLWNvdW50IHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgfVxuXG4gICZfX25vdGljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWNhcmQtbm90aWNlLWJnO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwcm9ncmFtLWNhcmQtbm90aWNlLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmX19ub3RpY2UtaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG5cbiAgICAvLyBPcHRpY2FsIGFsaWdubWVudCBhZ2FpbnN0IHRoZSB0ZXh0LCBzZXQgYnkgZXllIC0gY2VudGVyaW5nIHRoZSBib3hlcyBzaXRzXG4gICAgLy8gdGhlIGdseXBoIGxvdyBhZ2FpbnN0IHRoZSBjYXAgaGVpZ2h0IG9mIHRoZSAxNi8yMCBsYWJlbC5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICB9XG5cbiAgJl9fbm90aWNlLXRleHQge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRhbWJlcjtcbiAgfVxuXG4gICZfX25vdGljZS1jbG9zZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC8vIFdpdGhvdXQgdGhpcyBpdCBpbmhlcml0cyB0aGUgZ2xvYmFsIDUwcHggYW5kIG92ZXJmbG93cyB0aGUgNDRweCBub3RpY2UgYmFyLlxuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRhbWJlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMzYxcHgpO1xuICAgIGdhcDogMjRweDtcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIH1cblxuICAmX19za2VsZXRvbi1ncmlkIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDk2cHggMjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19lbXB0eS10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM0ZjRmNGY7XG4gIH1cblxuICAmX19lbXB0eS1kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2VtcHR5IC5wcm9ncmFtcy1wYWdlX19jYXRhbG9nLWJ0biB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgfVxuXG4gICZfX2hpc3RvcnktdGFibGUtd3JhcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gIH1cblxuICAmX19oaXN0b3J5LXRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDY0MHB4O1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgfVxuXG4gICZfX2hpc3RvcnktdGgge1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAmLS1uYW1lIHtcbiAgICAgIHdpZHRoOiAzOCU7XG4gICAgfVxuXG4gICAgJi0tZGF0ZSB7XG4gICAgICB3aWR0aDogMTYlO1xuICAgIH1cblxuICAgICYtLWNyZWF0ZWQge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICB9XG4gIH1cblxuICAmX19oaXN0b3J5LXNvcnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gICAgfVxuICB9XG5cbiAgLy8gRmlnbWEgc29ydCBnbHlwaDogZG93biBhcnJvdyAobGVmdCkgKyB1cCBhcnJvdyAocmlnaHQpLiBUaGUgYXJyb3cgbWF0Y2hpbmdcbiAgLy8gdGhlIGFjdGl2ZSBzb3J0IGRpcmVjdGlvbiB0dXJucyBwdXJwbGU7IGJvdGggc3RheSBncmV5IG90aGVyd2lzZS5cbiAgJl9faGlzdG9yeS1zb3J0LWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcblxuICAgIHBhdGgge1xuICAgICAgZmlsbDogJGJsYWNrLTYwMDtcbiAgICB9XG5cbiAgICAmLS1hc2MgLnByb2dyYW1zLXBhZ2VfX2hpc3Rvcnktc29ydC11cCxcbiAgICAmLS1kZXNjIC5wcm9ncmFtcy1wYWdlX19oaXN0b3J5LXNvcnQtZG93biB7XG4gICAgICBmaWxsOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAmX19oaXN0b3J5LXJvdyB7XG4gICAgaGVpZ2h0OiA3MnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAmX19oaXN0b3J5LXRkIHtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICYtLW5hbWUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJi0tZGF0ZSB7XG4gICAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB9XG5cbiAgICAmLS1jcmVhdGVkIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdyZXkgdW50aWwgdGhlIHByb2dyYW0ncyBwaWN0dXJlIGFycml2ZXMsIGFuZCBmb3IgYSBwcm9ncmFtIHRoYXQgaGFzIG5vbmUuXG4gICZfX2hpc3RvcnktdGh1bWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2FyZC1oaXN0b3J5LXRodW1iLWJnO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBUaGUgbGFzdCBleGVyY2lzZSdzIHBvc3RlciBmcmFtZSwgY3JvcHBlZCB0byB0aGUgc3F1YXJlLlxuICAmX19oaXN0b3J5LXRodW1iLWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG5cbiAgJl9faGlzdG9yeS1za2VsZXRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgfVxuXG4gICZfX2hpc3Rvcnktc2tlbGV0b24tcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9faGlzdG9yeS1za2VsZXRvbi10aHVtYiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gICZfX2hpc3RvcnktbmFtZSB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9faGlzdG9yeS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICAmX19oaXN0b3J5LWdlbnJlIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19oaXN0b3J5LWZvb3RlciB7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG5cbiAgICAvLyBUaGUgbW9iaWxlIGxpc3QgaXMgYSBzdGFjayBvZiBzZXBhcmF0ZSBjYXJkcywgc28gdGhlIGNvdW50IGxpbmUgZmxvYXRzIGJlbmVhdGhcbiAgICAvLyB0aGVtIGluc3RlYWQgb2YgY2xvc2luZyBvZmYgYSBib3JkZXJlZCB0YWJsZSBib3guXG4gICAgJi0tY2FyZHMge1xuICAgICAgcGFkZGluZzogNHB4IDRweCAwO1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ29tcGxldGVkIHRhYiwgbW9iaWxlLiBSZW5kZXJlZCBvbmx5IHVuZGVyIG5nLWlmPVwidm0uaXNNb2JpbGVcIiAoPD0gNzY4cHgpLFxuICAvLyBzbyB0aGVzZSBydWxlcyBkZWxpYmVyYXRlbHkgbGl2ZSBvdXRzaWRlIGEgbWVkaWEgcXVlcnkuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19oaXN0b3J5LWNhcmRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9faGlzdG9yeS1zb3J0YmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gTG9jYWxpemVkIGxhYmVscyAoXCJTdGFydCBEYXR1bVwiIC8gXCJFbmRkYXR1bVwiKSBjYW4gb3V0Z3JvdyBhIDMyMHB4IHZpZXdwb3J0O1xuICAgIC8vIHNjcm9sbCB0aGUgY2hpcHMgcmF0aGVyIHRoYW4gd3JhcHBpbmcgdGhlbSBvbnRvIGEgc2Vjb25kIHJvdy5cbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICB9XG5cbiAgJl9faGlzdG9yeS1jaGlwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gU2hhcGUgZGVsaWJlcmF0ZWx5IG1pcnJvcnMgLnByb2dyYW1zLXBhZ2VfX3RhYiBhYm92ZSAtIHNhbWUgNnB4IHJhZGl1cywgYm9yZGVyXG4gICAgLy8gYW5kIHR5cGUgLSBzbyB0aGUgc29ydCByb3cgcmVhZHMgYXMgYSBzaWJsaW5nIG9mIHRoZSBDdXJyZW50L0NvbXBsZXRlZCB0YWJzXG4gICAgLy8gcmF0aGVyIHRoYW4gYXMgYSBkaWZmZXJlbnQga2luZCBvZiBjb250cm9sLlxuICAgIC8vIFRoZSBnbG9iYWwgYnV0dG9uIHsgbG9jay1oZWlnaHQoNTBweCkgfSBzZXRzIGBoZWlnaHRgLCB3aGljaCB0aGVcbiAgICAvLyBgLnByb2dyYW1zLXBhZ2UgYnV0dG9uYCByZXNldCBkb2VzIE5PVCBuZXV0cmFsaXplIChpdCBvbmx5IGNsZWFycyBtaW4taGVpZ2h0IC9cbiAgICAvLyBtYXgtaGVpZ2h0KS4gV2l0aG91dCBhbiBleHBsaWNpdCBoZWlnaHQgdGhlc2UgcmVuZGVyIDUwcHggdGFsbC5cbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyBNYXRjaGVzIHRoZSBhY3RpdmUgdHJlYXRtZW50IG9uIC5wcm9ncmFtcy1wYWdlX190YWIgYWJvdmUuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gIH1cblxuICAmX19oaXN0b3J5LWNoaXAtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgJl9faGlzdG9yeS1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDQpO1xuICB9XG5cbiAgJl9faGlzdG9yeS1jYXJkLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbiAgICAvLyBXaXRob3V0IHRoaXMgdGhlIGZsZXggaXRlbSByZWZ1c2VzIHRvIHNocmluayBhbmQgbG9uZyB0aXRsZXMgcHVzaCB0aGUgY2FyZCB3aWRlLlxuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFR3byBsaW5lcyBtYXgsIHNvIGEgNjAtY2hhcmFjdGVyIHByb2dyYW0gbmFtZSBjYW5ub3QgbWFrZSBvbmUgY2FyZCB0aHJlZSB0aW1lc1xuICAvLyB0aGUgaGVpZ2h0IG9mIGl0cyBuZWlnaGJvdXJzLlxuICAmX19oaXN0b3J5LWNhcmQgJl9faGlzdG9yeS10aXRsZSB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgbWF4LWhlaWdodDogNDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9faGlzdG9yeS1kYXRlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHggMjRweDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cblxuICAmX19oaXN0b3J5LWRhdGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBUaGUgPHRoZWFkPiBpcyBnb25lIG9uIG1vYmlsZSwgc28gZWFjaCB2YWx1ZSBjYXJyaWVzIGl0cyBvd24gbGFiZWwuXG4gICZfX2hpc3RvcnktZGF0ZS1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19oaXN0b3J5LWRhdGUtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXJkLXRpdGxlO1xuICB9XG59XG5cbi5wcm9ncmFtLWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzYxcHg7XG4gIC8vIDM0OCBwZXIgRmlnbWEuIFRoZSBib2R5IGdldHMgMTk0IG9mIHRoYXQgKDM0OCAtIDIgYm9yZGVyIC0gMTUyIG1lZGlhKSwgd2hpY2ggdGhlXG4gIC8vIHRhbGxlc3QgdmFyaWFudCAtIHVuc2NoZWR1bGVkLCAzIG1ldGEgcm93cyAtIHNwZW5kcyBhcyAyNCBwYWRkaW5nICsgMjAgdGl0bGUgK1xuICAvLyAyMCB0YWdzICsgNTYgbWV0YSArIDQ4IGFjdGlvbnMgKyAyNCBnYXBzID0gMTkyLiBUcmltbWluZyBhbnkgb2YgdGhlIHJvd3MgYmVsb3dcbiAgLy8gaXMgd2hhdCBrZWVwcyBfX21ldGEgZnJvbSBzaHJpbmtpbmcgYW5kIGNsaXBwaW5nIGl0cyBsYXN0IGxpbmUuXG4gIGhlaWdodDogMzQ4cHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgxNiwgMjQsIDQwLCAwLjA0KTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgJl9fbWVkaWEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IDE1MnB4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG4gIH1cblxuICAvLyBUaGUgbGFzdCBleGVyY2lzZSdzIHBvc3RlciBmcmFtZSwgY3JvcHBlZCB0byBmaWxsIHRoZSB0aWxlLiBUaGUgcmFkaXVzIGlzIHJlcGVhdGVkXG4gIC8vIGhlcmUgYmVjYXVzZSBfX21lZGlhIGNhbm5vdCBjbGlwOiBpdHMgb3ZlcmZsb3cgc3RheXMgdmlzaWJsZSBmb3IgdGhlIG9wdGlvbnMgbWVudS5cbiAgJl9fbWVkaWEtaW1nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwO1xuICB9XG5cbiAgJl9fYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEycHg7XG4gICAgbGVmdDogMTJweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmMmVkZmM7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNTMzZDgyO1xuICB9XG5cbiAgJl9fbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTJweDtcbiAgICByaWdodDogMTJweDtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgJl9fbWVudS1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXJkLXRpdGxlO1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2FyZC10YWctYmc7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudS1saXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIG1pbi13aWR0aDogMTgwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDE2LCAyNCwgNDAsIDAuMTIpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAjZjA0NDM4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmVmM2YyO1xuICAgICAgY29sb3I6ICNmMDQ0Mzg7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudS1pdGVtLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWF4LWhlaWdodDogNDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2FyZC10aXRsZTtcbiAgfVxuXG4gICZfX3RhZ3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX3RhZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogNHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1jYXJkLXRhZy1iZztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJl9fdGFnLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICYtLWltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB9XG4gIH1cblxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgLy8gNHB4IGdhcCAtPiAyMHB4IHJvdyBwaXRjaCwgbWF0Y2hpbmcgdGhlIEZpZ21hIG1ldGEgc3RhY2suXG4gICAgZ2FwOiA0cHg7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fbWV0YS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyBQcmFjdGl0aW9uZXIgbmFtZXMgY29tZSBmcm9tIHRoZSBBUEkgYW5kIHJ1biB0byBhbnkgbGVuZ3RoLCBzbyB0aGUgbmFtZSBpcyB0aGUgcGFydFxuICAvLyB0aGF0IGdpdmVzOiBpdCB0cnVuY2F0ZXMgKGZ1bGwgdGV4dCBzdGF5cyBpbiB0aGUgdGl0bGUgYXR0cmlidXRlKSByYXRoZXIgdGhhbiBwdXNoaW5nXG4gIC8vIHRoZSBhc3NpZ25tZW50IGRhdGUgb2ZmIHRoZSBjYXJkIG9yIHdyYXBwaW5nIHRoZSByb3cgYW5kIGNsaXBwaW5nIHRoZSByb3dzIHVuZGVyIGl0LlxuICAmX19tZXRhLW5hbWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19tZXRhLWRhdGUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19tZXRhLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG5cbiAgICAmLS1pbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTRweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuXG4gICAgLy8gSW5saW5lIFNWRyAocGVyc29uIGdseXBoIHNoYXJlZCB3aXRoIHRoZSBuYXYgYmFyKSBzaXRzIG9uIHRoZSBzYW1lIDE0cHggcmFpbFxuICAgIC8vIGFzIHRoZSBpbWFnZSBpY29ucyBhYm92ZS5cbiAgICAmLS1zdmcge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogMTRweDtcblxuICAgICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbWV0YS1kb3Qge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbjogMCAtMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2FyZC1jaGlwLW9mZjtcbiAgfVxuXG4gICZfX3NjaGVkdWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgfVxuXG4gICZfX3NjaGVkdWxlLWxhYmVsIHtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gIH1cblxuICAmX19kYXlzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMnB4O1xuICB9XG5cbiAgJl9fZGF5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1jYXJkLWNoaXAtYmc7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXJkLWNoaXAtb2ZmO1xuXG4gICAgJi0tb24ge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBjb2xvcjogJHB1cnBsZS05MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDRweDtcbiAgfVxuXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZ2FwOiA4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweCAwIDEycHg7XG4gICAgYmFja2dyb3VuZDogJGJsdWU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsdWU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC45O1xuICAgIH1cblxuICAgICYtLWdob3N0IHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogJGJsdWU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jdGEtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIH1cblxuICAvLyBTdGFuZHMgaW4gZm9yIF9fY3RhIHdoZW4gYSBtZW1iZXIgY2Fubm90IHNjaGVkdWxlIHRoZSBwcm9ncmFtIHRoZW1zZWx2ZXMuIFNhbWUgNDRweFxuICAvLyBzbG90LCBzbyB0aGUgY2FyZCdzIGhlaWdodCBidWRnZXQgYWJvdmUgc3RpbGwgaG9sZHM7IHRoZSB0ZXh0IHdyYXBzIHRvIHR3byBsaW5lcy5cbiAgJl9fbm90aWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICRhbWJlci01MDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYW1iZXItMTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gICZfX25vdGljZS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX25vdGljZS10ZXh0IHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJGFtYmVyO1xuICB9XG5cbiAgJi0tc2tlbGV0b24ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLnByb2dyYW0tY2FyZF9fbWVkaWEge1xuICAgICAgYmFja2dyb3VuZDogI2VjZWNlZjtcbiAgICAgIGFuaW1hdGlvbjogaG9tZS1za2VsZXRvbi1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLXRpdGxlIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDcyJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi10YWcge1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogNzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1tZXRhIHtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDU4JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi1jdGEge1xuICAgIGhlaWdodDogNDRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAucHJvZ3JhbXMtcGFnZSB7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDQwcHg7XG5cbiAgICAmX19ncmlkIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMzYxcHgpO1xuICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnByb2dyYW1zLXBhZ2Uge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAmX19jYXRhbG9nLWJ0biB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBCb3RoIHRhYnMgc3RheSBvbiBvbmUgcm93LiBUaGV5IHNoYXJlIHRoZSB3aWR0aCBhbmQgc2hyaW5rIHRoZWlyIG93biBsYWJlbHNcbiAgICAvLyByYXRoZXIgdGhhbiB3cmFwcGluZyB0aGUgc2Vjb25kIHRhYiBvbnRvIGEgbGluZSBvZiBpdHMgb3duLlxuICAgICZfX3RhYnMge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBnYXA6IDhweDtcbiAgICB9XG5cbiAgICAmX190YWIge1xuICAgICAgLy8gZmxleC1iYXNpczogYXV0byBzbyB0aGUgbG9uZ2VyIGxhYmVsIChcIkNvbXBsZXRlZCBQcm9ncmFtc1wiKSBrZWVwcyBhXG4gICAgICAvLyBwcm9wb3J0aW9uYWxseSB3aWRlciBzaGFyZSBpbnN0ZWFkIG9mIGJlaW5nIGZvcmNlZCBpbnRvIGFuIGVxdWFsIGhhbGYuXG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuXG4gICAgLy8gVGhlIGxhYmVsIGlzIHdoYXQgZ2l2ZXM7IHRoZSBjb3VudCBiYWRnZSBuZXZlciBzaHJpbmtzLiBBdCAzNzVweCBib3RoIGxhYmVsc1xuICAgIC8vIGZpdCBvdXRyaWdodCwgYW5kIGJlbG93IHRoYXQgdGhleSBlbGxpcHNpcyBpbnN0ZWFkIG9mIHB1c2hpbmcgdGhlIHJvdyB3aWRlLlxuICAgICZfX3RhYi1sYWJlbCB7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX3RhYi1jb3VudCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cblxuICAgICZfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNjFweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDU2cHggMTZweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUb2FzdCAodGVtcGxhdGVzL3Byb2dyYW1fY2FyZHMuaHRtbCAtPiBQcm9ncmFtQ29udHJvbGxlci5fc2hvd1RvYXN0KS5cbi8vIFNhbWUgYmFyIGFzIHRoZSBwcm9maWxlIHNhdmUgdG9hc3QgKC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0KTogNDRweCwgIzM1MzU0Yixcbi8vIDRweCBjb3JuZXJzLCAzMnB4IGdhcHMsIHNhbWUgY2hlY2sgYW5kIGNsb3NlIGljb25zIC0gdGhlIGNoZWNrIG9ubHkgb24gdGhlXG4vLyBzY2hlZHVsZS1jb25maXJtYXRpb24gdmFyaWFudC4gVGhlIGFuY2hvcmluZyBkaWZmZXJzOiB0aGF0IG9uZSBoYW5ncyBvZmYgdGhlXG4vLyBwcm9maWxlIGNhcmQsIHRoaXMgb25lIGlzIGZpeGVkIHRvIHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0IHNvXG4vLyAucHJvZ3JhbXMtcGFnZSdzIG93biBzY3JvbGwgY29udGFpbmVyLCB3aGljaCB0aGUgZ3JpZCBsaXZlcyBpbiwgY2Fubm90IGNhcnJ5XG4vLyBpdCBvZmYgc2NyZWVuLlxuLy9cbi8vIEhvcml6b250YWxseSBpdCBpcyBjZW50cmVkIG9uIHRoZSBjb250ZW50IGNvbHVtbiByYXRoZXIgdGhhbiB0aGUgdmlld3BvcnQsIHNvXG4vLyBpdCBsaW5lcyB1cCB3aXRoIHRoZSBwYWdlIGJvZHkgYW5kIHRoZSBzaXRlIGZvb3RlciAodmlld3MvcHJvZ3JhbXMuaHRtbCAtPlxuLy8gLmZvb3Rlci1jb250ZW50LCB3aGljaCB0aGUgc2lkZWJhciBydWxlIGluIF9hdGhsZXRlX3NpZGViYXIuc2NzcyBpbmRlbnRzIGJ5IHRoZVxuLy8gcmFpbCB3aWR0aCkuIHBvc2l0aW9uOiBmaXhlZCByZXNvbHZlcyBhZ2FpbnN0IHRoZSB2aWV3cG9ydCwgc28gdGhlIHJhaWwgd2lkdGhcbi8vIGhhcyB0byBiZSBhZGRlZCBiYWNrIGJ5IGhhbmQ7IHRoZSB0d28gc2NvcGVkIHJ1bGVzIGJlbG93IGRvIHRoYXQgdXNpbmcgdGhlIHNhbWVcbi8vIDpoYXMoKSBjb25kaXRpb25zIHRoYXQgZHJpdmUgdGhlIGNvbnRlbnQgbWFyZ2luLCBzbyBwYWdlcyB3aXRob3V0IGEgcmFpbCBhbmRcbi8vIHRoZSBjb2xsYXBzZWQgcmFpbCBib3RoIHN0YXkgY29ycmVjdC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5wcm9ncmFtcy10b2FzdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAzMnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLy8gT3ZlciB0aGUgcGFnZSBhbmQgaXRzIHN0aWNreSBoZWFkZXI7IGJlbG93IC5tb2RhbC12aWV3ICgxMDAwKSwgd2hpY2ggaXMgZ29uZVxuICAvLyBieSB0aGUgdGltZSB0aGlzIHNob3dzIGJ1dCBtdXN0IHN0aWxsIHdpbiBpZiB0aGUgdHdvIGV2ZXIgb3ZlcmxhcC5cbiAgei1pbmRleDogOTAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMzJweDtcbiAgLy8gRml4ZWQgNDRweCwgcGVyIHRoZSBkZXNpZ24uIFRoZSBtZXNzYWdlIGVsbGlwc2lzZXMgcmF0aGVyIHRoYW4gd3JhcHBpbmcsIHNvXG4gIC8vIGEgbG9uZyBwcm9ncmFtIG5hbWUgY2Fubm90IGdyb3cgdGhlIGJhciBpbnRvIGEgc2Vjb25kIGxpbmUuXG4gIGhlaWdodDogNDRweDtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgcGFkZGluZzogOHB4IDhweCA4cHggMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiAkc2lkZWJhci10aXRsZTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAyNCwgNDAsIDAuMjQpO1xufVxuXG4vLyBSYWlsIHByZXNlbnQ6IHNoaWZ0IHRoZSBjZW50cmUgcmlnaHQgYnkgaGFsZiB0aGUgcmFpbCwgYW5kIHRha2UgdGhlIHJhaWwgb3V0IG9mXG4vLyB0aGUgd2lkdGggY2FwIHNvIGEgbG9uZyBwcm9ncmFtIG5hbWUgY2Fubm90IHJ1biBvZmYgdGhlIHJpZ2h0IGVkZ2UuXG4ubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIC5wcm9ncmFtcy10b2FzdCB7XG4gIGxlZnQ6IGNhbGMoNTAlICsgI3skYXRobGV0ZS1zaWRlYmFyLXdpZHRofSAvIDIpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRhdGhsZXRlLXNpZGViYXItd2lkdGh9IC0gMzJweCk7XG59XG5cbi8vIENvbGxhcHNlZCByYWlsLiBXaW5zIG92ZXIgdGhlIHJ1bGUgYWJvdmUgb24gc3BlY2lmaWNpdHkgYWxvbmUgKG9uZSBtb3JlIGNsYXNzXG4vLyBpbnNpZGUgdGhlIDpoYXMoKSksIG1hdGNoaW5nIGhvdyB0aGUgbWFyZ2luLWxlZnQgcGFpciBpbiBfYXRobGV0ZV9zaWRlYmFyLnNjc3Ncbi8vIGlzIGxheWVyZWQuXG4ubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSAucHJvZ3JhbXMtdG9hc3Qge1xuICBsZWZ0OiBjYWxjKDUwJSArICN7JGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGh9IC8gMik7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGh9IC0gMzJweCk7XG59XG5cbi5wcm9ncmFtcy10b2FzdCB7XG5cbiAgLy8gVGhlIDMycHggZmxleCBnYXAgaXMgdGhlIHNwYWNpbmcgYmV0d2VlbiB0aGUgbWVzc2FnZSBhbmQgdGhlIGNsb3NlIGJ1dHRvbjtcbiAgLy8gdGhlIGNoZWNrIHNpdHMgdGlnaHQgYWdhaW5zdCBpdHMgb3duIG1lc3NhZ2UgaW5zdGVhZCwgc28gaXQgcHVsbHMgdGhhdCBnYXBcbiAgLy8gYmFjayBkb3duIHRvIDEycHggKDE2cHggb24gbW9iaWxlLCB3aGVyZSB0aGUgYmFzZSBnYXAgaXMgMTZweCkuXG4gICZfX2NoZWNrIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4O1xuICB9XG5cbiAgJl9fbWVzc2FnZSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG5cbiAgLy8gU2l0cyBpbnNpZGUgLnByb2dyYW1zLXBhZ2UsIHNvIHRoZSBlbGVtZW50LWxldmVsIGJ1dHRvbiBjaHJvbWUgKGxvY2staGVpZ2h0XG4gIC8vIDUwcHgsIG1pbi13aWR0aCAxMTBweCwgYm9yZGVyLCB1cHBlcmNhc2UpIGlzIGFscmVhZHkgaGFsZi1uZXV0cmFsaXplZCB0aGVyZTtcbiAgLy8gdGhlIHJlc3QgaXMgdW5kb25lIGhlcmUuXG4gICZfX2Nsb3NlIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9ncmFtcy10b2FzdCB7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDI0cHgpO1xuICAgIGdhcDogMTZweDtcblxuICAgICZfX2NoZWNrIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgcmFpbCBnb2VzIG9mZi1jYW52YXMgaGVyZSBhbmQgdGhlIGNvbnRlbnQgc3BhbnMgdGhlIGZ1bGwgd2lkdGgsIHNvIHRoZVxuICAvLyB0b2FzdCBpcyBjZW50cmVkIG9uIHRoZSB2aWV3cG9ydCBhZ2Fpbi4gQm90aCBzY29wZWQgc2VsZWN0b3JzIGFyZSByZXBlYXRlZFxuICAvLyBiZWNhdXNlIGVhY2ggb3V0LXNwZWNpZmllcyBhIGJhcmUgLnByb2dyYW1zLXRvYXN0LlxuICAubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIC5wcm9ncmFtcy10b2FzdCxcbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkgLnByb2dyYW1zLXRvYXN0IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZWxldGUgY29uZmlybWF0aW9uICh0ZW1wbGF0ZXMvbW9kYWxfcHJvZ3JhbV9kZWxldGUuaHRtbCwgb3BlbmVkIHZpYVxuLy8gTW9kYWxTZXJ2aWNlLm9wZW4gKyBDb25maXJtQ29udHJvbGxlciBmcm9tXG4vLyBQcm9ncmFtQ29udHJvbGxlci5kZWxldGVBdGhsZXRlUHJvZ3JhbSkuXG4vL1xuLy8gT3duIHJvb3QgY2xhc3MgcmF0aGVyIHRoYW4gLm1vZGFsLWNvbnRhaW5lciwgc28gbm9uZSBvZiB0aGUgbGVnYWN5IG1vZGFsXG4vLyBjaHJvbWUgYXBwbGllcyAtIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zIGxvYWRzIGFmdGVyIHRoaXMgYnVuZGxlIGFuZCBzZXRzXG4vLyBgLm1vZGFsLWNvbnRhaW5lciBoZWFkZXIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VCRUJFQiAhaW1wb3J0YW50IH1gLFxuLy8gd2hpY2ggbm8gc3BlY2lmaWNpdHkgaGVyZSBjYW4gdW5kbywgcGx1cyBwYWRkaW5nIGFuZCBqdXN0aWZ5LWNvbnRlbnQgb24gdGhlXG4vLyBjb250YWluZXIvZm9vdGVyLiBTaWRlc3RlcHBpbmcgdGhlIGVsZW1lbnQgc2VsZWN0b3JzIGlzIHRoZSBvbmx5IHN0YWJsZSBmaXguXG4vLyBQcmVjZWRlbnQ6IC50b2RheS1leGl0LCAubWVpLW1vZGFsLCAuYm10LW1vZGFsLCAud2NyLW1vZGFsLlxuLy9cbi8vIC5tb2RhbCAodGhlIHRyYW5zY2x1c2lvbiB3cmFwcGVyKSBzdGlsbCBjb250cmlidXRlcyBtaW4taGVpZ2h0OiAxMDBweCBhbmQsIG9uXG4vLyBtb2JpbGUsIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCkuIEJvdGggYXJlIGhhcm1sZXNzIGF0IHRoaXMgc2l6ZS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3JhbS1kZWxldGUtd2lkdGg6IDUxMnB4O1xuJHByb2dyYW0tZGVsZXRlLWd1dHRlcjogMzJweDtcbiRwcm9ncmFtLWRlbGV0ZS12aWV3cG9ydC1tYXJnaW46IDE2cHg7XG5cbi5wcm9ncmFtLWRlbGV0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLy8gRmlnbWE6IDUxMngxNTYuIFRoZSBoZWlnaHQgaXMgdGhlIHN1bSBvZiB0aGUgYm94IGJlbG93IHJhdGhlciB0aGFuIGEgZml4ZWRcbiAgLy8gdmFsdWUsIHNvIGEgd3JhcHBlZCB0aXRsZSBncm93cyB0aGUgY2FyZCBpbnN0ZWFkIG9mIGNsaXBwaW5nOlxuICAvLyAzMiBwYWQgKyAyOCB0aXRsZSArIDI0IGdhcCArIDQ4IGJ1dHRvbnMgKyAyNCBwYWQgPSAxNTYuXG4gIHdpZHRoOiAkcHJvZ3JhbS1kZWxldGUtd2lkdGg7XG4gIC8vIC5tb2RhbCBpcyBhIGNvbnRlbnQtc2l6ZWQgZmxleCBpdGVtIGluc2lkZSAubW9kYWwtdmlldywgc28gYSBwZXJjZW50YWdlXG4gIC8vIG1heC13aWR0aCBoYXMgbm8gZGVmaW5pdGUgcGFyZW50IHdpZHRoIHRvIHJlc29sdmUgYWdhaW5zdCBhbmQgdGhlIGNhcmQgd291bGRcbiAgLy8ga2VlcCBpdHMgNTEycHggb24gYSBwaG9uZSwgb3ZlcmZsb3dpbmcgdGhlIChvdmVyZmxvdzogaGlkZGVuKSB2aWV3cG9ydC4gQVxuICAvLyB2aWV3cG9ydCB1bml0IGlzIHdoYXQgYWN0dWFsbHkgYm91bmRzIGl0LlxuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRwcm9ncmFtLWRlbGV0ZS12aWV3cG9ydC1tYXJnaW4gKiAyfSk7XG4gIHBhZGRpbmc6ICRwcm9ncmFtLWRlbGV0ZS1ndXR0ZXIgJHByb2dyYW0tZGVsZXRlLWd1dHRlciAyNHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMTYsIDI0LCA0MCwgMC4yNCk7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDI4cHg7XG4gICAgcmlnaHQ6IDI4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgNDBweCAwIDA7IC8vIGtlZXBzIHRoZSBxdWVzdGlvbiBjbGVhciBvZiB0aGUgY2xvc2UgYnV0dG9uXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgfVxuXG4gICZfX2J0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvLyB1bnN0eWxlLWJ1dHRvbiBjbGVhcnMgbWluL21heC1oZWlnaHQgYnV0IG5vdCBoZWlnaHQsIGFuZCB0aGUgZ2xvYmFsIGJ1dHRvblxuICAgIC8vIHJ1bGUgaW4gX2Jhc2Uuc2NzcyBwaW5zIGhlaWdodDogNTBweCAtIHdoaWNoIHdvdWxkIG92ZXJyaWRlIHRoZSA0OHB4IGhlcmUuXG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgIC8vIFRoZSBGaWdtYSB3aWR0aHMgYXJlIHRoZSBsYWJlbHMgYXQgdGhlaXIgZ2l2ZW4gcGFkZGluZzsgbWluLXdpZHRoIHJhdGhlclxuICAgIC8vIHRoYW4gd2lkdGggc28gYSBsb25nZXIgbGFiZWwgd2lkZW5zIHRoZSBidXR0b24gaW5zdGVhZCBvZiBvdmVyZmxvd2luZyBpdC5cbiAgICAmLS1naG9zdCB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBtaW4td2lkdGg6IDg4cHg7XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay00MDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWRhbmdlciB7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBtaW4td2lkdGg6IDk0cHg7XG4gICAgICBwYWRkaW5nOiAxNHB4IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLTYwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAucHJvZ3JhbS1kZWxldGUge1xuICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICB0b3A6IDE2cHg7XG4gICAgICByaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBQcm9ncmFtIENhdGFsb2cgcGFnZSAoLyMvcHJvZ3JhbXMvOmF0aGxldGVJZCwgdm0uY2F0YWxvZ09wZW4pLiBSZXBsYWNlcyB0aGUgb2xkXG4vLyAuY2F0YWxvZ19uYXYgc2xpZGUtb3Zlci4gTm90ZSBfcHJvZ3JhbV9jYXRhbG9nLnNjc3MgaXMgYSBkaWZmZXJlbnQgdGhpbmcgZW50aXJlbHkgLVxuLy8gaXQgc3R5bGVzIHRoZSBwcm9ncmFtICpkZXRhaWwqIHBhbmUgKC5jYXRhbG9nLXNlbGVjdGVkKS5cblxuJHByb2dyYW0tY2F0YWxvZy10aXRsZTogIzFmMWYyODtcbiRwcm9ncmFtLWNhdGFsb2ctZmlsdGVyLXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgxMCwgMTMsIDE4LCAwLjA1KTtcbiRwcm9ncmFtLWNhdGFsb2ctY2hpcC1iZzogI2YyZjJmNDtcbiRwcm9ncmFtLWNhdGFsb2ctbWVkaWEtYmc6ICNkOWQ5ZDk7XG4kcHJvZ3JhbS1jYXRhbG9nLWhlYWRlci1iZzogI2Y3ZjdmODtcbiRwcm9ncmFtLWNhdGFsb2ctYmFkZ2UtYmc6ICNlOGY4ZWY7XG4kcHJvZ3JhbS1jYXRhbG9nLWJhZGdlLXRleHQ6ICMxNzk0NWE7XG5cbi5wcm9ncmFtLWNhdGFsb2cge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4NDhweDtcbiAgcGFkZGluZzogMjRweCAzMnB4IDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9LlxuICAvLyBEbyBub3Qgc2V0IGhlaWdodDogYXV0byBoZXJlIC0gaXQgb3V0LXNwZWNpZmllcyBjb21wb25lbnQgaGVpZ2h0IGxvY2tzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIFNhbWUgc3RvcnkgZm9yIGlucHV0W3R5cGU9dGV4dF0gaW4gX2Jhc2Uuc2NzcyAoMXB4IHNvbGlkICRncmV5OyByYWRpdXMgMnB4O1xuICAvLyBwYWRkaW5nIDNweCkuIEl0IGlzIGFuIGF0dHJpYnV0ZSBzZWxlY3Rvciwgc28gaXQgb3V0LXNwZWNpZmllcyBhIHNpbmdsZSBjbGFzcyAtXG4gIC8vIHRoZSByZXNldCBoYXMgdG8gYmUgc2NvcGVkIGxpa2UgdGhpcyByYXRoZXIgdGhhbiBsaXZpbmcgb24gX19zZWFyY2gtaW5wdXQuXG4gIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgLy8gLS0gYnJlYWRjcnVtYiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19icmVhZGNydW1iIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2NydW1iIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWNhdGFsb2ctdGl0bGU7XG4gICAgfVxuXG4gICAgJi0tY3VycmVudCB7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY3J1bWItc2VwIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cblxuICAmX190b29sYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgJl9fZmlsdGVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gIC8vIFdpZHRoIGlzIGludGVudGlvbmFsbHkgaW50cmluc2ljLiBUaGUgc3BlYydzIDg1IC8gMTA3IC8gMTA4cHggYXJlIHdoYXQgRmlnbWFcbiAgLy8gbWVhc3VyZWQgZm9yIE1vdmUgLyBQZXJmb3JtIC8gUmVjb3ZlciwgaS5lLiB0aGUgcmVzdWx0IG9mIHRoZXNlIHBhZGRpbmdzIHBsdXMgZWFjaFxuICAvLyBsYWJlbCAtIGhhcmRjb2RpbmcgdGhlbSB3b3VsZCBjbGlwIGxvbmdlciB0cmFuc2xhdGlvbnMgKGRlOiBcIkVyaG9sZW5cIikuXG4gICZfX2ZpbHRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNjAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBib3gtc2hhZG93OiAkcHJvZ3JhbS1jYXRhbG9nLWZpbHRlci1zaGFkb3c7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZmlsdGVyLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIC8vIFJlbmRlcmVkIGFzIGEgbWFzayBzbyB0aGUgU1ZHIGNhbiB0YWtlIHRoZSBhY3RpdmUgY29sb3VyOyBhbiA8aW1nPlxuICAgIC8vIGNhbid0IGJlIHJlY29sb3VyZWQgZnJvbSBDU1MuXG4gICAgJi0taW1nIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2YzZjN2M7XG4gICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAtd2Via2l0LW1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICB9XG4gIH1cblxuICAmX19maWx0ZXItLWFjdGl2ZSAmX19maWx0ZXItaWNvbi0taW1nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgfVxuXG4gIC8vIC0tIHNlYXJjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTm90IC5jYXRhbG9nLXNlYXJjaCBmcm9tIF9jYXRhbG9nX25hdi5zY3NzLCB3aGljaCBsb2NrcyBhIDUwcHggaGVpZ2h0IGFuZFxuICAvLyB0cmFpbHMgYSBncmV5IHJlc2V0IGJ1dHRvbi5cbiAgJl9fc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIxNXB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi0taW5saW5lIHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDEycHggMjBweDtcbiAgICB9XG4gIH1cblxuICAmX19zZWFyY2gtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fc2VhcmNoLWlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXRhbG9nLXRpdGxlO1xuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlYXJjaC1jbGVhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC8vIC0tIGdlbnJlIGdyb3VwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZ3JvdXBzLFxuICAmX19zZWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX3NlY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG5cbiAgJl9fZ3JvdXAge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYtLW9wZW4ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAmX19ncm91cC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19ncm91cC0tb3BlbiAmX19ncm91cC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWNhdGFsb2ctaGVhZGVyLWJnO1xuICB9XG5cbiAgLy8gbnVkaXN0YS13ZWIgb25seSBzaGlwcyB3ZWlnaHQgMzAwLzQwMC83MDAgKF90ZW1wLW5ldy5zY3NzOjEyLTUxKS4gQSByZXF1ZXN0IGZvciA2MDBcbiAgLy8gaGFzIG5vIGV4YWN0IGZhY2UsIGFuZCBwZXIgdGhlIENTUyBmb250LW1hdGNoaW5nIHNwZWMgYSB3ZWlnaHQgYWJvdmUgNTAwIHNlYXJjaGVzXG4gIC8vIHVwd2FyZCBmaXJzdCwgbGFuZGluZyBvbiA3MDAgKHRydWUgQm9sZCkgcmF0aGVyIHRoYW4gYSBsaWdodGVyIHN5bnRoZXNpemVkIHNlbWlib2xkLlxuICAvLyA1MDAgaGFzIHRoZSBzYW1lIGdhcCBidXQgc2VhcmNoZXMgdG93YXJkIDQwMCBmaXJzdCwgc28gaXQgcmVuZGVycyBhcyBSZWd1bGFyIGluc3RlYWRcbiAgLy8gb2YganVtcGluZyB0byBCb2xkLiBSZW5kZXJpbmcgdGhlIEZpZ21hLXNwZWNpZmllZCBTZW1pQm9sZCBmb3IgcmVhbCBuZWVkcyBhbiBhY3R1YWxcbiAgLy8gNTAwLzYwMC13ZWlnaHQgTnVkaXN0YSBmaWxlIGFkZGVkIHRvIHRoZSBwcm9qZWN0OyB0aGVyZSBpc24ndCBvbmUgdG8gcG9pbnQgYXQgeWV0LlxuICAmX19ncm91cC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhdGFsb2ctdGl0bGU7XG4gIH1cblxuICAmX19ncm91cC1jb3VudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDIycHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2F0YWxvZy1jaGlwLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19ncm91cC1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19ncm91cC1ib2R5IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICB9XG5cbiAgLy8gR2VucmUgbGFiZWwgaW5zaWRlIHRoZSBcIk15IFByb2dyYW1zXCIgLyBcIk15IEV4ZXJjaXNlc1wiIHNlY3Rpb25zLCB3aGljaCBncm91cCBvbmVcbiAgLy8gbGV2ZWwgZGVlcGVyIHRoYW4gdGhlIG1haW4gYWNjb3JkaW9uLlxuICAmX19zdWJncm91cC10aXRsZSB7XG4gICAgcGFkZGluZzogMTJweCAyMHB4IDRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBwcm9ncmFtIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIGhlaWdodDogYXV0byBwZXIgY29tcG9uZW50IHJhdGhlciB0aGFuIG9uIHRoZSBibGFua2V0IGJ1dHRvbiByZXNldCBhYm92ZSAtXG4gIC8vIGJ1dHRvbntsb2NrLWhlaWdodCg1MHB4KX0gc2V0cyBoZWlnaHQgYXMgd2VsbCBhcyB0aGUgbWluL21heCB1bnN0eWxlLWJ1dHRvblxuICAvLyBjbGVhcnMsIGFuZCBhIHdyYXBwaW5nIHByb2dyYW0gbmFtZSBoYXMgdG8gYmUgYWJsZSB0byBwdXNoIHRoZSByb3cgdGFsbGVyLlxuICAmX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAvLyBHcmV5IHVudGlsIHRoZSBwcm9ncmFtJ3MgcGljdHVyZSBhcnJpdmVzLCBhbmQgZm9yIGEgcHJvZ3JhbSB0aGF0IGhhcyBub25lLlxuICAmX190aHVtYiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1jYXRhbG9nLW1lZGlhLWJnO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBUaGUgbGFzdCBleGVyY2lzZSdzIHBvc3RlciBmcmFtZSwgY3JvcHBlZCB0byB0aGUgc3F1YXJlLlxuICAmX190aHVtYi1pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxuXG4gIC8vIEFic29yYnMgdGhlIGZyZWUgc3BhY2Ugc28gbWV0YSBhbmQgY2hldnJvbiBzaXQgaGFyZCByaWdodCB3aXRob3V0IGF1dG8gbWFyZ2luc1xuICAvLyBjb21wZXRpbmcgZm9yIGl0IC0gcm93cyB3aXRoIGFuZCB3aXRob3V0IG1ldGEgYWxpZ24gaWRlbnRpY2FsbHkuXG4gICZfX21haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gNTAwLCBub3QgNjAwIC0gc2VlIHRoZSBub3RlIG9uICZfX2dyb3VwLXRpdGxlIGFib3ZlLiBNYXRjaGVzIHRoZSB3ZWlnaHQgdGhlIGdyb3VwXG4gIC8vIGhlYWRlciByZW5kZXJzIGF0IHNvIGEgcm93IGRvZXNuJ3QgbG9vayBoZWF2aWVyIHRoYW4gdGhlIGJveCBpdCBleHBhbmRlZCBmcm9tLlxuICAmX19uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2F0YWxvZy10aXRsZTtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICAmX19iYWRnZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2F0YWxvZy1iYWRnZS1iZztcbiAgICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXRhbG9nLWJhZGdlLXRleHQ7XG4gIH1cblxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fbWV0YS1zZXAge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuXG4gICZfX3Jvdy1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBmaXJzdC1sb2FkIHNrZWxldG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNaXJyb3JzIGEgY29sbGFwc2VkICZfX2dyb3VwIHNvIHRoZSByZWFsIGhlYWRlcnMgbGFuZCBpbiB0aGUgc2FtZSBib3hlcy5cbiAgJl9fc2tlbGV0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW46IDJweCAwO1xuXG4gICAgJi0tc2hvcnQge1xuICAgICAgd2lkdGg6IDEyOHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLWNvdW50IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTFweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGFjdGlvbiByb3dzIChSZXN1bWUgRWRpdCAvIENyZWF0ZSAuLi4pIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWN0aW9uLWljb24sXG4gICZfX2FjdGlvbi1wbHVzIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fYWN0aW9uLXBsdXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgJl9fYWN0aW9uLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19hY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX2FjdGlvbi1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQod2lkZS1kb3duKSB7XG4gIC5wcm9ncmFtLWNhdGFsb2cge1xuICAgIHBhZGRpbmc6IDIwcHggMjBweCA0MHB4O1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmFtLWNhdGFsb2cge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgJl9fdG9vbGJhciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fZmlsdGVycyB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgJl9fc2VhcmNoIHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgIC8vIExldCB0aGUgbmFtZS9iYWRnZSBhbmQgdGhlIG1ldGEgc3RhY2sgcmF0aGVyIHRoYW4gc3F1ZWV6aW5nIHRoZSB0aXRsZSB0byBub3RoaW5nLlxuICAgICZfX21haW4ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgJl9fbWV0YSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLy8gQ2F0YWxvZyByb3dzIGNhcnJ5IGEgdGh1bWIgKyBtZXRhLCBzbyBhdCB0aGlzIHdpZHRoIHRoZSBuYW1lIGdldHMgaXRzIG93blxuICAgIC8vIGZ1bGwtd2lkdGggbGluZSB3aXRoIHRoZSBtZXRhIGJlbmVhdGggaXQgYW5kIHRoZSB0aHVtYiBzcGFubmluZyBib3RoLiBTY29wZWRcbiAgICAvLyB0byBfX2dyb3VwczogdGhlIF9fc2VjdGlvbnMgcm93cyAoTXkgUHJvZ3JhbXMgLyBNeSBFeGVyY2lzZXMpIGhhdmUgbm8gbWV0YSxcbiAgICAvLyBhbmQgdGhlIGV4ZXJjaXNlIG9uZXMgbm8gdGh1bWIsIHNvIHRoZSBmbGV4IHJvdyBhYm92ZSBhbHJlYWR5IGZpdHMgdGhlbS5cbiAgICAmX19ncm91cHMgJl9fcm93IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHggbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgICd0aHVtYiBtYWluIGNoZXZyb24nXG4gICAgICAgICd0aHVtYiBtZXRhIGNoZXZyb24nO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGNvbHVtbi1nYXA6IDEycHg7XG4gICAgICByb3ctZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgJl9fZ3JvdXBzICZfX3RodW1iIHtcbiAgICAgIGdyaWQtYXJlYTogdGh1bWI7XG4gICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICB9XG5cbiAgICAmX19ncm91cHMgJl9fbWFpbiB7XG4gICAgICBncmlkLWFyZWE6IG1haW47XG4gICAgfVxuXG4gICAgJl9fZ3JvdXBzICZfX21ldGEge1xuICAgICAgZ3JpZC1hcmVhOiBtZXRhO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICZfX2dyb3VwcyAmX19yb3ctY2hldnJvbiB7XG4gICAgICBncmlkLWFyZWE6IGNoZXZyb247XG4gICAgfVxuICB9XG59XG4iLCIvLyBQcm9ncmFtIGRldGFpbCBwYW5lICgvIy9wcm9ncmFtcy86YXRobGV0ZUlkIHdpdGggdm0uY3VycmVudFByb2dyYW0gc2V0KS4gUmVwbGFjZXMgdGhlXG4vLyBsZWdhY3kgdHdvLWNvbHVtbiAuY2F0YWxvZy1zZWxlY3RlZCBsYXlvdXQgZnJvbSBfcHJvZ3JhbV9jYXRhbG9nLnNjc3MuXG4vL1xuLy8gVGhlIHNlc3Npb24gdGFicywgc2VjdGlvbiBhY2NvcmRpb24gYW5kIGV4ZXJjaXNlIHJvd3MgZGVsaWJlcmF0ZWx5IG1pcnJvclxuLy8gX3Byb2dyYW1fc3VtbWFyeS5zY3NzOjIwMi0zMjAgc28gdGhlIHR3byByZWFkIGFzIHRoZSBzYW1lIGNvbXBvbmVudC4gV29ydGggZm9sZGluZ1xuLy8gaW50byBvbmUgc2hhcmVkIGJsb2NrIGlmIGEgdGhpcmQgcGFnZSBuZWVkcyBpdC5cblxuJHByb2dyYW0tZGV0YWlsLXRpdGxlOiAjMWYxZjI4O1xuJHByb2dyYW0tZGV0YWlsLWNoaXAtYmc6ICNmMmYyZjQ7XG4kcHJvZ3JhbS1kZXRhaWwtbm90aWNlLWJnOiAjZmZmYWYwO1xuLy8gTWlycm9ycyB0aGUgXCJDdXJyZW50IFByb2dyYW1cIiBiYWRnZSBvbiB0aGUgY2F0YWxvZyBsaXN0IChfcHJvZ3JhbV9jYXRhbG9nX3BhZ2Uuc2NzczoxNy0xOCk7XG4vLyB0aG9zZSB2YXJzIGFyZSBmaWxlLXNjb3BlZCwgc28gdGhlIHZhbHVlcyBhcmUgcmVwZWF0ZWQgcmF0aGVyIHRoYW4gaW1wb3J0ZWQuXG4kcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtYmc6ICNlOGY4ZWY7XG4kcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtdGV4dDogIzE3OTQ1YTtcbiRwcm9ncmFtLWRldGFpbC1kYW5nZXI6ICNjNDJhM2I7XG5cbi5wcm9ncmFtLWRldGFpbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvLyBNYXRjaGVzIC5wcm9ncmFtLWNhdGFsb2cgc28gdGhlIGNvbnRlbnQgYm94IGRvZXMgbm90IGp1bXAgd2lkdGggd2hlbiBtb3ZpbmdcbiAgLy8gYmV0d2VlbiB0aGUgY2F0YWxvZyBhbmQgYSBwcm9ncmFtLCB3aGljaCBhcmUgYWRqYWNlbnQgc3RlcHMgaW4gb25lIGZsb3cuXG4gIG1heC13aWR0aDogODQ4cHg7XG4gIHBhZGRpbmc6IDI0cHggMzJweCA0OHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfS5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvLyAtLSBicmVhZGNydW1iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2JyZWFkY3J1bWIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2NydW1iIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgICB9XG5cbiAgICAmLS1jdXJyZW50IHtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jcnVtYi1zZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gaGVhZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUaXRsZSBvbiB0aGUgbGVmdCwgcHJpbWFyeSBhY3Rpb24gb24gdGhlIHJpZ2h0LiBXcmFwcyB0byB0d28gcm93cyB3aGVuIHRoZSB0aXRsZVxuICAvLyBpcyBsb25nIG9yIHRoZSB2aWV3cG9ydCBpcyBuYXJyb3cuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgfVxuXG4gICZfX2hlYWRlci1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX2NoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcblxuICAgICYtLXdhcm4ge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC1kYW5nZXI7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICAgICYtLWN1cnJlbnQge1xuICAgICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtYmc7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtdGV4dDtcbiAgICB9XG4gIH1cblxuICAmX19jaGlwLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMCAwIDEycHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gYWN0aW9uIHNsb3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19ub3RpY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tZGV0YWlsLW5vdGljZS1iZztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYW1iZXItMTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgfVxuXG4gICZfX25vdGljZS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX25vdGljZS10ZXh0IHtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhLXdlYlwiLCBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGFtYmVyO1xuICB9XG5cbiAgLy8gVGFrZXMgdGhlIG5vdGljZSBzbG90IG9uY2UgdGhlIHByb2dyYW0gaXMgc2NoZWR1bGVkLiBTYW1lIGRhdGEgYXMgdGhlIHdlZWtkYXkgY2hpcHMgb25cbiAgLy8gdGhlIGNhcmQgZ3JpZCAoLnByb2dyYW0tY2FyZF9fc2NoZWR1bGUpLCBib3hlZCB0byBzaXQgaW4gdGhlIHBhZ2UgZmxvdy5cbiAgJl9fc2NoZWR1bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIH1cblxuICAmX19zY2hlZHVsZS1sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YS13ZWJcIiwgXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgfVxuXG4gICZfX2RheXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICB9XG5cbiAgJl9fZGF5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtY2hpcC1iZztcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG5cbiAgICAmLS1vbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICB9XG4gIH1cblxuICAmX19zY2hlZHVsZS1lZGl0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fc2NoZWR1bGUtZWRpdC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gIC8vIEZpeGVkIDE4M3g0NCBzbG90LiBtaW4td2lkdGggcmF0aGVyIHRoYW4gd2lkdGggc28gYSBsb25nZXIgdHJhbnNsYXRpb25cbiAgLy8gKFwiUHJvZ3JhbW0gdGVybWluaWVyZW5cIikgZ3Jvd3MgdGhlIGJ1dHRvbiBpbnN0ZWFkIG9mIHNwaWxsaW5nIG91dCBvZiBpdC5cbiAgJl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMTgzcHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICYtLXByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19idXR0b24taWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAvLyAtLSBzdGF0IGNhcmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3N0YXRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gICZfX3N0YXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE0cHg7XG4gICAgZmxleDogMSAxIDIyMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgfVxuXG4gICZfX3N0YXQtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtY2hpcC1iZztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIH1cblxuICAmX19zdGF0LWJvZHkge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3N0YXQtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3N0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG4gIH1cblxuICAvLyAtLSBzZXNzaW9uIHRhYnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3RhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICB9XG5cbiAgLy8gYm9yZGVyLXJhZGl1czogMCB1bmRvZXMgdGhlIGdsb2JhbCBidXR0b257Ym9yZGVyLXJhZGl1czo2cHh9LCB3aGljaCB1bnN0eWxlLWJ1dHRvblxuICAvLyBhYm92ZSBkb2VzIG5vdCBjbGVhciAtIGl0IHdvdWxkIHJvdW5kIHRoZSBlbmRzIG9mIHRoZSAycHggYWN0aXZlIHVuZGVybGluZS5cbiAgJl9fdGFiIHtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLXRpdGxlO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBzZWN0aW9uIGFjY29yZGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3NlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLXRpdGxlO1xuICB9XG5cbiAgLy8gMzZweCB3aWRlIHRvIG1hdGNoIF9fZXhlcmNpc2UtYWN0aW9uIGJlbG93LCBzbyB0aGUgY2hldnJvbiBhbmQgdGhlIGV4ZXJjaXNlXG4gIC8vIGFycm93cyBzaGFyZSBvbmUgcmlnaHQtaGFuZCBheGlzLiBXaWR0aCBvbmx5IC0gYSAzNnB4IGhlaWdodCB3b3VsZCBncm93IHRoZSBoZWFkZXIuXG4gICZfX3NlY3Rpb24tY2hldnJvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcblxuICAgIC8vIFRoZSBzdmcgcG9pbnRzIHVwIChleHBhbmRlZCk7IGZsaXAgaXQgZm9yIGEgY29sbGFwc2VkIHNlY3Rpb24uXG4gICAgJi0tY29sbGFwc2VkIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlY3Rpb24tYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgfVxuXG4gIC8vIC0tIGV4ZXJjaXNlIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZXhlcmNpc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgfVxuICB9XG5cbiAgJl9fZXhlcmNpc2UtaW5mbyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG4gIH1cblxuICAmX19leGVyY2lzZS1hdHRyaWJ1dGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4IDhweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcblxuICAgIC8vIEVhY2ggYXR0cmlidXRlIGNlbnRlcnMgaXRzIG93biBjb250ZW50cyBzbyB0aGUgZG90IGJlbG93IGxhbmRzIG9uIHRoZSB0ZXh0J3NcbiAgICAvLyBvcHRpY2FsIGNlbnRlci4gZ2FwIHJlcGxhY2VzIHRoZSBtYXJrdXAgd2hpdGVzcGFjZSBiZXR3ZWVuIHRoZSBcIlNldHM6XCIgbGFiZWwgYW5kXG4gICAgLy8gaXRzIHZhbHVlLCB3aGljaCBhIGZsZXggYm94IGRyb3BzLlxuICAgID4gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAvLyBEb3QgYmV0d2VlbiBhZGphY2VudCBhdHRyaWJ1dGVzIChzZXRzIC8gcmVwcyAvIGR1cmF0aW9uIC8gLi4uKS4gRWFjaCBhdHRyaWJ1dGVcbiAgICAvLyBjYXJyaWVzIGl0cyBvd24gbmctaWYsIHdoaWNoIHJlbW92ZXMgdGhlIGVsZW1lbnQgcmF0aGVyIHRoYW4gaGlkaW5nIGl0LCBzbyB0aGVcbiAgICAvLyBhZGphY2VudC1zaWJsaW5nIHJ1bGUgb25seSBmaXJlcyBiZXR3ZWVuIHR3byB0aGF0IGFjdHVhbGx5IHJlbmRlcmVkLlxuICAgIC8vIDRweCBtYXJnaW4gKyB0aGUgNHB4IGdhcCA9IHRoZSA4cHggdGhlIHBhcmVudCBnYXAgcHV0cyBvbiB0aGUgZG90J3Mgb3RoZXIgc2lkZS5cbiAgICA+IHNwYW4gKyBzcGFuOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IDVweDtcbiAgICAgIGhlaWdodDogNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMzAwO1xuICAgICAgLy8gTnVkZ2VkIGRvd24gMXB4IHRvIHNpdCBvbiB0aGUgdGV4dCdzIHZpc3VhbCBjZW50ZXI7IHRyYW5zZm9ybSBrZWVwcyB0aGUgcm93IGhlaWdodC5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICAgIH1cbiAgfVxuXG4gICZfX2F0dHJpYnV0ZS1sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWRldGFpbC1jaGlwLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGRlc3RydWN0aXZlIGFjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZGVsZXRlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLWRhbmdlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIGxvYWRpbmcgc2tlbGV0b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gcHJvZ3JhbV9kZXRhaWxfc2tlbGV0b24uaHRtbC4gRWFjaCBibG9jayBpcyBzaXplZCB0byB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIHRleHQgaXRcbiAgLy8gc3RhbmRzIGluIGZvciwgc28gdGhlIHJlYWwgY29udGVudCBsYW5kcyBpbiB0aGUgc2FtZSBib3hlcyB3aGVuIGl0IGFycml2ZXMuXG4gICZfX3NrZWxldG9uLWNoaXAge1xuICAgIHdpZHRoOiA5NnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW46IDJweCAwO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogNXB4IDA7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgIH1cbiAgfVxuXG4gIC8vIDE4cHggZ2x5cGggKyAxMHB4IHBhZGRpbmcgZWFjaCBzaWRlLCBtYXRjaGluZyBfX3N0YXQtaWNvbi5cbiAgJl9fc2tlbGV0b24tc3RhdC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RhdC1sYWJlbCB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIG1hcmdpbjogM3B4IDAgNXB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RhdC12YWx1ZSB7XG4gICAgd2lkdGg6IDk2cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbjogNHB4IDA7XG4gIH1cblxuICAvLyBTYW1lIGJveCBhcyBfX3RhYiwgbGVzcyB0aGUgMnB4IHVuZGVybGluZSwgd2hpY2ggdGhlIHNrZWxldG9uIGhhcyBubyBhY3RpdmUgdGFiIGZvci5cbiAgJl9fc2tlbGV0b24tdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTRweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXRhYi1sYWJlbCB7XG4gICAgd2lkdGg6IDcycHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogM3B4IDA7XG4gIH1cblxuICAmX19za2VsZXRvbi1zZWN0aW9uLXRpdGxlIHtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogM3B4IDA7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogMTI4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJlZCBpbiB0aGUgMzZweCBjb2x1bW4gX19zZWN0aW9uLWNoZXZyb24gcmVzZXJ2ZXMuXG4gICZfX3NrZWxldG9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDExcHg7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh3aWRlLWRvd24pIHtcbiAgLnByb2dyYW0tZGV0YWlsIHtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggNDBweDtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAucHJvZ3JhbS1kZXRhaWwge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgLy8gU3RheXMgYSByb3c6IGZsZXgtYmFzaXMgb24gYSBjb2x1bW4gaXMgaGVpZ2h0LCBzbyBgZmxleDogMSAxIDIyMHB4YCB3YXMgbWFraW5nXG4gICAgLy8gZWFjaCBjYXJkIDIyMHB4IHRhbGwuIEdyaWQgYWxzbyBtYWtlcyB0aGF0IGJhc2lzIGluZXJ0IOKAlCBncmlkIGl0ZW1zIGlnbm9yZSBpdCDigJRcbiAgICAvLyBzbyB0aGUgdHdvIGNhcmRzIHNwbGl0IHRoZSByb3cgZXZlbmx5IHdpdGhvdXQgZmlnaHRpbmcgdGhlIGJhc2UgcnVsZS5cbiAgICAmX19zdGF0cyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgIC8vIEVhY2ggY2FyZCBoYXMgaXRzIG93biBuZy1pZjsgYSBsb25lIGNhcmQgc2hvdWxkIGZpbGwgdGhlIHJvdywgbm90IHNpdCBhdCBoYWxmXG4gICAgLy8gd2lkdGggYmVzaWRlIGFuIGVtcHR5IHRyYWNrLlxuICAgICZfX3N0YXQ6b25seS1jaGlsZCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIH1cblxuICAgICZfX3N0YXQge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICB9XG5cbiAgICAvLyBUaGUgcm93IG5lZWRzIH41NzBweCBmb3IgbGFiZWwgKyA3IGRheSBzcXVhcmVzICsgdGhlIGVkaXQgYnV0dG9uLCBzbyBiZWxvdyB0aGVcbiAgICAvLyBkZXNrdG9wIGxheW91dCBpdCBoYXMgdG8gd3JhcCAtIGFuZCBhIGZpeGVkIDYwcHggaGVpZ2h0IHdvdWxkIGNsaXAgdGhlIHNlY29uZCBsaW5lLlxuICAgICZfX3NjaGVkdWxlIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICB9XG5cbiAgICAmX19kYXlzIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmX190YWJzIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB9XG5cbiAgICAmX190YWIge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLy8gS2VlcCB0aGUgYXJyb3cgYmVzaWRlIHRoZSBuYW1lIGFuZCBsZXQgdGhlIGF0dHJpYnV0ZXMgd3JhcCBiZW5lYXRoLlxuICAgICZfX2V4ZXJjaXNlIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5wcm9ncmFtLWRldGFpbCB7XG4gICAgcGFkZGluZzogMTZweCAxMnB4IDMycHg7XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdCB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gICAgfVxuXG4gICAgLy8gMThweCBnbHlwaCArIDEwcHggcGFkZGluZyA9IGEgMzhweCB0aWxlIGF0IGJhc2U7IDdweCBicmluZ3MgaXQgdG8gMzJweC5cbiAgICAmX19zdGF0LWljb24ge1xuICAgICAgcGFkZGluZzogN3B4O1xuICAgIH1cblxuICAgICZfX3N0YXQtbGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgICZfX3N0YXQtdmFsdWUge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBEYWlseSBzZXNzaW9uIHBhZ2UgKC8jL3NjaGVkdWxlLzphdGhsZXRlSWQvZGFpbHkvOnNjaGVkdWxlSWQgLSB2aWV3cy9kYWlseS5odG1sKS5cbi8vIFJlcGxhY2VzIHRoZSBsZWdhY3kgLnByb2dyYW0tZWRpdCAvIC5wcm9ncmFtLXN0cmF0ZWd5IC8gLnByb2dyYW0tdGVjaG5pcXVlIG1hcmt1cCB0aGlzXG4vLyBwYWdlIHVzZWQgdG8gYm9ycm93IGZyb20gX3Byb2dyYW1fZWRpdC5zY3NzLiBUaGF0IHBhcnRpYWwgaXMgc3RpbGwgc2hhcmVkIHdpdGhcbi8vIC93aGl0ZWJvYXJkIGFuZCB2aWV3cy9wcm9ncmFtLmh0bWwsIHNvIHRoaXMgaXMgYSBuZXcgYmxvY2sgcmF0aGVyIHRoYW4gYW4gZWRpdCB0aGVyZS5cbi8vXG4vLyBUaGUgaGVhZGVyLCBzZWN0aW9uIGFjY29yZGlvbiBhbmQgZXhlcmNpc2Ugcm93cyBkZWxpYmVyYXRlbHkgbWlycm9yXG4vLyBfcHJvZ3JhbV9kZXRhaWwuc2NzcyBzbyBvcGVuaW5nIGEgc2Vzc2lvbiBhbmQgb3BlbmluZyBhIGNhdGFsb2cgcHJvZ3JhbSByZWFkIGFzIHRoZVxuLy8gc2FtZSBjb21wb25lbnQuIFRoZSB0ZWNobmlxdWUgc3ViLWhlYWRlciBpcyB0aGUgb25lIGFkZGl0aW9uLCB0YWtlbiBmcm9tXG4vLyBfcHJvZ3JhbV9zdW1tYXJ5LnNjc3MgLSBhIGRhaWx5IHN0cmF0ZWd5IGNhbiBob2xkIHNldmVyYWwgdGVjaG5pcXVlcy5cblxuJGRhaWx5LXByb2dyYW0tdGl0bGU6ICMxZjFmMjg7XG4kZGFpbHktcHJvZ3JhbS1jaGlwLWJnOiAjZjJmMmY0O1xuLy8gSGVhZGVyIGJhZGdlcyBvbmx5LCBhbmQgZGFya2VyIHRoYW4gJGRhaWx5LXByb2dyYW0tY2hpcC1iZyBvbiBwdXJwb3NlIC0gc3RyYWlnaHQgb2ZmXG4vLyB0aGUgRmlnbWEuIERvIG5vdCBmb2xkIHRoZSB0d28gdG9nZXRoZXIuXG4kZGFpbHktcHJvZ3JhbS1kaXNhYmxlZC1iZzogI2Q5ZDRlMjtcblxuLy8gQ2VudHJlcyB0aGUgY29udGVudCBjb2x1bW4gdGhlIHdheSAucHJvZ3JhbXMtcGFnZS1ob3N0IGRvZXMgZm9yIHRoZSBjYXRhbG9nIGFuZFxuLy8gZGV0YWlsIHBhbmVzLCBzbyB0aGUgdHdvIHBhZ2VzIHNoYXJlIGEgcGFnZSBmcmFtZSBhcyB3ZWxsIGFzIGEgY2FyZCBzdHlsZS5cbi5kYWlseS1wcm9ncmFtLWhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xufVxuXG4uZGFpbHktcHJvZ3JhbSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvLyBNYXRjaGVzIC5wcm9ncmFtLXN1bW1hcnkgc28gdGhlIGNvbnRlbnQgYm94IGlzIHRoZSBzYW1lIHdpZHRoIG9uIGJvdGggcGFnZXMuXG4gIG1heC13aWR0aDogNjQwcHg7XG4gIC8vIE5vIHNpZGUgcGFkZGluZywgc28gdGhlIGNhcmRzIGFuZCB0aGUgZm9vdGVyIGJ1dHRvbiBzcGFuIHRoZSBmdWxsIDY0MHB4LlxuICAvLyBWaWV3cG9ydHMgYXQgb3IgYmVsb3cgNjQwcHggcGljayB1cCB0aGVpciBvd24gMTZweCBndXR0ZXIgZnJvbSB0aGUgbWVkaWFcbiAgLy8gYmxvY2sgYXQgdGhlIGVuZC5cbiAgcGFkZGluZzogMzJweCAwIDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9LlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVGh1bWJuYWlsIGJlc2lkZSBhbiBpZGVudGl0eSBjb2x1bW4sIHNhbWUgc3BlYyBhcyAucHJvZ3JhbS1zdW1tYXJ5X19oZWFkZXIuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG5cbiAgLy8gVGhlIHBpY3R1cmUgaXMgdGhlIHBvc3RlciBmcmFtZSBvZiB0aGUgbGFzdCBleGVyY2lzZSwgYW5kIHRob3NlIGFyZSBub3QgYWxsIG9uZVxuICAvLyByYXRpby4gVGhlIHRpbGUgaG9sZHMgdGhlIDgwOHgzMTIgc2hhcGUgb2YgdGhlIHN0b2NrIHBob3RvIGl0IHJlcGxhY2VkIGFuZCBjcm9wc1xuICAvLyB0aGUgZnJhbWUgdG8gZmlsbCBpdCwgc28gdGhlIGhlYWRlciBpcyB0aGUgc2FtZSBzaXplIGZvciBldmVyeSBwcm9ncmFtIGFuZCBkb2VzXG4gIC8vIG5vdCBzaGlmdCB3aGVuIHRoZSBwaWN0dXJlIGFycml2ZXMuIFVudGlsIHRoZW4gdGhlIHRpbGUgc2hvd3MgaXRzIGJhY2tncm91bmQuXG4gICZfX3RodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDg4cHg7XG4gICAgYXNwZWN0LXJhdGlvOiA4MDggLyAzMTI7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICRkYWlseS1wcm9ncmFtLWNoaXAtYmc7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9ubHkgcmVuZGVyZWQgb25jZSB0aGVyZSBpcyBhIHBpY3R1cmUsIHNvIHRoZSB0aWxlIG5ldmVyIGhvbGRzIGFuIGltYWdlIHdpdGggbm8gc3JjLlxuICAmX190aHVtYi1pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxuXG4gICZfX2lkZW50aXR5IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAkZGFpbHktcHJvZ3JhbS10aXRsZTtcbiAgfVxuXG4gICZfX21ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgLy8gRmlsbGVkIGJhZGdlIGZvciBjYXRlZ29yaWNhbCBsYWJlbHMgKGdlbnJlLCBwcm9ncmFtIHR5cGUpLiBNZXRyaWNzIGZyb20gdGhlIEZpZ21hOlxuICAvLyAycHgvOHB4IHBhZGRpbmcgb3ZlciBhIDE2cHggbGluZSBib3ggZ2l2ZXMgdGhlIHNwZWNpZmllZCAyMHB4IGhlaWdodC5cbiAgJl9fcGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyBTaXplZCBoZXJlIHJhdGhlciB0aGFuIGxlZnQgdG8gdGhlIGltZyB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcywgd2hpY2ggYW55IGdsb2JhbFxuICAvLyBgaW1nYCBydWxlIGluIGVpdGhlciBidW5kbGUgY2FuIG92ZXJyaWRlLlxuICAmX19waWxsLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgLy8gVW5maWxsZWQgaWNvbiArIHZhbHVlIGZvciBjb3VudHMgLSAucHJvZ3JhbS1kZXRhaWxfX2NoaXAuIERlbGliZXJhdGVseSBub3QgYSBwaWxsLFxuICAvLyBzbyBtZWFzdXJlbWVudHMgcmVhZCBhcyBkYXRhIHJhdGhlciB0aGFuIGFzIGFub3RoZXIgbGFiZWwuXG4gICZfX21ldHJpYyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fbWV0cmljLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgLy8gLS0gYnV0dG9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTBweCAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFscmVhZHktY29tcGxldGVkIHNlc3Npb24uIE11dGVkIHJhdGhlciB0aGFuIGRpc2FibGVkIC0gdGhlIGJ1dHRvbiBpcyBzdGlsbCB0aGVcbiAgICAvLyBvbmx5IHdheSBiYWNrIHRvIHRoZSBwcm9maWxlIGZyb20gdGhpcyBwYWdlLlxuICAgICYtLWRvbmUge1xuICAgICAgYmFja2dyb3VuZDogJGRhaWx5LXByb2dyYW0tZGlzYWJsZWQtYmc7XG4gICAgICBib3JkZXItY29sb3I6ICRkYWlseS1wcm9ncmFtLWRpc2FibGVkLWJnO1xuICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFpbHktcHJvZ3JhbS1kaXNhYmxlZC1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyAtLSBzZWN0aW9uIGFjY29yZGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3NlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICAmX19zZWN0aW9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19zZWN0aW9uLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMThweCAyMHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICZfX3NlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZGFpbHktcHJvZ3JhbS10aXRsZTtcbiAgfVxuXG4gIC8vIENlbnRyZWQgaW4gYSAzNnB4IGJveCB0byBtYXRjaCB0aGUgYXJyb3cgYnV0dG9uIG9uIHRoZSBleGVyY2lzZSByb3dzIGJlbG93LlxuICAvLyBCb3RoIHNpdCBhZ2FpbnN0IHRoZSBzYW1lIDIwcHggZ3V0dGVyLCBzbyBlcXVhbCB3aWR0aHMgcHV0IHRoZWlyIGNlbnRyZXMgb25cbiAgLy8gb25lIHZlcnRpY2FsIGxpbmUuIFdpZHRoIG9ubHkgLSBhIDM2cHggaGVpZ2h0IHdvdWxkIHN0cmV0Y2ggdGhlIGhlYWRlci5cbiAgJl9fc2VjdGlvbi1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMzZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fc2VjdGlvbi1ib2R5IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICB9XG5cbiAgLy8gVGVjaG5pcXVlIHN1Yi1oZWFkZXIsIHNob3duIG9ubHkgd2hlbiBhIHN0cmF0ZWd5IGhvbGRzIG1vcmUgdGhhbiBvbmUgdGVjaG5pcXVlLlxuICAmX190ZWNobmlxdWUge1xuICAgIHBhZGRpbmc6IDEycHggMjBweCA0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gZXhlcmNpc2Ugcm93cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUaGUgcm93IGl0c2VsZiBpcyB0aGUgPGJ1dHRvbj4gdGhhdCBvcGVucyB0aGUgZXhlcmNpc2UgbW9kYWwsIHNvIGl0IGhhcyB0byB1bmRvXG4gIC8vIHRoZSBnbG9iYWwgYnV0dG9uIGNocm9tZSAod2hpdGUgZmlsbCwgMnB4IGJsdWUgYm9yZGVyLCA2cHggcmFkaXVzLCBjZW50cmVkIHRleHQpXG4gIC8vIHRoZSB3YXkgJl9fc2VjdGlvbi1oZWFkZXIgZG9lcy5cbiAgLy9cbiAgLy8gRml4ZWQgNjJweCwgc2FtZSBhcyAucHJvZ3JhbS1zdW1tYXJ5X19leGVyY2lzZS4gTm90aGluZyBpbnNpZGUgaXMgdGFsbGVyIHRoYW4gdGhlXG4gIC8vIDM2cHggYXJyb3cgYm94LCBzbyB0aGUgY29udGVudCBjZW50cmVzIHdpdGhvdXQgdmVydGljYWwgcGFkZGluZyAtIGFuZFxuICAvLyBfX2V4ZXJjaXNlLW5hbWUgdHJ1bmNhdGVzIHJhdGhlciB0aGFuIHdyYXBwaW5nLCB3aGljaCB3b3VsZCBwdXNoIHBhc3QgdGhlIGhlaWdodC5cbiAgJl9fZXhlcmNpc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDYycHg7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgYXJyb3cgcGlja3MgdXAgdGhlIGFjY2VudCBvbiByb3cgaG92ZXIsIHNvIHRoZSB3aG9sZSByb3cgcmVhZHMgYXMgb25lIHRhcmdldC5cbiAgJl9fZXhlcmNpc2U6aG92ZXIgJl9fZXhlcmNpc2UtYWN0aW9uIHtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gIH1cblxuICAvLyBTcGFucywgbm90IGRpdnMgLSB0aGV5IGxpdmUgaW5zaWRlIHRoZSByb3cgPGJ1dHRvbj4sIHdoaWNoIG9ubHkgdGFrZXMgcGhyYXNpbmdcbiAgLy8gY29udGVudCAtIHNvIHRoZSBibG9jayBiZWhhdmlvdXIgaGFzIHRvIGJlIHNldCBoZXJlLlxuICAmX19leGVyY2lzZS1pbmZvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19leGVyY2lzZS1uYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZGFpbHktcHJvZ3JhbS10aXRsZTtcbiAgfVxuXG4gIC8vIFRoZSB1bmNsYXNzZWQgdmFsdWUgc3BhbnMgaW5oZXJpdCBmcm9tIGhlcmUsIHNvIDUwMCBpcyB0aGUgdmFsdWUgd2VpZ2h0IGFuZFxuICAvLyBfX2F0dHJpYnV0ZS1sYWJlbCBvdmVycmlkZXMgaXQgYmFjayB0byA2MDAgZm9yIHRoZSBcIlNldHM6XCIgLyBcIlJlcHM6XCIgbGFiZWxzIC1cbiAgLy8gc2FtZSBzcGxpdCBhcyAucHJvZ3JhbS1zdW1tYXJ5X19leGVyY2lzZS1hdHRyaWJ1dGVzLlxuICAmX19leGVyY2lzZS1hdHRyaWJ1dGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19hdHRyaWJ1dGUtbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19leGVyY2lzZS1hY3Rpb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgY29sb3I6ICRkYWlseS1wcm9ncmFtLXRpdGxlO1xuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gZm9vdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTaW5nbGUgZnVsbC13aWR0aCBwcmltYXJ5IC0gdGhlIHNlc3Npb24ncyBvbmUgY2xvc2luZyBhY3Rpb24uXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgJl9fZm9vdGVyICZfX2J1dHRvbiB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgcGFkZGluZzogMTRweCAyNHB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxufVxuXG4vLyBNaXJyb3JzIC5wcm9ncmFtLXN1bW1hcnk6IHRoZSBvbmUgcXVlcnkgZmlyZXMgd2hlbiB0aGUgdmlld3BvcnQgcmVhY2hlcyB0aGVcbi8vIGNvbHVtbiB3aWR0aCwgd2hpY2ggaXMgdGhlIG9ubHkgcG9pbnQgdGhlIGxheW91dCBoYXMgdG8gY2hhbmdlLiBBIHJlc3BvbmQoKVxuLy8gdGllciB3b3VsZCBmaXJlIGF0IDc2OHB4IG9yIDQ4MHB4LCBuZWl0aGVyIG9mIHdoaWNoIGlzIHdoZXJlIDY0MHB4IHJ1bnMgb3V0LlxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5kYWlseS1wcm9ncmFtIHtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHggNDBweDtcblxuICAgIC8vIFRodW1ibmFpbCBvdmVyIHRoZSBpZGVudGl0eSBibG9jayAtIHNpZGUgYnkgc2lkZSBsZWF2ZXMgdGhlIHRpdGxlIHRvbyBuYXJyb3cuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTRweDtcbiAgICB9XG5cbiAgICAvLyBGdWxsIHdpZHRoOyB0aGUgaGVpZ2h0IGZvbGxvd3MgZnJvbSB0aGUgdGlsZSdzIDgwOHgzMTIgcmF0aW8sIG5vdCB0aGUgcGljdHVyZSdzLlxuICAgICZfX3RodW1iIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX21ldGEge1xuICAgICAgZ2FwOiA4cHggMTJweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAuZGFpbHktcHJvZ3JhbSB7XG4gICAgcGFkZGluZzogMTZweCAxMnB4IDMycHg7XG5cbiAgICAmX19zZWN0aW9uLWhlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgIH1cblxuICAgICZfX2V4ZXJjaXNlIHtcbiAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICB9XG5cbiAgICAmX190ZWNobmlxdWUge1xuICAgICAgcGFkZGluZzogMTJweCAxNnB4IDRweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFN0ZXAgMSBvZiB0aGUgU2NoZWR1bGUgUHJvZ3JhbSBmbG93ICgvIy9wcm9ncmFtLzphdGhsZXRlSWQvOmF0aGxldGVQcm9ncmFtSWQvc3VtbWFyeSk6XG4vLyBhIHJlYWQtb25seSByZWNhcCBvZiB0aGUgcHJvZ3JhbSBiZWZvcmUgYW55IGRhdGVzIGFyZSBwaWNrZWQuXG4vLyBBbHNvIGNhcnJpZXMgLnNjaGVkdWxlLXN0ZXBzLCB0aGUgc3RlcHBlciBzaGFyZWQgd2l0aCB0aGUgU2NoZWR1bGUgc3RlcC5cblxuJHByb2dyYW0tc3VtbWFyeS1jaGlwLWJnOiAjZjJmMmY0O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFN0ZXBwZXIgKHRlbXBsYXRlcy9zY2hlZHVsZV9zdGVwcy5odG1sKSAtIHNoYXJlZCBhY3Jvc3MgdGhlIGZsb3csIHNvIGl0IGlzXG4vLyBzY29wZWQgdG8gaXRzZWxmIHJhdGhlciB0aGFuIG5lc3RlZCB1bmRlciAucHJvZ3JhbS1zdW1tYXJ5LlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uc2NoZWR1bGUtc3RlcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjhweDtcblxuICAmX19zdGVwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX19tYXJrZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0xMDA7XG4gICAgY29sb3I6ICRibGFjay01MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjE0cHg7XG4gICAgY29sb3I6ICRibGFjay01MDA7XG4gIH1cblxuICAmX19zdGVwLS1hY3RpdmUgJl9fbWFya2VyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICBjb2xvcjogJHB1cnBsZS05MDA7XG4gIH1cblxuICAmX19zdGVwLS1hY3RpdmUgJl9fbGFiZWwge1xuICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgfVxuXG4gIC8vIENvbXBsZXRlZCBzdGVwcyBzd2FwIHRoZSBudW1iZXIgZm9yIGEgY2hlY2sgYW5kIHN0YXkgbXV0ZWQuXG4gICZfX3N0ZXAtLWNvbXBsZXRlICZfX21hcmtlciB7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICBjb2xvcjogJGJsYWNrLTUwMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gIH1cblxuICAmX19zdGVwLS1jb21wbGV0ZSAmX19sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyBTaWRlIGJ5IHNpZGUgdGhlIHRocmVlIHN0ZXBzIG1lYXN1cmUgfjUwNHB4LCBzbyBvbmNlIHRoZSBjb2x1bW4gZHJvcHMgYmVsb3dcbiAgLy8gdGhhdCB0aGUgdGhpcmQgb25lIHdyYXBzIG9udG8gaXRzIG93biByb3cgYW5kIHRoZSA0MHB4IGdhcCBvcGVucyBhIHdpZGUgYmFuZFxuICAvLyBvZiBkZWFkIHNwYWNlIGJldHdlZW4gdGhlIHR3byByb3dzLiBTdGFjayB0aGVtIGFzIGEgcGxhaW4gbGlzdCBpbnN0ZWFkLlxuICAvLyBUaGUgcm93IGdhcCBpcyAxMHB4IHNvIHRoZSBibG9jayBrZWVwcyB0aGUgaGVpZ2h0IGl0IGhhZCB3aGVuIHdyYXBwZWQgLVxuICAvLyAyIHJvd3MgYXQgMjJweCBwbHVzIG9uZSA0MHB4IGdhcCBpcyA4NHB4LCAzIHJvd3MgYXQgMjJweCBwbHVzIHR3byAxMHB4IGdhcHNcbiAgLy8gaXMgODZweCAtIGFuZCBub3RoaW5nIGJlbG93IHRoZSBzdGVwcGVyIG1vdmVzLlxuICBAaW5jbHVkZSByZXNwb25kKHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGdhcDogMTBweDtcbiAgICAvLyBTaHJpbmsgdGhlIGJveCB0byBpdHMgd2lkZXN0IHN0ZXAsIHRoZW4gY2VudHJlIHRoZSBib3guIGFsaWduLWl0ZW1zIGtlZXBzXG4gICAgLy8gdGhlIHRocmVlIHJvd3Mgb24gb25lIHNoYXJlZCBsZWZ0IGVkZ2UgcmF0aGVyIHRoYW4gY2VudHJpbmcgZWFjaCByb3cgb25cbiAgICAvLyBpdHMgb3duIGxhYmVsLCB3aGljaCB3b3VsZCBsZWF2ZSBhIHJhZ2dlZCBsZWZ0LiBmaXQtY29udGVudCBjbGFtcHMgaXRzZWxmXG4gICAgLy8gdG8gdGhlIGNvbHVtbiB3aGVuIGEgdHJhbnNsYXRlZCBsYWJlbCBydW5zIGxvbmcsIHNvIHRoZXJlIGlzIG5vIG92ZXJmbG93XG4gICAgLy8gdG8gZ3VhcmQgYWdhaW5zdC5cbiAgICB3aWR0aDogLW1vei1maXQtY29udGVudDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3VtbWFyeSBwYWdlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbXBvdW5kIHNlbGVjdG9yIG9uIHB1cnBvc2U6IF9wYXNzcG9ydC5zY3NzIChtYXJrLWFkZGl0aW9ucyBidW5kbGUsIHdoaWNoIGxvYWRzXG4vLyBhZnRlciB0aGlzIHNoZWV0KSByZWRlZmluZXMgYC52aWV3LWZsZXggeyBmbGV4OiAwIDAgYXV0byB9YCwgd2hpY2ggY29sbGFwc2VzIHRoZVxuLy8gcGFnZSBhbmQgZmxvYXRzIHRoZSBzaXRlIGZvb3RlciB1cC4gTWF0Y2hpbmcgdHdvIGNsYXNzZXMgb3V0LXNwZWNpZmllcyBpdC5cbi52aWV3LWZsZXgucHJvZ3JhbS1zdW1tYXJ5LXBhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgLy8gc3RyZXRjaCwgbm90IGB3aWR0aDogMTAwJWA6IF9hdGhsZXRlX3NpZGViYXIuc2NzcyBpbmRlbnRzIHNpYmxpbmdzIG9mXG4gIC8vIC5tZW51LWNvbnRlbnQgd2l0aCBtYXJnaW4tbGVmdCwgYW5kIGEgdmlld3BvcnQtd2lkZSAxMDAlIGJveCB0aGVuIG92ZXJmbG93c1xuICAvLyB0byB0aGUgcmlnaHQgYW5kIGNlbnRyZXMgdGhlIGNvbHVtbiBhZ2FpbnN0IHRoZSB2aWV3cG9ydCBpbnN0ZWFkIG9mIHRoZVxuICAvLyByYWlsLWFkamFjZW50IGNvbnRlbnQgY29sdW1uIChhbmQgdGhlIHNpdGUgZm9vdGVyKS5cbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG59XG5cbi5wcm9ncmFtLXN1bW1hcnkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIC8vIE5vIHNpZGUgcGFkZGluZywgc28gdGhlIGNhcmRzIHNwYW4gdGhlIGZ1bGwgNjQwcHguIFZpZXdwb3J0cyBhdCBvciBiZWxvd1xuICAvLyA2NDBweCBwaWNrIHVwIHRoZWlyIG93biAxNnB4IGd1dHRlciBmcm9tIHRoZSBtZWRpYSBibG9jayBhdCB0aGUgZW5kLlxuICBwYWRkaW5nOiAzMnB4IDAgNDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICAvLyBOZXV0cmFsaXplIHRoZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgdXBwZXJjYXNlOyBsb2NrLWhlaWdodCB9IHJ1bGVzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciBjYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gIH1cblxuICAvLyBUaGUgcGljdHVyZSBpcyB0aGUgcG9zdGVyIGZyYW1lIG9mIHRoZSBsYXN0IGV4ZXJjaXNlLCBhbmQgdGhvc2UgYXJlIG5vdCBhbGwgb25lXG4gIC8vIHJhdGlvLiBUaGUgdGlsZSBob2xkcyB0aGUgODA4eDMxMiBzaGFwZSBvZiB0aGUgc3RvY2sgcGhvdG8gaXQgcmVwbGFjZWQgYW5kIGNyb3BzXG4gIC8vIHRoZSBmcmFtZSB0byBmaWxsIGl0LCBzbyB0aGUgaGVhZGVyIGlzIHRoZSBzYW1lIHNpemUgZm9yIGV2ZXJ5IHByb2dyYW0gYW5kIGRvZXNcbiAgLy8gbm90IHNoaWZ0IHdoZW4gdGhlIHBpY3R1cmUgYXJyaXZlcy4gVW50aWwgdGhlbiB0aGUgdGlsZSBzaG93cyBpdHMgYmFja2dyb3VuZC4gU2FtZSBjYWxsIGFzXG4gIC8vIC5kYWlseS1wcm9ncmFtX190aHVtYi5cbiAgJl9fdGh1bWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogODhweDtcbiAgICBhc3BlY3QtcmF0aW86IDgwOCAvIDMxMjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tc3VtbWFyeS1jaGlwLWJnO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPbmx5IHJlbmRlcmVkIG9uY2UgdGhlcmUgaXMgYSBwaWN0dXJlLCBzbyB0aGUgdGlsZSBuZXZlciBob2xkcyBhbiBpbWFnZSB3aXRoIG5vIHNyYy5cbiAgJl9fdGh1bWItaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cblxuICAmX19pZGVudGl0eSB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIDhweCB3YXMgdHVuZWQgZm9yIGNoaXBzIHRoYXQgY2FycmllZCB0aGVpciBvd24gMTBweCBvZiBwYWRkaW5nOyBub3cgdGhhdFxuICAvLyBXZWVrcyAvIERheXMgYXJlIHVucGFkZGVkIHRoZSByb3cgbmVlZHMgdGhlIHNlcGFyYXRpb24gaW4gdGhlIGdhcCBpbnN0ZWFkLlxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gIC8vIFdlZWtzIC8gRGF5cy1wZXItd2VlayByZWFkIGFzIHBsYWluIG1ldGFkYXRhIC0gbm8gZmlsbCwgYW5kIG5vIHBhZGRpbmcgZWl0aGVyLFxuICAvLyB3aGljaCBvbiBhIHRyYW5zcGFyZW50IGNoaXAgd291bGQgb25seSBwdXNoIHRoZSByb3cgYXBhcnQuXG4gICZfX2NoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIC8vIFRoZSBwcm9ncmFtIHR5cGUgaXMgdGhlIG9uZSBjaGlwIHRoYXQgc3RheXMgYSBiYWRnZS5cbiAgICAmLS10eXBlIHtcbiAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLTIwMDtcbiAgICB9XG4gIH1cblxuICAmX19jaGlwLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gLS0gc2Vzc2lvbiB0YWJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNYXRjaGVzIHRoZSBwcmFjdGl0aW9uZXIgYnVpbGQgcGFnZSAoX3Byb2dyYW1fYnVpbGQuc2Nzcyk6IGEgMzZweCB0cmFja1xuICAvLyBob2xkaW5nIGZpeGVkIDgzeDI4IHNlbGVjdG9ycy5cbiAgJl9fdGFicyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLXN1bW1hcnktY2hpcC1iZztcbiAgfVxuXG4gICZfX3RhYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA4M3B4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAycHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBhY2NvcmRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3NlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICAmX19zZWN0aW9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIENlbnRyZWQgaW4gYSAzNnB4IGJveCB0byBtYXRjaCB0aGUgcGxheSBidXR0b24gb24gdGhlIGV4ZXJjaXNlIHJvd3MgYmVsb3cuXG4gIC8vIEJvdGggc2l0IGFnYWluc3QgdGhlIHNhbWUgMjBweCBndXR0ZXIsIHNvIGVxdWFsIHdpZHRocyBwdXQgdGhlaXIgY2VudHJlcyBvblxuICAvLyBvbmUgdmVydGljYWwgbGluZS4gV2lkdGggb25seSAtIGEgMzZweCBoZWlnaHQgd291bGQgc3RyZXRjaCB0aGUgaGVhZGVyLlxuICAmX19zZWN0aW9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM2cHg7XG5cbiAgICAvLyBUaGUgc3ZnIHBvaW50cyB1cCAoZXhwYW5kZWQpOyBmbGlwIGl0IGZvciBhIGNvbGxhcHNlZCBzZWN0aW9uLlxuICAgICYtLWNvbGxhcHNlZCBzdmcge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG4gIH1cblxuICAmX19zZWN0aW9uLWJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICB9XG5cbiAgLy8gLS0gZXhlcmNpc2Ugcm93cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBGaXhlZCA2MnB4IHJvd3MuIE5vdGhpbmcgaW5zaWRlIGlzIHRhbGxlciB0aGFuIHRoZSAzNnB4IHBsYXkgYnV0dG9uLCBzbyB0aGVcbiAgLy8gY29udGVudCBjZW50cmVzIHdpdGhvdXQgdmVydGljYWwgcGFkZGluZyAtIGFuZCBfX2V4ZXJjaXNlLW5hbWUgdHJ1bmNhdGVzXG4gIC8vIHJhdGhlciB0aGFuIHdyYXBwaW5nLCB3aGljaCB3b3VsZCBvdGhlcndpc2UgcHVzaCBhIHJvdyBwYXN0IHRoZSBoZWlnaHQuXG4gICZfX2V4ZXJjaXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA2MnB4O1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICB9XG4gIH1cblxuICAmX19leGVyY2lzZS1pbmZvIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19leGVyY2lzZS1uYW1lIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gVGhlIHVuY2xhc3NlZCB2YWx1ZSBzcGFucyBpbmhlcml0IGZyb20gaGVyZSwgc28gNTAwIGlzIHRoZSB2YWx1ZSB3ZWlnaHQgYW5kXG4gIC8vIF9fYXR0cmlidXRlLWxhYmVsIG92ZXJyaWRlcyBpdCBiYWNrIHRvIDYwMCBmb3IgdGhlIFwiU2V0czpcIiAvIFwiUmVwczpcIiBsYWJlbHMuXG4gICZfX2V4ZXJjaXNlLWF0dHJpYnV0ZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHggMTZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX2F0dHJpYnV0ZS1sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLXBsYXkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHByb2dyYW0tc3VtbWFyeS1jaGlwLWJnO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBwbGF5IGFzc2V0IGlzIGZ1bGwtYmxlZWQgaW4gaXRzIGNhbnZhcywgc28gMTZweCBsYW5kcyBpdCBvbiB0aGUgc2FtZVxuICAvLyBvcHRpY2FsIHNpemUgdGhlIHByYWN0aXRpb25lciBwYWdlIGdpdmVzIGl0LlxuICAmX19leGVyY2lzZS1wbGF5LWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gLS0gbG9hZGluZyBza2VsZXRvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19za2VsZXRvbiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAmLS1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbiAgICB9XG4gIH1cblxuICAmX19za2VsZXRvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgfVxuXG4gIC8vIFNhbWUgODA4eDMxMiBib3ggYXMgdGhlIHJlYWwgdGlsZS5cbiAgJl9fc2tlbGV0b24tdGh1bWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogODhweDtcbiAgICBhc3BlY3QtcmF0aW86IDgwOCAvIDMxMjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1pZGVudGl0eSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiA3MiU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gTWlycm9ycyBfX21ldGE6IHR5cGUgYmFkZ2UgcGx1cyB3ZWVrcyBhbmQgZGF5cy1wZXItd2VlayBjaGlwcy5cbiAgJl9fc2tlbGV0b24tbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1jaGlwIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICYtLXR5cGUge1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgd2lkdGg6IDg4cHg7XG4gICAgfVxuXG4gICAgJi0td2Vla3Mge1xuICAgICAgd2lkdGg6IDcycHg7XG4gICAgfVxuXG4gICAgJi0tZnJlcXVlbmN5IHtcbiAgICAgIHdpZHRoOiAxMDRweDtcbiAgICB9XG4gIH1cblxuICAmX19za2VsZXRvbi10YWJzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IDI1OHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXNlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc2VjdGlvbi10aXRsZSB7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiA1NSU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiA0NnB4O1xuICAgIHdpZHRoOiAxMTBweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICB3aWR0aDogMTQwcHg7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gZm9vdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgJl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYtLXByaW1hcnkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIHBhZGRpbmc6IDIwcHggMTZweCA0MHB4O1xuXG4gICAgJl9faGVhZGVyLFxuICAgICZfX3NrZWxldG9uLWhlYWRlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tdGh1bWIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLy8gRnVsbCB3aWR0aDsgdGhlIGhlaWdodCBmb2xsb3dzIGZyb20gdGhlIHRpbGUncyA4MDh4MzEyIHJhdGlvLCBub3QgdGhlIHBpY3R1cmUncy5cbiAgICAmX190aHVtYiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgfVxuXG4gICAgJl9fdGFicyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gU3RlcCAxIG9mIHRoZSBTY2hlZHVsZSBQcm9ncmFtIGZsb3cgZm9yIHByYWN0aXRpb25lcnNcbi8vICgvIy9wcm9ncmFtLzphdGhsZXRlSWQvOmF0aGxldGVQcm9ncmFtSWQvZWRpdCk6IHRoZSBlZGl0YWJsZSBwcm9ncmFtIGJ1aWxkZXIuXG4vLyBNaXJyb3JzIF9wcm9ncmFtX3N1bW1hcnkuc2NzcyAodGhlIG1lbWJlcidzIHJlYWQtb25seSBzdGVwIDEpIGFuZCBhZGRzIHRoZVxuLy8gZWRpdGluZyBhZmZvcmRhbmNlcyAtIHBlci10ZWNobmlxdWUgQWRkIEV4ZXJjaXNlLCB0aGUgUmVtb3ZlIEFsbCAvIEVkaXQgQWxsXG4vLyBrZWJhYiwgcGVyLWV4ZXJjaXNlIGFjdGlvbnMgYW5kIHJlb3JkZXIgYXJyb3dzLlxuLy8gVGhlIC5zY2hlZHVsZS1zdGVwcyBzdGVwcGVyIGlzIHNoYXJlZCBhbmQgbGl2ZXMgaW4gX3Byb2dyYW1fc3VtbWFyeS5zY3NzLlxuXG4kcHJvZ3JhbS1idWlsZC1jaGlwLWJnOiAjZjJmMmY0O1xuJHByb2dyYW0tYnVpbGQtZGFuZ2VyOiAjYzAzOTJiO1xuJHByb2dyYW0tYnVpbGQtbWVudS1zaGFkb3c6IDAgOHB4IDIwcHggMCByZ2JhKDE2LCAyNCwgNDAsIDAuMTIpO1xuXG4vLyBDb21wb3VuZCBzZWxlY3RvciBvbiBwdXJwb3NlOiBfcGFzc3BvcnQuc2NzcyAobWFyay1hZGRpdGlvbnMgYnVuZGxlLCB3aGljaCBsb2Fkc1xuLy8gYWZ0ZXIgdGhpcyBzaGVldCkgcmVkZWZpbmVzIGAudmlldy1mbGV4IHsgZmxleDogMCAwIGF1dG8gfWAsIHdoaWNoIGNvbGxhcHNlcyB0aGVcbi8vIHBhZ2UgYW5kIGZsb2F0cyB0aGUgc2l0ZSBmb290ZXIgdXAuIE1hdGNoaW5nIHR3byBjbGFzc2VzIG91dC1zcGVjaWZpZXMgaXQuXG4udmlldy1mbGV4LnByb2dyYW0tYnVpbGQtcGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBzdHJldGNoLCBub3QgYHdpZHRoOiAxMDAlYDogX2F0aGxldGVfc2lkZWJhci5zY3NzIGluZGVudHMgc2libGluZ3Mgb2ZcbiAgLy8gLm1lbnUtY29udGVudCB3aXRoIG1hcmdpbi1sZWZ0LCBhbmQgYSB2aWV3cG9ydC13aWRlIDEwMCUgYm94IHRoZW4gb3ZlcmZsb3dzXG4gIC8vIHRvIHRoZSByaWdodCBhbmQgY2VudHJlcyB0aGUgY29sdW1uIGFnYWluc3QgdGhlIHZpZXdwb3J0IGluc3RlYWQgb2YgdGhlXG4gIC8vIHJhaWwtYWRqYWNlbnQgY29udGVudCBjb2x1bW4gKGFuZCB0aGUgc2l0ZSBmb290ZXIpLlxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbn1cblxuLnByb2dyYW0tYnVpbGQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgLy8gNjg4IC0gMiB4IDI0cHggcGFkZGluZyA9IGEgNjQwcHggY29udGVudCBjb2x1bW4sIGNlbnRlcmVkLCBtYXRjaGluZyBzdGVwIDJcbiAgLy8gb2YgdGhlIFNjaGVkdWxlIFByb2dyYW0gZmxvdyAoX3NjaGVkdWxlX2J1aWxkLnNjc3MgLnByb2dyYW0tc2NoZWR1bGUtLW5hcnJvdykuXG4gIG1heC13aWR0aDogNjg4cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAzMnB4IDI0cHggNDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICAvLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC8vIC0tIGxvYWRpbmcgc2tlbGV0b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWlycm9ycyB0aGUgcmVhbCBzdGFjayBhYm92ZTogdHlwZSB0YWJzLCBoZWFkZXIgY2FyZCwgc2Vzc2lvbiB0YWJzLCBvbmVcbiAgLy8gc3RyYXRlZ3kgaGVhZGluZyBhbmQgdGhyZWUgdGVjaG5pcXVlIGNhcmRzLCB0aGVuIHRoZSBmb290ZXIgYnV0dG9ucy5cbiAgLy8gU2l0cyBvdmVyIHRoZSBtb3VudGVkIG1hcmt1cCB3aGlsZSBuZy1pZiBjb21waWxlcywgdGhlbiBkcm9wcy5cbiAgJl9fc2tlbGV0b24ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgJi0tb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgfVxuICB9XG5cbiAgJl9fc2tlbGV0b24tdHlwZS10YWJzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDQ2cHg7XG4gICAgd2lkdGg6IDM0MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICB9XG5cbiAgLy8gU2FtZSA4MDh4MzEyIGJveCBhcyB0aGUgcmVhbCB0aWxlLlxuICAmX19za2VsZXRvbi10aHVtYiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiA4OHB4O1xuICAgIGFzcGVjdC1yYXRpbzogODA4IC8gMzEyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWlkZW50aXR5IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgfVxuXG4gIC8vIDMwcHggdHlwZSBhdCBsaW5lLWhlaWdodCAxLjIgPSAzNnB4LlxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHdpZHRoOiA3MiU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gIC8vIENoaXAgaGVpZ2h0IGlzIHRoZSByZWFsIDEzcHgvNTAwIGxhYmVsIHBsdXMgNHB4IHBhZGRpbmcgdG9wIGFuZCBib3R0b20uXG4gICZfX3NrZWxldG9uLWNoaXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGhlaWdodDogMjZweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi0tdHlwZSB7XG4gICAgICB3aWR0aDogMTA0cHg7XG4gICAgfVxuXG4gICAgJi0td2Vla3Mge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgfVxuXG4gICAgJi0tZnJlcXVlbmN5IHtcbiAgICAgIHdpZHRoOiAxMTZweDtcbiAgICB9XG4gIH1cblxuICAvLyBNYXRjaGVzIHRoZSAzNnB4IHNlZ21lbnRlZCB0cmFjayBob2xkaW5nIHRocmVlIDgzcHggdGFicyBwbHVzIGl0cyBwYWRkaW5nLlxuICAmX19za2VsZXRvbi10YWJzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IDI2NXB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXN0cmF0ZWd5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1zdHJhdGVneS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RyYXRlZ3ktbmFtZSB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAxNDhweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi10ZWNobmlxdWVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10ZWNobmlxdWUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tdGVjaG5pcXVlLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10ZWNobmlxdWUtdGl0bGUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tYWRkLWV4ZXJjaXNlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTM4cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWtlYmFiIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tdGVjaG5pcXVlLWJvZHkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZXhlcmNpc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuXG4gICAgJiArICYge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fc2tlbGV0b24tcmVvcmRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWV4ZXJjaXNlLWluZm8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1leGVyY2lzZS1uYW1lIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgd2lkdGg6IDQ2JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogMzQlO1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLWV4ZXJjaXNlLWF0dHJpYnV0ZXMge1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogMTI4cHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZXhlcmNpc2UtYWN0aW9ucyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZXhlcmNpc2UtYWN0aW9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gIC8vIDE1cHgvNjAwIGxhYmVsIHBsdXMgMTJweCBwYWRkaW5nIGFuZCB0aGUgMXB4IGJvcmRlciBvbiBlYWNoIHNpZGUuXG4gICZfX3NrZWxldG9uLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiA0NnB4O1xuICAgIHdpZHRoOiAxMTJweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICB3aWR0aDogMTQycHg7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gcHJvZ3JhbSB0eXBlIHRhYnMgKHVuZGVybGluZWQsIGFib3ZlIHRoZSBoZWFkZXIgY2FyZCkgLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fdHlwZS10YWJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gIH1cblxuICAmX190eXBlLXRhYiB7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgLy8gXCJQcmFjdGl0aW9uZXIgTGlnaHRcIiBpcyB0d28gd29yZHMsIHNvIHdpdGhvdXQgdGhpcyBpdCBicmVha3MgYWNyb3NzIHR3b1xuICAgIC8vIGxpbmVzIGFzIHNvb24gYXMgdGhlIHN0cmlwIGlzIHNxdWVlemVkIGFuZCB0aGUgdW5kZXJsaW5lIGluZGljYXRvciBncm93c1xuICAgIC8vIHRvIG1hdGNoLiBUaGUgcGhvbmUgdGllciBiZWxvdyBzaHJpbmtzIHRoZSB0eXBlIGluc3RlYWQuXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvLyBUaGUgZ2xvYmFsIGJ1dHRvbiBydWxlIHJvdW5kcyBldmVyeSBjb3JuZXIsIHdoaWNoIGJvd3MgdGhlIGVuZHMgb2YgdGhlXG4gICAgLy8gdW5kZXJsaW5lOyB0aGUgc2VsZWN0ZWQgaW5kaWNhdG9yIGhhcyB0byByZWFkIGFzIGEgc3RyYWlnaHQgcnVsZS5cbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuXG4gICAgLy8gQSB0eXBlIHRoZSBwcm9ncmFtIGhhcyBubyBzZXNzaW9ucyBmb3Iga2VlcHMgaXRzIHBsYWNlIGluIHRoZSBzdHJpcCByYXRoZXJcbiAgICAvLyB0aGFuIGNvbGxhcHNpbmcgdGhlIGNvbnRyb2wgLSBncmV5ZWQgb3V0IGFuZCBub3Qgc2VsZWN0YWJsZS5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBcIkxpZ2h0XCIgLyBcIlByb1wiIGlzIHBhcnQgb2YgdGhlIHRhYiBsYWJlbCwgbm90IGFuIGFubm90YXRpb24gb24gaXQgLSBtYXRjaGluZ1xuICAvLyB0aGUgd2VpZ2h0IGFuZCBjb2xvdXIga2VlcHMgYSB0YWIgZnJvbSByZWFkaW5nIGFzIHR3byBkaWZmZXJlbnQgZ3JleXMuXG4gICZfX3R5cGUtdGFiLXRhZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciBjYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gIH1cblxuICAvLyBUaGUgcGljdHVyZSBpcyB0aGUgcG9zdGVyIGZyYW1lIG9mIHRoZSBsYXN0IGV4ZXJjaXNlLCBhbmQgdGhvc2UgYXJlIG5vdCBhbGwgb25lXG4gIC8vIHJhdGlvLiBUaGUgdGlsZSBob2xkcyB0aGUgODA4eDMxMiBzaGFwZSBvZiB0aGUgc3RvY2sgcGhvdG8gaXQgcmVwbGFjZWQgYW5kIGNyb3BzXG4gIC8vIHRoZSBmcmFtZSB0byBmaWxsIGl0LCBzbyB0aGUgaGVhZGVyIGlzIHRoZSBzYW1lIHNpemUgZm9yIGV2ZXJ5IHByb2dyYW0gYW5kIGRvZXNcbiAgLy8gbm90IHNoaWZ0IHdoZW4gdGhlIHBpY3R1cmUgYXJyaXZlcy4gVW50aWwgdGhlbiB0aGUgdGlsZSBzaG93cyBpdHMgYmFja2dyb3VuZC4gU2FtZSBjYWxsIGFzXG4gIC8vIC5kYWlseS1wcm9ncmFtX190aHVtYi5cbiAgJl9fdGh1bWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogODhweDtcbiAgICBhc3BlY3QtcmF0aW86IDgwOCAvIDMxMjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tYnVpbGQtY2hpcC1iZztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT25seSByZW5kZXJlZCBvbmNlIHRoZXJlIGlzIGEgcGljdHVyZSwgc28gdGhlIHRpbGUgbmV2ZXIgaG9sZHMgYW4gaW1hZ2Ugd2l0aCBubyBzcmMuXG4gICZfX3RodW1iLWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICB9XG5cbiAgJl9faWRlbnRpdHkge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tYnVpbGQtY2hpcC1iZztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fY2hpcC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIC0tIHNlc3Npb24gdGFicyAoc2VnbWVudGVkKSArIHdoaXRlYm9hcmQgY29weSBjb250cm9scyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3Nlc3Npb24tcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gIC8vIDM2cHggdHJhY2sgaG9sZGluZyBhIDI4cHggc2VsZWN0b3I6IDRweCBvZiBwYWRkaW5nIG9uIGVhY2ggc2lkZS4gbWluLWhlaWdodFxuICAvLyByYXRoZXIgdGhhbiBoZWlnaHQgc28gdGhlIG1vYmlsZSBvdmVyZmxvdy14IHNjcm9sbGJhciBjYW5ub3Qgc3F1YXNoIHRoZSB0YWJzLlxuICAmX190YWJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBnYXA6IDRweDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWJ1aWxkLWNoaXAtYmc7XG4gIH1cblxuICAvLyBGaXhlZCA4M3gyOCBzZWxlY3Rvci4gZmxleC1zaHJpbmsgaXMgb2ZmIHNvIHRoZSBtb2JpbGUgc2Nyb2xsIGNvbnRhaW5lclxuICAvLyBjYW5ub3Qgc3F1ZWV6ZSBpdCBiZWxvdyB0aGUgc3BlYyB3aWR0aC5cbiAgJl9fdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDgzcHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDJweCAxMnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvcHktY29udHJvbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gIC8vIC0tIHN0cmF0ZWd5IGdyb3VwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fc3RyYXRlZ3ktZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICAmX19zdHJhdGVneSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICB9XG5cbiAgJl9fc3RyYXRlZ3ktaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX3N0cmF0ZWd5LWltYWdlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX3N0cmF0ZWd5LW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gLS0gdGVjaG5pcXVlIGNhcmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX190ZWNobmlxdWVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fdGVjaG5pcXVlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgfVxuXG4gIC8vIEZpeGVkIDYwcHguIFRoZSAzNnB4IEFkZCBFeGVyY2lzZSBidXR0b24gaXMgdGhlIHRhbGxlc3QgY2hpbGQsIHNvIGl0IGNlbnRyZXNcbiAgLy8gaW5zaWRlIHRoZSBoZWlnaHQgd2l0aG91dCBuZWVkaW5nIHZlcnRpY2FsIHBhZGRpbmcuXG4gICZfX3RlY2huaXF1ZS1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgfVxuXG4gICZfX3RlY2huaXF1ZS10aXRsZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fYWRkLWV4ZXJjaXNlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBrZWJhYiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE9wZW4vY2xvc2UgaXMgaGFuZGxlZCBlbnRpcmVseSBieSB0aGUgdG9nZ2xlLWNvbnRhaW5lciAvIHRvZ2dsZS1zb3VyY2UgL1xuICAvLyB0b2dnbGUtdGFyZ2V0IGRpcmVjdGl2ZXMgKHNjcmlwdHMvZGlyZWN0aXZlcy9Ub2dnbGUuanMpLCB3aGljaCBzd2FwIHRoZVxuICAvLyBgaGlkZGVuYCBjbGFzcyBvbiB0aGUgcGFuZWwuIFNhbWUgd2lyaW5nIGFzIHRoZSB1cGNvbWluZy1zZXNzaW9uIGtlYmFiLlxuICAmX19tZW51IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAmX19rZWJhYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzJweDtcbiAgICBtaW4td2lkdGg6IDMycHg7XG4gICAgbWF4LXdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBtaW4taGVpZ2h0OiAzMnB4O1xuICAgIG1heC1oZWlnaHQ6IDMycHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1idWlsZC1jaGlwLWJnO1xuICAgICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudS1saXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4td2lkdGg6IDE2OHB4O1xuICAgIHBhZGRpbmc6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRwcm9ncmFtLWJ1aWxkLW1lbnUtc2hhZG93O1xuXG4gICAgLy8gX3Byb2dyYW1fY2FyZHMuc2NzcyByZWxpZXMgb24gdGhlIGdsb2JhbCAuaGlkZGVuIGFuZCBsb3NlcyB0byBsYXRlciBydWxlcztcbiAgICAvLyBkZWNsYXJlIGl0IGxvY2FsbHkgdGhlIHdheSB0aGUgdXBjb21pbmctc2Vzc2lvbiBtZW51IGRvZXMuXG4gICAgJi5oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWJ1aWxkLWNoaXAtYmc7XG4gICAgfVxuXG4gICAgJi0tZGFuZ2VyIHtcbiAgICAgIGNvbG9yOiAkcHJvZ3JhbS1idWlsZC1kYW5nZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gZXhlcmNpc2Ugcm93cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX190ZWNobmlxdWUtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gIH1cblxuICAvLyBGaXhlZCA2NHB4IHJvd3MuIFRoZSB0YWxsZXN0IGNoaWxkIGlzIHRoZSAzNnB4IGFjdGlvbiBidXR0b24sIHNvIHRoZXJlIGlzIHJvb21cbiAgLy8gdG8gY2VudHJlIGV2ZXJ5dGhpbmcgd2l0aG91dCB2ZXJ0aWNhbCBwYWRkaW5nIC0gYW5kIF9fZXhlcmNpc2UtbmFtZSB0cnVuY2F0ZXNcbiAgLy8gcmF0aGVyIHRoYW4gd3JhcHBpbmcsIHdoaWNoIGlzIHdoYXQgdXNlZCB0byBwdXNoIHRoZXNlIHRvIDgwcHguXG4gICZfX2V4ZXJjaXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpeGVkIHdpZHRoIHdoZXRoZXIgb3Igbm90IGl0IGhvbGRzIGEgYnV0dG9uLCBzbyB0aGUgbGFzdCByb3cgKHdoaWNoIGhhc1xuICAvLyBub3doZXJlIHRvIG1vdmUgZG93biB0bykgc3RpbGwgbGluZXMgaXRzIG5hbWUgdXAgd2l0aCB0aGUgcm93cyBhYm92ZSBpdC5cbiAgJl9fcmVvcmRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAyMHB4O1xuICB9XG5cbiAgJl9fcmVvcmRlci1idXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZXhlcmNpc2UtaW5mbyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIFRoZSB1bmNsYXNzZWQgdmFsdWUgc3BhbnMgaW5oZXJpdCBmcm9tIGhlcmUsIHNvIDUwMCBpcyB0aGUgdmFsdWUgd2VpZ2h0IGFuZFxuICAvLyBfX2F0dHJpYnV0ZS1sYWJlbCBvdmVycmlkZXMgaXQgYmFjayB0byA2MDAgZm9yIHRoZSBcIlNldHM6XCIgLyBcIlJlcHM6XCIgbGFiZWxzLlxuICAmX19leGVyY2lzZS1hdHRyaWJ1dGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4IDhweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcblxuICAgIC8vIEJ1bGxldCBiZXR3ZWVuIGF0dHJpYnV0ZSBwYWlycy4gQWRqYWNlbmN5IGlnbm9yZXMgQW5ndWxhcidzIG5nLWlmIGNvbW1lbnRcbiAgICAvLyBub2Rlcywgc28gdGhpcyBob2xkcyBob3dldmVyIG1hbnkgYXR0cmlidXRlcyB0aGUgZXhlcmNpc2UgaGFwcGVucyB0byBoYXZlLlxuICAgID4gc3BhbiArIHNwYW46OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDIyJztcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgY29sb3I6ICRibGFjay0yMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYXR0cmlidXRlLWxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtYWN0aW9ucyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG5cbiAgLy8gVHJhc2ggYW5kIHBlbmNpbCBhcmUgdGhlIHNoYXJlZCBQTkcgYXNzZXRzIHRoZSBwcm9ncmFtIGNhcmRzIHVzZVxuICAvLyAoaWNvbi1kZWxldGUtdHJhc2gucG5nIC8gbXktc2NoZWR1bGUtZWRpdC5wbmcpIC0gdGhleSBjYXJyeSB0aGVpciBvd24gY29sb3VyLFxuICAvLyBzbyB0aGUgaG92ZXIgc3RhdGUgb25seSB0aW50cyB0aGUgYmFja2dyb3VuZC4gVGhlIHByZXZpZXcgYnV0dG9uIHN0YXlzIGFuXG4gIC8vIGlubGluZSBTVkcsIG1hdGNoaW5nIHRoZSBzdW1tYXJ5IHBhZ2UncyBwbGF5IGNvbnRyb2wuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1idWlsZC1jaGlwLWJnO1xuICAgIH1cblxuICAgICYtLWRhbmdlcjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmVmM2YyO1xuICAgIH1cbiAgfVxuXG4gIC8vIDI0cHgsIG5vdCB0aGUgMTZweCB0aGUgY29sb3VyZWQgaWNvbnMgdXNlIGVsc2V3aGVyZTogdGhlIC1ncmF5c2NhbGUgZXhwb3J0c1xuICAvLyBjYXJyeSB0cmFuc3BhcmVudCBwYWRkaW5nICh0aGUgZ2x5cGggZmlsbHMgfjU4LTY3JSBvZiBpdHMgY2FudmFzLCB2cyA4OC0xMDAlXG4gIC8vIGZvciB0aGUgY29sb3VyZWQgcGFpciksIHNvIGEgMTZweCBib3ggd291bGQgZHJhdyB0aGVtIG5vdGljZWFibHkgc21hbGxlci5cbiAgLy8gQXQgMjRweCB0aGUgZ2x5cGhzIGxhbmQgb24gfjE2cHggYW5kIH4xNHB4LCBtYXRjaGluZyB0aGUgY29sb3VyZWQgdmVyc2lvbnMuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbi1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcblxuICAgIC8vIFRoZSBwbGF5IGFzc2V0IGlzIGZ1bGwtYmxlZWQgaW4gaXRzIGNhbnZhcywgc28gaXQgbmVlZHMgdGhlIHNtYWxsZXIgYm94IHRvXG4gICAgLy8gbGFuZCBvbiB0aGUgc2FtZSBvcHRpY2FsIHNpemUgYXMgdGhlIHBhZGRlZCB0cmFzaCBhbmQgcGVuY2lsIGFib3ZlLlxuICAgICYtLXBsYXkge1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2FkZC1zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBmb290ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAmX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHggNDBweDtcblxuICAgICZfX3R5cGUtdGFicyxcbiAgICAmX190YWJzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB9XG5cbiAgICAmX190eXBlLXRhYnMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAvLyBgc2FmZWAgZHJvcHMgYmFjayB0byBmbGV4LXN0YXJ0IG9uY2UgdGhlIHN0cmlwIGlzIHdpZGVyIHRoYW4gdGhlIGNvbHVtbixcbiAgICAgIC8vIHNvIHRoZSBvdmVyZmxvdy14IHNjcm9sbCBhYm92ZSBjYW4gc3RpbGwgcmVhY2ggdGhlIGZpcnN0IHRhYiBpbnN0ZWFkIG9mXG4gICAgICAvLyBzdHJhbmRpbmcgaXQgcGFzdCB0aGUgbGVmdCBlZGdlLiBCcm93c2VycyB3aXRob3V0IHRoZSBrZXl3b3JkIGlnbm9yZSB0aGlzXG4gICAgICAvLyBzZWNvbmQgZGVjbGFyYXRpb24gYW5kIGtlZXAgdGhlIHBsYWluIGBjZW50ZXJgIGFib3ZlLlxuICAgICAganVzdGlmeS1jb250ZW50OiBzYWZlIGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBLZWVwIHRoZSBwbGFjZWhvbGRlciB1bmRlciB0aGUgc2FtZSBjZW50cmVkIHN0cmlwIGl0IHN0YW5kcyBpbiBmb3IuXG4gICAgJl9fc2tlbGV0b24tdHlwZS10YWJzIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX3RhYnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgIC8vIEZ1bGwgd2lkdGg7IHRoZSBoZWlnaHQgZm9sbG93cyBmcm9tIHRoZSB0aWxlJ3MgODA4eDMxMiByYXRpbywgbm90IHRoZSBwaWN0dXJlJ3MuXG4gICAgJl9fdGh1bWIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cblxuICAgIC8vIFRpdGxlLCBidXR0b24gYW5kIGtlYmFiIGVhY2ggdGFrZSB0aGVpciBvd24gbGluZSBoZXJlLCBzbyB0aGUgcm93IGdyb3dzLlxuICAgICZfX3RlY2huaXF1ZS1oZWFkZXIge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIH1cblxuICAgICZfX3RlY2huaXF1ZS10aXRsZSB7XG4gICAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICB9XG5cbiAgICAmX19hZGQtZXhlcmNpc2Uge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBUaGUgYWN0aW9ucyB3cmFwIG9udG8gdGhlaXIgb3duIGxpbmUgaGVyZSwgc28gdGhlIHJvdyBoYXMgdG8gZ3JvdyBwYXN0IHRoZVxuICAgIC8vIGZpeGVkIGRlc2t0b3AgaGVpZ2h0IHJhdGhlciB0aGFuIGNsaXBwaW5nIHRoZW0uXG4gICAgJl9fZXhlcmNpc2Uge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fZXhlcmNpc2UtYWN0aW9ucyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgIC8vIFNrZWxldG9uIGZvbGxvd3MgdGhlIHNhbWUgbW9iaWxlIHJlZmxvdyBhcyB0aGUgbWFya3VwIGl0IHN0YW5kcyBpbiBmb3IuXG4gICAgJl9fc2tlbGV0b24taGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi10aHVtYiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgICBoZWlnaHQ6IDI5cHg7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tdGVjaG5pcXVlLWhlYWRlciB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tdGVjaG5pcXVlLXRpdGxlIHtcbiAgICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLWFkZC1leGVyY2lzZSB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLWV4ZXJjaXNlIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLWV4ZXJjaXNlLWFjdGlvbnMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLWZvb3RlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi1idXR0b24ge1xuICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICYtLXByaW1hcnkge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBBdCB0aGVpciBkZXNrdG9wIHNpemUgKDE1cHggdHlwZSBwbHVzIDE2cHggb2YgcGFkZGluZyBhIHNpZGUpIHRoZSB0aHJlZSB0eXBlXG4gIC8vIHRhYnMgdG90YWwgfjQwOXB4LCB3aWRlciB0aGFuIHRoZSBjb250ZW50IGNvbHVtbiBiZWxvdyB+NDQwcHgsIHNvIHRoZXlcbiAgLy8gd3JhcHBlZCBvbnRvIGEgc2Vjb25kIGxpbmUuIDEzcHggdHlwZSB3aXRoIDhweCBvZiBwYWRkaW5nIG1lYXN1cmVzIH4zMjBweCBpblxuICAvLyBIZWx2ZXRpY2EgTmV1ZSBCb2xkIChcIlNlbGYtQ2FyZVwiIDc0ICsgXCJQcmFjdGl0aW9uZXIgTGlnaHRcIiAxMjQgK1xuICAvLyBcIlByYWN0aXRpb25lciBQcm9cIiAxMTQsIHBsdXMgdHdvIDRweCBnYXBzKSwgd2hpY2ggY2xlYXJzIHRoZSAzNDNweCBjb2x1bW4gb2ZcbiAgLy8gYSAzNzVweCBwaG9uZSB3aXRoIHJvb20gdG8gc3BhcmUgZm9yIGEgd2lkZXIgZmFsbGJhY2sgZmFjZS4gZmxleC13cmFwIGlzIG9mZlxuICAvLyBzbyBhbnl0aGluZyBuYXJyb3dlciBzY3JvbGxzIHRoZSBzdHJpcCAob3ZlcmZsb3cteCwgc2V0IGluIHRoZSBtb2JpbGUgdGllclxuICAvLyBhYm92ZSkgcmF0aGVyIHRoYW4gc2lsZW50bHkgc3RhY2tpbmcgaXQgYWdhaW4uXG4gIEBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgICAmX190eXBlLXRhYiB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cblxuICAgICZfX3R5cGUtdGFicyB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFN0ZXAgMiBvZiB0aGUgU2NoZWR1bGUgUHJvZ3JhbSBmbG93ICgvIy9zY2hlZHVsZS86YXRobGV0ZUlkLzphdGhsZXRlUHJvZ3JhbUlkLFxuLy8gdm0udmlldyA9PT0gJ3dlZWsnKTogcGljayBhIHNlc3Npb24sIGNsaWNrIGl0IG9udG8gYSB3ZWVrZGF5LlxuLy8gU2hhcmVzIGl0cyB0b2tlbiB2YWx1ZXMgd2l0aCBfcHJvZ3JhbV9zdW1tYXJ5LnNjc3MuXG5cbi8vIFNlc3Npb25zIGJlbG9uZ2luZyB0byBhIGRpZmZlcmVudCBwcm9ncmFtLCBsaXN0ZWQgdW5kZXIgXCJBbHNvIHNjaGVkdWxlZFwiLlxuJHNjaGVkdWxlLWJ1aWxkLW1ldGEtc2VwOiAjYzRjNGM4O1xuXG4vLyByci1jYWxlbmRhci1pY29uLnN2ZyBmcm9tIHRoZSBkZXNpZ24gc3lzdGVtIChhcHAgcmVwbyBzcmMvYXNzZXRzL3N2ZyksIGlubGluZWQgc29cbi8vIGl0IGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgc3ZnL2ZvbnQgZmlsZS1sb2FkZXIgb3JkZXJpbmcgaW4gd2VicGFjay5jb25maWcuXG4kc2NoZWR1bGUtYnVpbGQtY2FsZW5kYXItaWNvbjogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyIHdpZHRoJTNEJTIyMTYlMjIgaGVpZ2h0JTNEJTIyMTYlMjIgdmlld0JveCUzRCUyMjAgMCAxNiAxNiUyMiBmaWxsJTNEJTIybm9uZSUyMiUzRSUzQ3BhdGggZCUzRCUyMk0xMi42NjY3IDEuMzMzMzNIMTJWMC42NjY2NjdDMTIgMC40ODk4NTYgMTEuOTI5OCAwLjMyMDI4NiAxMS44MDQ3IDAuMTk1MjYyQzExLjY3OTcgMC4wNzAyMzc5IDExLjUxMDEgMCAxMS4zMzMzIDBDMTEuMTU2NSAwIDEwLjk4NyAwLjA3MDIzNzkgMTAuODYxOSAwLjE5NTI2MkMxMC43MzY5IDAuMzIwMjg2IDEwLjY2NjcgMC40ODk4NTYgMTAuNjY2NyAwLjY2NjY2N1YxLjMzMzMzSDUuMzMzMzNWMC42NjY2NjdDNS4zMzMzMyAwLjQ4OTg1NiA1LjI2MzEgMC4zMjAyODYgNS4xMzgwNyAwLjE5NTI2MkM1LjAxMzA1IDAuMDcwMjM3OSA0Ljg0MzQ4IDAgNC42NjY2NyAwQzQuNDg5ODYgMCA0LjMyMDI5IDAuMDcwMjM3OSA0LjE5NTI2IDAuMTk1MjYyQzQuMDcwMjQgMC4zMjAyODYgNCAwLjQ4OTg1NiA0IDAuNjY2NjY3VjEuMzMzMzNIMy4zMzMzM0MyLjQ0OTYgMS4zMzQzOSAxLjYwMjM3IDEuNjg1OTIgMC45Nzc0OCAyLjMxMDgxQzAuMzUyNTg4IDIuOTM1NzEgMC4wMDEwNTg1NyAzLjc4Mjk0IDAgNC42NjY2N0wwIDEyLjY2NjdDMC4wMDEwNTg1NyAxMy41NTA0IDAuMzUyNTg4IDE0LjM5NzYgMC45Nzc0OCAxNS4wMjI1QzEuNjAyMzcgMTUuNjQ3NCAyLjQ0OTYgMTUuOTk4OSAzLjMzMzMzIDE2SDEyLjY2NjdDMTMuNTUwNCAxNS45OTg5IDE0LjM5NzYgMTUuNjQ3NCAxNS4wMjI1IDE1LjAyMjVDMTUuNjQ3NCAxNC4zOTc2IDE1Ljk5ODkgMTMuNTUwNCAxNiAxMi42NjY3VjQuNjY2NjdDMTUuOTk4OSAzLjc4Mjk0IDE1LjY0NzQgMi45MzU3MSAxNS4wMjI1IDIuMzEwODFDMTQuMzk3NiAxLjY4NTkyIDEzLjU1MDQgMS4zMzQzOSAxMi42NjY3IDEuMzMzMzNaTTEuMzMzMzMgNC42NjY2N0MxLjMzMzMzIDQuMTM2MjMgMS41NDQwNSAzLjYyNzUzIDEuOTE5MTIgMy4yNTI0NUMyLjI5NDE5IDIuODc3MzggMi44MDI5IDIuNjY2NjcgMy4zMzMzMyAyLjY2NjY3SDEyLjY2NjdDMTMuMTk3MSAyLjY2NjY3IDEzLjcwNTggMi44NzczOCAxNC4wODA5IDMuMjUyNDVDMTQuNDU2IDMuNjI3NTMgMTQuNjY2NyA0LjEzNjIzIDE0LjY2NjcgNC42NjY2N1Y1LjMzMzMzSDEuMzMzMzNWNC42NjY2N1pNMTIuNjY2NyAxNC42NjY3SDMuMzMzMzNDMi44MDI5IDE0LjY2NjcgMi4yOTQxOSAxNC40NTYgMS45MTkxMiAxNC4wODA5QzEuNTQ0MDUgMTMuNzA1OCAxLjMzMzMzIDEzLjE5NzEgMS4zMzMzMyAxMi42NjY3VjYuNjY2NjdIMTQuNjY2N1YxMi42NjY3QzE0LjY2NjcgMTMuMTk3MSAxNC40NTYgMTMuNzA1OCAxNC4wODA5IDE0LjA4MDlDMTMuNzA1OCAxNC40NTYgMTMuMTk3MSAxNC42NjY3IDEyLjY2NjcgMTQuNjY2N1olMjIgZmlsbCUzRCUyMiUyMzZENkQ2RCUyMiUyRiUzRSUzQ3BhdGggZCUzRCUyMk04IDExQzguNTUyMjggMTEgOSAxMC41NTIzIDkgMTBDOSA5LjQ0NzcyIDguNTUyMjggOSA4IDlDNy40NDc3MiA5IDcgOS40NDc3MiA3IDEwQzcgMTAuNTUyMyA3LjQ0NzcyIDExIDggMTFaJTIyIGZpbGwlM0QlMjIlMjM2RDZENkQlMjIlMkYlM0UlM0NwYXRoIGQlM0QlMjJNNC42NjY1IDExQzUuMjE4NzkgMTEgNS42NjY1IDEwLjU1MjMgNS42NjY1IDEwQzUuNjY2NSA5LjQ0NzcyIDUuMjE4NzkgOSA0LjY2NjUgOUM0LjExNDIyIDkgMy42NjY1IDkuNDQ3NzIgMy42NjY1IDEwQzMuNjY2NSAxMC41NTIzIDQuMTE0MjIgMTEgNC42NjY1IDExWiUyMiBmaWxsJTNEJTIyJTIzNkQ2RDZEJTIyJTJGJTNFJTNDcGF0aCBkJTNEJTIyTTExLjMzMzUgMTFDMTEuODg1OCAxMSAxMi4zMzM1IDEwLjU1MjMgMTIuMzMzNSAxMEMxMi4zMzM1IDkuNDQ3NzIgMTEuODg1OCA5IDExLjMzMzUgOUMxMC43ODEyIDkgMTAuMzMzNSA5LjQ0NzcyIDEwLjMzMzUgMTBDMTAuMzMzNSAxMC41NTIzIDEwLjc4MTIgMTEgMTEuMzMzNSAxMVolMjIgZmlsbCUzRCUyMiUyMzZENkQ2RCUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiRzY2hlZHVsZS1idWlsZC1jYWxlbmRhci1pY29uLW11dGVkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIgd2lkdGglM0QlMjIxNiUyMiBoZWlnaHQlM0QlMjIxNiUyMiB2aWV3Qm94JTNEJTIyMCAwIDE2IDE2JTIyIGZpbGwlM0QlMjJub25lJTIyJTNFJTNDcGF0aCBkJTNEJTIyTTEyLjY2NjcgMS4zMzMzM0gxMlYwLjY2NjY2N0MxMiAwLjQ4OTg1NiAxMS45Mjk4IDAuMzIwMjg2IDExLjgwNDcgMC4xOTUyNjJDMTEuNjc5NyAwLjA3MDIzNzkgMTEuNTEwMSAwIDExLjMzMzMgMEMxMS4xNTY1IDAgMTAuOTg3IDAuMDcwMjM3OSAxMC44NjE5IDAuMTk1MjYyQzEwLjczNjkgMC4zMjAyODYgMTAuNjY2NyAwLjQ4OTg1NiAxMC42NjY3IDAuNjY2NjY3VjEuMzMzMzNINS4zMzMzM1YwLjY2NjY2N0M1LjMzMzMzIDAuNDg5ODU2IDUuMjYzMSAwLjMyMDI4NiA1LjEzODA3IDAuMTk1MjYyQzUuMDEzMDUgMC4wNzAyMzc5IDQuODQzNDggMCA0LjY2NjY3IDBDNC40ODk4NiAwIDQuMzIwMjkgMC4wNzAyMzc5IDQuMTk1MjYgMC4xOTUyNjJDNC4wNzAyNCAwLjMyMDI4NiA0IDAuNDg5ODU2IDQgMC42NjY2NjdWMS4zMzMzM0gzLjMzMzMzQzIuNDQ5NiAxLjMzNDM5IDEuNjAyMzcgMS42ODU5MiAwLjk3NzQ4IDIuMzEwODFDMC4zNTI1ODggMi45MzU3MSAwLjAwMTA1ODU3IDMuNzgyOTQgMCA0LjY2NjY3TDAgMTIuNjY2N0MwLjAwMTA1ODU3IDEzLjU1MDQgMC4zNTI1ODggMTQuMzk3NiAwLjk3NzQ4IDE1LjAyMjVDMS42MDIzNyAxNS42NDc0IDIuNDQ5NiAxNS45OTg5IDMuMzMzMzMgMTZIMTIuNjY2N0MxMy41NTA0IDE1Ljk5ODkgMTQuMzk3NiAxNS42NDc0IDE1LjAyMjUgMTUuMDIyNUMxNS42NDc0IDE0LjM5NzYgMTUuOTk4OSAxMy41NTA0IDE2IDEyLjY2NjdWNC42NjY2N0MxNS45OTg5IDMuNzgyOTQgMTUuNjQ3NCAyLjkzNTcxIDE1LjAyMjUgMi4zMTA4MUMxNC4zOTc2IDEuNjg1OTIgMTMuNTUwNCAxLjMzNDM5IDEyLjY2NjcgMS4zMzMzM1pNMS4zMzMzMyA0LjY2NjY3QzEuMzMzMzMgNC4xMzYyMyAxLjU0NDA1IDMuNjI3NTMgMS45MTkxMiAzLjI1MjQ1QzIuMjk0MTkgMi44NzczOCAyLjgwMjkgMi42NjY2NyAzLjMzMzMzIDIuNjY2NjdIMTIuNjY2N0MxMy4xOTcxIDIuNjY2NjcgMTMuNzA1OCAyLjg3NzM4IDE0LjA4MDkgMy4yNTI0NUMxNC40NTYgMy42Mjc1MyAxNC42NjY3IDQuMTM2MjMgMTQuNjY2NyA0LjY2NjY3VjUuMzMzMzNIMS4zMzMzM1Y0LjY2NjY3Wk0xMi42NjY3IDE0LjY2NjdIMy4zMzMzM0MyLjgwMjkgMTQuNjY2NyAyLjI5NDE5IDE0LjQ1NiAxLjkxOTEyIDE0LjA4MDlDMS41NDQwNSAxMy43MDU4IDEuMzMzMzMgMTMuMTk3MSAxLjMzMzMzIDEyLjY2NjdWNi42NjY2N0gxNC42NjY3VjEyLjY2NjdDMTQuNjY2NyAxMy4xOTcxIDE0LjQ1NiAxMy43MDU4IDE0LjA4MDkgMTQuMDgwOUMxMy43MDU4IDE0LjQ1NiAxMy4xOTcxIDE0LjY2NjcgMTIuNjY2NyAxNC42NjY3WiUyMiBmaWxsJTNEJTIyJTIzQjBCMEIwJTIyJTJGJTNFJTNDcGF0aCBkJTNEJTIyTTggMTFDOC41NTIyOCAxMSA5IDEwLjU1MjMgOSAxMEM5IDkuNDQ3NzIgOC41NTIyOCA5IDggOUM3LjQ0NzcyIDkgNyA5LjQ0NzcyIDcgMTBDNyAxMC41NTIzIDcuNDQ3NzIgMTEgOCAxMVolMjIgZmlsbCUzRCUyMiUyM0IwQjBCMCUyMiUyRiUzRSUzQ3BhdGggZCUzRCUyMk00LjY2NjUgMTFDNS4yMTg3OSAxMSA1LjY2NjUgMTAuNTUyMyA1LjY2NjUgMTBDNS42NjY1IDkuNDQ3NzIgNS4yMTg3OSA5IDQuNjY2NSA5QzQuMTE0MjIgOSAzLjY2NjUgOS40NDc3MiAzLjY2NjUgMTBDMy42NjY1IDEwLjU1MjMgNC4xMTQyMiAxMSA0LjY2NjUgMTFaJTIyIGZpbGwlM0QlMjIlMjNCMEIwQjAlMjIlMkYlM0UlM0NwYXRoIGQlM0QlMjJNMTEuMzMzNSAxMUMxMS44ODU4IDExIDEyLjMzMzUgMTAuNTUyMyAxMi4zMzM1IDEwQzEyLjMzMzUgOS40NDc3MiAxMS44ODU4IDkgMTEuMzMzNSA5QzEwLjc4MTIgOSAxMC4zMzM1IDkuNDQ3NzIgMTAuMzMzNSAxMEMxMC4zMzM1IDEwLjU1MjMgMTAuNzgxMiAxMSAxMS4zMzM1IDExWiUyMiBmaWxsJTNEJTIyJTIzQjBCMEIwJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuXG4vLyBDb21wb3VuZCBzZWxlY3RvciBvbiBwdXJwb3NlOiBfcGFzc3BvcnQuc2NzcyAobWFyay1hZGRpdGlvbnMgYnVuZGxlLCB3aGljaCBsb2Fkc1xuLy8gYWZ0ZXIgdGhpcyBzaGVldCkgcmVkZWZpbmVzIGAudmlldy1mbGV4IHsgZmxleDogMCAwIGF1dG8gfWAsIHdoaWNoIGNvbGxhcHNlcyB0aGVcbi8vIHBhZ2UgYW5kIGZsb2F0cyB0aGUgc2l0ZSBmb290ZXIgdXAuIE1hdGNoaW5nIHR3byBjbGFzc2VzIG91dC1zcGVjaWZpZXMgaXQuXG4udmlldy1mbGV4LnByb2dyYW0tc2NoZWR1bGUtcGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBzdHJldGNoLCBub3QgYHdpZHRoOiAxMDAlYDogX2F0aGxldGVfc2lkZWJhci5zY3NzIGluZGVudHMgc2libGluZ3Mgb2ZcbiAgLy8gLm1lbnUtY29udGVudCB3aXRoIG1hcmdpbi1sZWZ0LCBhbmQgYSB2aWV3cG9ydC13aWRlIDEwMCUgYm94IHRoZW4gb3ZlcmZsb3dzXG4gIC8vIHRvIHRoZSByaWdodCBhbmQgY2VudHJlcyB0aGUgY29sdW1uIGFnYWluc3QgdGhlIHZpZXdwb3J0IGluc3RlYWQgb2YgdGhlXG4gIC8vIHJhaWwtYWRqYWNlbnQgY29udGVudCBjb2x1bW4gKGFuZCB0aGUgc2l0ZSBmb290ZXIpLlxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbn1cblxuLnByb2dyYW0tc2NoZWR1bGUge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5NjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDMycHggMjRweCA0OHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIEJvdGggc3RlcHMuIFRoZSBjb250ZW50IGJveCBpcyBwaW5uZWQgdG8gZXhhY3RseSA2NDAgKDY4OCAtIDIgeCAyNHB4XG4gIC8vIHBhZGRpbmcpIGFuZCB0aGUgd2hvbGUgc3RhY2sgY2VudGVycyB2aWEgdGhlIG1hcmdpbjogMCBhdXRvIGFib3ZlLlxuICAmLS1uYXJyb3cge1xuICAgIG1heC13aWR0aDogNjg4cHg7XG4gIH1cblxuICAvLyBOZXV0cmFsaXplIHRoZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgdXBwZXJjYXNlOyBsb2NrLWhlaWdodCB9IHJ1bGVzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAyNHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIC0tIHN0YXJ0IGRhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZmllbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fZGF0ZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgLy8gZnVzaW9uLWNhbGVuZGFyIHJlbmRlcnMgLmRhdGUtaW5wdXQgKHRleHQgaW5wdXQgKyAuaW5wdXQtaWNvbiBidXR0b24pIHBsdXMgYW5cbiAgLy8gYWJzb2x1dGVseS1wb3NpdGlvbmVkIHBvcHVwLiBUaGUgZGVmYXVsdCBza2luIHNwbGl0cyB0aGVtIGludG8gYW4gaW5wdXQgd2l0aFxuICAvLyBhIGZpbGxlZCBpY29uIGJ1dHRvbiBnbHVlZCB0byBpdHMgcmlnaHQ7IGhlcmUgdGhleSBiZWNvbWUgb25lIDMyMHg0MCBib3ggd2l0aFxuICAvLyB0aGUgY2FsZW5kYXIgZ2x5cGggc2l0dGluZyBpbnNpZGUgb24gdGhlIHJpZ2h0LlxuICAmX19kYXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgIC5kYXRlLWlucHV0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB3aWR0aDogMzIwcHg7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgbWF4LWhlaWdodDogNDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICB9XG5cbiAgICAuZGF0ZS1pbnB1dCBpbnB1dCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDAgNDRweCAwIDE0cHg7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLy8gVGhlIHNoYXJlZCBmdXNpb24tY2FsZW5kYXIgdGVtcGxhdGUgaGFyZGNvZGVzIGFuIGljb21vb24gPGkgY2xhc3M9XCJpY29uLWNhbGVuZGFyXCI+LlxuICAgIC8vIFJhdGhlciB0aGFuIGZvcmsgdGhhdCB0ZW1wbGF0ZSAoaXQgaXMgdXNlZCBhY3Jvc3MgdGhlIHdob2xlIGFwcCksIGhpZGUgdGhlIGdseXBoXG4gICAgLy8gYW5kIHBhaW50IHJyLWNhbGVuZGFyLWljb24uc3ZnIGZyb20gdGhlIGRlc2lnbiBzeXN0ZW0gYXMgdGhlIGJ1dHRvbiBiYWNrZ3JvdW5kLlxuICAgIC5kYXRlLWlucHV0IC5pbnB1dC1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgbWluLXdpZHRoOiA0MHB4O1xuICAgICAgbWF4LXdpZHRoOiA0MHB4O1xuICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkc2NoZWR1bGUtYnVpbGQtY2FsZW5kYXItaWNvbjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgaSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5kYXRlLWRpc2FibGVkIC5kYXRlLWlucHV0IHtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuXG4gICAgICAuaW5wdXQtaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRzY2hlZHVsZS1idWlsZC1jYWxlbmRhci1pY29uLW11dGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2VuZHMtc2xvdCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiAxNHB4O1xuICB9XG5cbiAgJl9fZW5kcyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyBob21lLXNrZWxldG9uLWJsb2NrIHNldHMgZGlzcGxheTogYmxvY2ssIHdoaWNoIGZvcmNlcyBhIHNlY29uZCBsaW5lIGluIHRoZVxuICAvLyBkYXRlLXJvdyBmbGV4IGNvbHVtbiB3aGVuIHRoZSBsYWJlbCBhbmQgc2tlbGV0b24gYnJpZWZseSBvdmVybGFwLlxuICAmX19za2VsZXRvbi1lbmRzLmhvbWUtc2tlbGV0b24tYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTQ4cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLW1ldGEtZGF0ZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDg4cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gIC8vIC0tIHJlY29tbWVuZGVkIGNhbGxvdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU2FtZSA2NDBweCBjb2x1bW4gYXMgdGhlIHdlZWsgZ3JpZCBiZWxvdyBpdC5cbiAgJl9fY2FsbG91dCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogNjQwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgcGFkZGluZzogMThweCAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwO1xuICB9XG5cbiAgJl9fY2FsbG91dC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcblxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2NhbGxvdXQtdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tY2FsbG91dCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogNjQwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgcGFkZGluZzogMThweCAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tY2FsbG91dC10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDU4JTtcbiAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgLy8gTWlycm9ycyBfX2NhbGxvdXQtdGV4dDogMTRweCB0eXBlIGF0IGxpbmUtaGVpZ2h0IDEuNSAoMjFweCBwZXIgbGluZSkuIFRoZVxuICAvLyBleHBsYWluZXIgY29weSB3cmFwcyB0byB0d28gbGluZXMgaW4gdGhlIDY0MHB4IGNvbHVtbi5cbiAgJl9fc2tlbGV0b24tY2FsbG91dC1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tY2FsbG91dC10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDIxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi0tc2hvcnQge1xuICAgICAgd2lkdGg6IDcyJTtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBzZXNzaW9uIGNoaXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3Byb21wdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICB9XG5cbiAgJl9fc2Vzc2lvbnMge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cblxuICAmX19zZXNzaW9uLWdyb3VwLWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuXG4gICZfX2NoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX2NoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogOTdweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtMzAwO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNzAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS03MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS03MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gd2VlayBncmlkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19ncmlkLXNjcm9sbCB7XG4gICAgbWFyZ2luOiAxNnB4IDAgMzJweDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICB9XG5cbiAgLy8gRml4ZWQgNjQwIHggMTY4IGJveC4gNjQwIC8gNyA9IH45MXB4IHBlciB3ZWVrZGF5IGNvbHVtbiwgd2hpY2ggaXMgd2h5IHRoZVxuICAvLyBwbGFjZWQvYWRkIGJ1YmJsZXMgYmVsb3cgcnVuIGF0IDEycHggd2l0aCB0aWdodCBwYWRkaW5nIGFuZCBlbGxpcHNpemUuXG4gICZfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgbWlubWF4KDAsIDFmcikpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDY0MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDE2OHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBPbmUgd2Vla2RheSBjb2x1bW46IGl0cyBoZWFkIHN0YWNrZWQgb3ZlciBpdHMgY2VsbC4gQ2FycmllcyB0aGUgY29sdW1uXG4gIC8vIHNlcGFyYXRvciwgd2hpY2ggdGhlIGNlbGxzIHVzZWQgdG8gZHJhdyBmb3IgdGhlbXNlbHZlcy5cbiAgJl9fZ3JpZC1kYXkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZ3JpZC1oZWFkIHtcbiAgICBwYWRkaW5nOiAxMHB4IDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0zMDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuXG4gICAgLy8gT25seSByZWFjaGFibGUgZnJvbSB0aGUgc3RlcCAzIG1vbnRoIGNhbGVuZGFyLCB3aGljaCBzdGlsbCByZW5kZXJzIGl0c1xuICAgIC8vIHNldmVuIGhlYWRzIGFzIGZsYXQgc2libGluZ3MuIEluIHRoZSB3ZWVrIGdyaWQgZWFjaCBoZWFkIGlzIGFsb25lIGluc2lkZVxuICAgIC8vIGEgX19ncmlkLWRheSwgc28gdGhpcyBuZXZlciBtYXRjaGVzIHRoZXJlLlxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICB9XG4gIH1cblxuICAvLyBPbmx5IHRoZSB3ZWVrIGdyaWQncyBvd24gaGVhZGVyICh0aGUgc3RlcCAzIG1vbnRoIGNhbGVuZGFyIHJldXNlc1xuICAvLyBfX2dyaWQtaGVhZCBhbmQga2VlcHMgaXRzIG5hdHVyYWwgaGVpZ2h0KS5cbiAgJl9fZ3JpZC1kYXkgPiAmX19ncmlkLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gIH1cblxuICAmX19ncmlkLWNlbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDZweCA1cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gICZfX3BsYWNlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogNHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiAwIDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuXG4gICAgLy8gTmFycm93IGNvbHVtbnM6IGNsaXAgdGhlIGxhYmVsIHJhdGhlciB0aGFuIGxldCBpdCBwdXNoIHRoZSBidWJibGUgd2lkZXIuXG4gICAgPiBzcGFuIHtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgJl9fcGxhY2VkLXJlbW92ZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHB1cnBsZS05MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICB9XG4gIH1cblxuICAmX19hZGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogNHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiAwIDZweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgJHB1cnBsZS0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICA+IHNwYW46bGFzdC1jaGlsZCB7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWRkLXBsdXMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIC0tIHN0ZXAgMzogcmVhZC1vbmx5IHN0YXJ0L2VuZCBsaW5lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX21ldGEtbGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgJl9fbWV0YS1kYXRlIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fbWV0YS1zZXAge1xuICAgIGNvbG9yOiAkc2NoZWR1bGUtYnVpbGQtbWV0YS1zZXA7XG4gIH1cblxuICAmX19tZXRhLWVuZHMge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2VkaXQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBtYXJnaW46IC00cHggMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBzdGVwIDM6IHJldmlldyBoZWFkaW5ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19zZWN0aW9uLWhlbHAge1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIHN0ZXAgMzogY2FsZW5kYXIgKyBkYXkgcGFuZWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3JldmlldyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM3MHB4IDI0NnB4O1xuICAgIGdhcDogMjRweDtcbiAgICBtYXJnaW46IDE2cHggMCAzMnB4O1xuICB9XG5cbiAgJl9fY2FsZW5kYXItc2Nyb2xsIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gIC8vIDM3MHB4IHdpZGU6IDM3MCAvIDcgPSB+NTNweCBwZXIgd2Vla2RheSBjb2x1bW4uIFRoYXQgaXMgdW5kZXIgdGhlIDcycHggdGhlXG4gIC8vIGNlbGxzIHVzZWQgdG8gZGVtYW5kLCBzbyB0aGUgZGF0ZSB0ZXh0IGRyb3BzIHRvIDEycHgsIHRoZSBtb250aCBhYmJyZXZpYXRpb25cbiAgLy8gbW92ZXMgdG8gaXRzIG93biBsaW5lLCBhbmQgdGhlIHBhZGRpbmcgdGlnaHRlbnMgdG8gZml0LlxuICAmX19jYWxlbmRhciB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMzcwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIDEzcHggdGFsbCBleGFjdGx5LCBib3JkZXItYm90dG9tIGluY2x1ZGVkLiBUaGUgd2Vla2RheSBzdHJpcCBjYXJyaWVzIG5vXG4gIC8vIGNvbHVtbiBzZXBhcmF0b3JzOyB0aGUgZGF0ZSBjZWxscyBiZWxvdyBpdCBzdGlsbCBkby5cbiAgJl9fY2FsZW5kYXIgJl9fZ3JpZC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgJl9fY2FsZW5kYXIgJl9fZ3JpZC1oZWFkICsgJl9fZ3JpZC1oZWFkIHtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gICZfX2NhbGVuZGFyLWNlbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLWhlaWdodDogNThweDtcbiAgICBwYWRkaW5nOiA2cHggNHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyBmaXJzdCBjb2x1bW4gb2YgZXZlcnkgYm9keSByb3cgLSB0aGUgNyBoZWFkIGNlbGxzIG9jY3VweSBjaGlsZHJlbiAxLi43LFxuICAgIC8vIHNvIGJvZHkgcm93cyBzdGFydCBhdCA4LCAxNSwgMjIsIC4uLlxuICAgICY6bnRoLWNoaWxkKDduICsgMSkge1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwO1xuICAgIH1cblxuICAgICYtLW91dHNpZGUge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jYWxlbmRhci1kYXkge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2NhbGVuZGFyLWNlbGwtLW91dHNpZGUgJl9fY2FsZW5kYXItZGF5IHtcbiAgICBjb2xvcjogI2IwYjBiMDtcbiAgfVxuXG4gIC8vIE93biBsaW5lLCBzbyB0aGUgbW9udGggYWJicmV2aWF0aW9uIGNhbm5vdCB3aWRlbiB0aGUgY2VsbC5cbiAgJl9fY2FsZW5kYXItbW9udGgge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gVGhlIHNlbGVjdGVkIGRheSBjYXJyaWVzIGEgcHVycGxlIHJ1bGUgYWxvbmcgdGhlIGJvdHRvbSBvZiBpdHMgY2VsbC5cbiAgJl9fY2FsZW5kYXItY2VsbC0tc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTJweCAwIDAgJHB1cnBsZS01MDA7XG4gIH1cblxuICAmX19kb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4O1xuICAgIG1pbi1oZWlnaHQ6IDZweDtcbiAgfVxuXG4gICZfX2RvdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcblxuICAgICYtLW90aGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRibGFjay00MDA7XG4gICAgfVxuXG4gICAgLy8gY29tcGxldGVkIHNlc3Npb25zIHJlbmRlciBob2xsb3csIG1hdGNoaW5nIHRoZSBvbGQgZmEtY2lyY2xlLW8gaWRpb21cbiAgICAmLS1kb25lIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJi0tb3RoZXIjeyZ9LS1kb25lIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTQwMDtcbiAgICB9XG4gIH1cblxuICAmX19kYXktcGFuZWwge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2RheS1wYW5lbC1kYXRlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIFNlcGFyYXRlcyB0aGlzIGRheSdzIHByb2dyYW0gc2Vzc2lvbnMgZnJvbSBzZXNzaW9ucyBvbiBvdGhlciBwcm9ncmFtcy5cbiAgJl9fZGF5LXBhbmVsLWxhYmVsIHtcbiAgICBtYXJnaW46IDE2cHggMCA4cHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fZGF5LWNhcmQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMzZweCAxNHB4IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG5cbiAgICAmLS1vdGhlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMjAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stMzAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBFbXB0eSBzdGF0ZTogbm8gcmVtb3ZlIGJ1dHRvbiwgc28gdGhlIHBhZGRpbmcgZ29lcyBiYWNrIHRvIHN5bW1ldHJpYyBhbmRcbiAgICAvLyB0aGUgbWVzc2FnZSBjZW50ZXJzIG9uIGJvdGggYXhlcy4gVGhlIG1lc3NhZ2Ugd3JhcHMgdG8gdHdvIGxpbmVzIGF0IHRoZVxuICAgIC8vIHVzdWFsIHBhbmVsIHdpZHRoLCBzbyBwYWRkaW5nICsgMiB4IGxpbmUtaGVpZ2h0IGhhcyB0byBzdGF5IHVuZGVyIDY0LlxuICAgICYtLWVtcHR5IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtaW4taGVpZ2h0OiA2NHB4O1xuICAgICAgcGFkZGluZzogMTBweCAxNnB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB9XG4gIH1cblxuICAmX19kYXktY2FyZC1yZW1vdmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2RheS1jYXJkLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19kYXktY2FyZC1tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8vIEEgY29sdW1uIGdhcCBvbmx5IGxhbmRzICpiZXR3ZWVuKiBpdGVtcyBvbiB0aGUgc2FtZSBsaW5lLCBuZXZlciBhdCB0aGVcbiAgICAvLyBzdGFydCBvZiBhIHdyYXBwZWQgb25lLCBzbyB0aGlzIHJlc2VydmVzIHJvb20gZm9yIHRoZSBzZXBhcmF0b3Igd2l0aG91dFxuICAgIC8vIGluZGVudGluZyB0aGUgYmFkZ2Ugd2hlbiBpdCBkcm9wcyB0byBhIHJvdyBvZiBpdHMgb3duLlxuICAgIGdhcDogNXB4IDE0cHg7XG4gICAgLy8gQ2xpcHMgdGhlIHNlcGFyYXRvciBiZWxvdyBvbmNlIGl0IGZhbGxzIG91dHNpZGUgdGhpcyBib3guXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyBUaGUgaWNvbiBhbmQgaXRzIGxhYmVsIGFyZSBvbmUgZmxleCBpdGVtLCBzbyBhIHdyYXAgbW92ZXMgdGhlIHdob2xlIGJhZGdlXG4gIC8vIGRvd24gdG8gdGhlIG5leHQgcm93IGluc3RlYWQgb2Ygc3RyYW5kaW5nIHRoZSBpY29uIGF0IHRoZSBlbmQgb2YgdGhpcyBvbmUuXG4gICZfX2RheS1jYXJkLXR5cGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGdhcDogNXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAvLyBUaGUgc2VwYXJhdG9yIGhhbmdzIG9mZiB0aGUgYmFkZ2UgcmF0aGVyIHRoYW4gc2l0dGluZyBpbiB0aGUgZmxvdywgYmVjYXVzZVxuICAvLyBDU1MgY2Fubm90IGFzayB3aGV0aGVyIHRoZSBiYWRnZSB3cmFwcGVkLiBCZXNpZGUgdGhlIHByb2dyYW0gbmFtZSBpdCBsYW5kc1xuICAvLyBpbiB0aGUgMTRweCBjb2x1bW4gZ2FwOyBvbiBhIHJvdyBvZiBpdHMgb3duIHRoZSBiYWRnZSBzdGFydHMgYXQgdGhlIGxlZnRcbiAgLy8gZWRnZSBvZiBfX2RheS1jYXJkLW1ldGEsIHdoaWNoIHB1dHMgdGhlIGJ1bGxldCBvdXRzaWRlIHRoYXQgYm94LCB3aGVyZSB0aGVcbiAgLy8gb3ZlcmZsb3c6IGhpZGRlbiBhYm92ZSBjbGlwcyBpdC5cbiAgJl9fZGF5LWNhcmQtdHlwZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAyMlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogY2FsYygxMDAlICsgNXB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRzY2hlZHVsZS1idWlsZC1tZXRhLXNlcDtcbiAgfVxuXG4gICZfX2RheS1jYXJkLWljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fZGF5LWNhcmQtZG9uZSB7XG4gICAgY29sb3I6ICNiMGIwYjA7XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAgICZfX3JldmlldyB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgZ2FwOiAyNHB4O1xuICAgIH1cblxuICAgICZfX2RheS1wYW5lbCB7XG4gICAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIHNhdmUgZmFpbHVyZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU2l0cyBkaXJlY3RseSBhYm92ZSB0aGUgZm9vdGVyIHNvIGl0IGxhbmRzIHdoZXJlIHRoZSB1c2VyIGp1c3QgY2xpY2tlZC5cbiAgLy8gTWF0Y2hlcyB0aGUgYXRobGV0ZS1wcm9maWxlIGVycm9yIGJhbm5lciAoX3Byb2ZpbGVfYXRobGV0ZS5zY3NzIF9fZXJyb3IpLlxuICAmX19lcnJvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGVjZWM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAkcmVkLTUwMDtcbiAgfVxuXG4gIC8vIC0tIGZvb3RlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSGVsZCB0byB0aGUgc2FtZSA2NDBweCBjb2x1bW4gYXMgdGhlIGNhbGxvdXQgYW5kIHRoZSB3ZWVrIGdyaWQsIHNvIEJhY2tcbiAgLy8gc2l0cyBvbiB0aGUgbGVmdCBlZGdlIG9mIHRoZSBzdGFjayBhbmQgQ29udGludWUgb24gaXRzIHJpZ2h0IGVkZ2UuXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA2NDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgJl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiA4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAvLyAxNDNweCBpcyB0aWdodCBhZ2FpbnN0IFwiQ29udGludWVcIiArIHRoZSAxOHB4IGFycm93LCBzbyB0aGUgc2lkZSBwYWRkaW5nXG4gICAgLy8gZHJvcHMgdG8gMTYgdG8ga2VlcCB0aGUgbGFiZWwgYW5kIGdseXBoIG9mZiB0aGUgZWRnZXMuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICB3aWR0aDogMTQzcHg7XG4gICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0td2lkZSB7XG4gICAgICB3aWR0aDogMTc1cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gbW9iaWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gNzY4cHggaXMgdGhlIGV4YWN0IHRocmVzaG9sZDogdGhlIGNvbnRlbnQgYm94IGlzIDcyMHB4IHRoZXJlLCBhZ2FpbnN0IHRoZVxuICAvLyB3ZWVrIGdyaWQncyA3IHggMTEwcHggPSA3NzBweCBtaW5pbXVtLiBTaWRld2F5cyBzY3JvbGxpbmcgd2FzIHRoZSBvbmx5XG4gIC8vIGVzY2FwZSBhbmQgaXQgaGlkIFRodS1TYXQgb2ZmIHNjcmVlbiB3aXRoIG5vdGhpbmcgdG8gaGludCB0aGV5IGV4aXN0ZWQuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgLy8gV2VlayBncmlkIGJlY29tZXMgc3RhY2tlZCByb3dzOiBkYXkgbmFtZSBvbiB0aGUgbGVmdCwgc2Vzc2lvbnMgYW5kIHRoZVxuICAgIC8vIGFkZCBidXR0b24gb24gdGhlIHJpZ2h0LlxuICAgICZfX2dyaWQtc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93LXg6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJl9fZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fZ3JpZC1kYXkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBwYWRkaW5nOiA4cHggMTJweDtcblxuICAgICAgJiArICYge1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gbG9uZ2VyIGEgY29sdW1uIGhlYWRlciAtIGl0IGlzIHRoZSByb3cncyBsYWJlbCwgc28gaXQgZHJvcHMgdGhlIGdyZXlcbiAgICAvLyBmaWxsIGFuZCB0aGUgcnVsZSBiZW5lYXRoIGl0LiA0OHB4IGNsZWFycyB0aGUgbG9uZ2VzdCB3ZWVrZGF5c1Nob3J0KClcbiAgICAvLyBlbnRyeSBpbiBib3RoIGxvY2FsZXMgKFwiV2VkXCIsIFwiTWkuXCIpLiBTY29wZWQgdG8gX19ncmlkLWRheSBzbyB0aGUgc3RlcCAzXG4gICAgLy8gY2FsZW5kYXIsIHdoaWNoIHNoYXJlcyBfX2dyaWQtaGVhZCwga2VlcHMgaXRzIHJlYWwgaGVhZGVyIHN0eWxpbmcuXG4gICAgJl9fZ3JpZC1kYXkgPiAmX19ncmlkLWhlYWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbGV4OiAwIDAgNDhweDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cblxuICAgICZfX2dyaWQtY2VsbCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICAvLyBXaXRob3V0IHRoaXMgdGhlIGZsZXggaXRlbSByZWZ1c2VzIHRvIHNocmluayBhbmQgYSBsb25nIHNlc3Npb24gbGFiZWxcbiAgICAgIC8vIHB1c2hlcyB0aGUgcm93IHdpZGVyIHRoYW4gdGhlIHZpZXdwb3J0LlxuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fYWRkIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC8vIFN0ZXAgMyBtb250aCBjYWxlbmRhci4gQSBtb250aCBoYXMgdG8ga2VlcCBpdHMgc2V2ZW4tY29sdW1uIHNoYXBlLCBzb1xuICAgIC8vIHRoaXMgb25lIGdldHMgbmFycm93ZXIgY2VsbHMgcmF0aGVyIHRoYW4gc3RhY2tlZCByb3dzOiB+NDlweCBwZXIgY29sdW1uXG4gICAgLy8gYXQgMzc1cHgsIGVub3VnaCBmb3IgXCJTdW5cIiBhbmQgYSB0d28tZGlnaXQgZGF0ZS5cbiAgICAmX19jYWxlbmRhci1zY3JvbGwge1xuICAgICAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgIHBhZGRpbmc6IDIwcHggMTZweCA0MHB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cblxuICAgICZfX2RhdGUtcm93IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogOHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gU2Vzc2lvbiBoZWFkZXIgKHRlbXBsYXRlcy90b2RheV9zZXNzaW9uX2hlYWRlci5odG1sKSDigJQgdGhlIG51bWJlcmVkIHRhYiBzdHJpcFxuLy8gdGhhdCBmb2xsb3dzIGEgcnVuIHN0YXJ0ZWQgZnJvbSB0aGUgVG9kYXkgY2FyZCBhY3Jvc3MgdGhlIFIrUiB0ZXN0LCB0aGUgUjVcbi8vIHRlc3QsIGEgZGFpbHkgcHJvZ3JhbSBhbmQgdGhlIHRyYWluaW5nIGxvZy5cbi8vXG4vLyBMYXlvdXQgbm90ZTogdGhlIGluY2x1ZGUgc2l0cyBhcyB0aGUgZm91cnRoIHNpYmxpbmcgaW4gZWFjaCB2aWV3LCByaWdodCBhZnRlclxuLy8gLm1lbnUtY29udGVudCDigJQgZGVsaWJlcmF0ZWx5IE5PVCBgLmhlYWRlci1jb250ZW50ICsgKmAsIHdoaWNoIGlzIHJlc2VydmVkIGZvclxuLy8gdGhlIHBpbm5lZCBhdGhsZXRlIHNlbGVjdGlvbiBiYXIuIEJlY2F1c2UgdGhlIHJhaWwgaXMgc3VwcHJlc3NlZCBmb3IgdGhlIHdob2xlXG4vLyBvZiBhIHNlc3Npb24sIHRoZSBzaWRlYmFyIGd1dHRlciBydWxlcyBpbiBfcHJvZmlsZV9hdGhsZXRlLnNjc3Ncbi8vIChgPiAubWVudS1jb250ZW50IH4gKmApIG5ldmVyIGFwcGx5IGhlcmUgYW5kIHRoZSBzdHJpcCBydW5zIGZ1bGwtYmxlZWQuXG5cbiR0b2RheS1zZXNzaW9uLWRvbmUtYmc6ICNlN2Y1ZWU7XG4kdG9kYXktc2Vzc2lvbi10aXAtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMTYsIDI0LCA0MCwgMC4xNik7XG5cbi8vIFdoaWxlIGEgc2Vzc2lvbiBydW5zLCBNZW51QmFyQ29udHJvbGxlciBlbXB0aWVzIG1lbnVJdGVtcyBzbyB0aGUgbmF2IHJhaWxcbi8vIHN0ZXBzIGFzaWRlIChFeGl0IGlzIHRoZSBvbmx5IHdheSBvdXQpLiBUaGF0IGRyb3BzIC5oYXMtaXRlbXMsIHdoaWNoIHVud2luZHNcbi8vIHRoZSBzaWRlYmFyIGd1dHRlciBhbmQgdGhlIHBpbm5lZC1oZWFkZXIgb2Zmc2V0cyBvbiBpdHMgb3duIOKAlCBidXQgaXQgYWxzb1xuLy8gZHJvcHMgLm1lbnUtY29udGVudCBiYWNrIHRvIGl0cyBiYXNlIGBsb2NrLWhlaWdodCg2NXB4KWAgKyAuZHJrZ3JleWJnLCBpLmUuIGFcbi8vIDY1cHggZGFyayBiYW5kIHdoZXJlIHRoZSByYWlsIHVzZWQgdG8gYmUuIFRoZSBzdHJpcCdzIG93biBwcmVzZW5jZSBpbiB0aGUgRE9NXG4vLyBpcyB0aGUgc2lnbmFsIHRvIGNvbGxhcHNlIGl0LlxuLm1haW4tdmlldzpoYXMoLnRvZGF5LXNlc3Npb24pID4gLm1lbnUtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIG5nLWluY2x1ZGUgaW5qZWN0cyBhIHdyYXBwZXIsIGFuZCB0aGUgY29udHJvbGxlciBzaXRzIG9uIGEgc2Vjb25kIG9uZSwgc28gdGhlXG4vLyBzdHJpcCBpcyB0d28gbGV2ZWxzIGJlbG93IC5tYWluLXZpZXcncyBmbGV4IGNvbHVtbi4gS2VlcCBib3RoIHdyYXBwZXJzIHNpemVkXG4vLyB0byBjb250ZW50IGluc3RlYWQgb2Ygc3RyZXRjaGluZyAoY29tcGFyZSB0aGUgLnRvZGF5LWFza3MgaG9vayBpblxuLy8gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzKS5cbi5tYWluLXZpZXcgPiBkaXY6aGFzKC50b2RheS1zZXNzaW9uKSxcbi5tYWluLXZpZXcgPiBkaXYgPiBkaXY6aGFzKD4gLnRvZGF5LXNlc3Npb24pIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnRvZGF5LXNlc3Npb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGFuY2hvcnMgdGhlIGNvYWNoIG1hcmtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleDogMCAwIGF1dG87XG4gIC8vIDQ4cHggb3ZlcmFsbCwgYm9yZGVyIGluY2x1ZGVkIChib3gtc2l6aW5nIGlzIGJvcmRlci1ib3ggZnJvbSBfYmFzZS5zY3NzKS5cbiAgLy8gVGhlIHRhYnMgYW5kIEV4aXQgY2VudHJlIHRoZWlyIGNvbnRlbnQgaW5zaWRlIGl0IGluc3RlYWQgb2Ygc2V0dGluZyB0aGVcbiAgLy8gaGVpZ2h0IHdpdGggdmVydGljYWwgcGFkZGluZywgc28gYSBsb25nIGxhYmVsIGNhbm5vdCBncm93IHRoZSBzdHJpcC5cbiAgaGVpZ2h0OiA0OHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAvLyAtLSB0YWJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNjcm9sbHMgc2lkZXdheXMgcmF0aGVyIHRoYW4gcHVzaGluZyB0aGUgcm93IHdpZGU6IEV4aXQgaXMgZmxleDogMCAwIGF1dG8gYW5kXG4gIC8vIGl0cyBsYWJlbCBydW5zIGxvbmcgZm9yIHByYWN0aXRpb25lcnMsIHNvIHRoZSB0YWJzIGFyZSB3aGF0IGhhcyB0byBnaXZlLlxuICAmX190YWJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIC8vIFRha2VzIHRoZSByb3cncyBsZWZ0b3ZlciB3aWR0aCBhbmQgYWJzb3JicyB0aGUgb3ZlcmZsb3cgaXRzZWxmOyB3aXRob3V0XG4gICAgLy8gYG1pbi13aWR0aDogMGAgYSBmbGV4IGl0ZW0gcmVmdXNlcyB0byBzaHJpbmsgcGFzdCBpdHMgY29udGVudCwgd2hpY2ggd291bGRcbiAgICAvLyBwdXNoIEV4aXQgb2ZmIHRoZSByaWdodCBlZGdlIGluc3RlYWQgb2Ygc2Nyb2xsaW5nIHRoZSB0YWJzLlxuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICAvLyBGaWdtYSBzdGFydHMgdGhlIGZpcnN0IHRhYiBpbiBmcm9tIHRoZSBlZGdlOyBwYWRkaW5nIHJhdGhlciB0aGFuIGEgbWFyZ2luXG4gICAgLy8gb24gdGhlIHRhYiBzbyB0aGUgZ3V0dGVyIHN0YXlzIHB1dCBvbmNlIHRoZSBzdHJpcCBzY3JvbGxzIHNpZGV3YXlzLlxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxuXG4gICZfX3RhYiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICAvLyBBIGZsZXggaXRlbSBzaHJpbmtzIGJ5IGRlZmF1bHQsIGFuZCB0aGUgbGFiZWwgaXMgbm93cmFwOiBvbiBhIG5hcnJvd1xuICAgIC8vIHZpZXdwb3J0IHRoYXQgc3F1ZWV6ZXMgdGhlIGJveCBiZWxvdyBpdHMgdGV4dCwgd2hpY2ggdGhlbiBzcGlsbHMgcGFzdCB0aGVcbiAgICAvLyB0YWIncyBiYWNrZ3JvdW5kIGFuZCBkaXZpZGVycy4gU2l6aW5nIGVhY2ggdGFiIHRvIGl0cyBjb250ZW50IGluc3RlYWRcbiAgICAvLyBoYW5kcyB0aGUgb3ZlcmZsb3cgdG8gLnRvZGF5LXNlc3Npb25fX3RhYnMsIHdoaWNoIHNjcm9sbHMuXG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRyb29tLW11dGVkO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmJmYWZkO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICB9XG5cbiAgICAgIC50b2RheS1zZXNzaW9uX19iYWRnZTpub3QoLnRvZGF5LXNlc3Npb25fX2JhZGdlLS1kb25lKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLnRvZGF5LXNlc3Npb25fX3RhYi1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTYW1lIDIyeDIyIHJvdW5kZWQgc3F1YXJlIGFzIC5zY2hlZHVsZS1zdGVwc19fbWFya2VyIGFuZCAudG9kYXktYXNrc19fYmFkZ2UuXG4gICZfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICYtLWRvbmUge1xuICAgICAgYmFja2dyb3VuZDogJHRvZGF5LXNlc3Npb24tZG9uZS1iZztcbiAgICAgIGNvbG9yOiAkZ3JlZW4tNTAwO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3RhYi1sYWJlbCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX190YWItLWNvbXBsZXRlICZfX3RhYi1sYWJlbCB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBleGl0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2V4aXQge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAyNHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIDEzcHggcmF0aGVyIHRoYW4gdGhlIHN2ZydzIG93biAxNjogQ1NTIGJlYXRzIHRoZSB3aWR0aC9oZWlnaHQgcHJlc2VudGF0aW9uXG4gIC8vIGF0dHJpYnV0ZXMsIGFuZCB0aGUgMCAwIDE2IDE2IHZpZXdCb3ggc2NhbGVzIHRoZSBnbHlwaCBkb3duIHdpdGggaXQuXG4gICZfX2V4aXQtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDEzcHg7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICB9XG5cbiAgLy8gRmlnbWEgc2V0cyB0aGUgbGFiZWwgYSBoYWlyIGJlbG93IHRoZSByb3cncyBvcHRpY2FsIGNlbnRyZS4gQSByZWxhdGl2ZSBudWRnZVxuICAvLyByYXRoZXIgdGhhbiBwYWRkaW5nIHNvIGl0IGNhbm5vdCBmZWVkIGJhY2sgaW50byB0aGUgNDhweCByb3cgaGVpZ2h0LlxuICAmX19leGl0LWxhYmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cblxuICAvLyAtLSBmaXJzdC1ydW4gY29hY2ggbWFyayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX190aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgIGxlZnQ6IDI0cHg7XG4gICAgei1pbmRleDogODgwOyAvLyB1bmRlciB0aGUgcGlubmVkIGNocm9tZSAoODk1KyksIG92ZXIgcGFnZSBjb250ZW50XG4gICAgd2lkdGg6IDMyMHB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQ4cHgpO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogJHRvZGF5LXNlc3Npb24tdGlwLXNoYWRvdztcblxuICAgIC8vIGNhcmV0IHBvaW50aW5nIHVwIGF0IHRoZSBmaXJzdCB0YWJcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgIGxlZnQ6IDI0cHg7XG4gICAgICBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpcC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fdGlwLWJvZHkge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX190aXAtYnRuIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHgtcHVycGxlLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHRhYmxldCkge1xuICAudG9kYXktc2Vzc2lvbiB7XG4gICAgJl9fdGFiLFxuICAgICZfX2V4aXQge1xuICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAudG9kYXktc2Vzc2lvbiB7XG4gICAgJl9fdGFicyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9XG5cbiAgICAmX190YWIge1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICBwYWRkaW5nOiAwIDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZXhpdCB7XG4gICAgICBwYWRkaW5nOiAwIDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZXhpdC1sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX3RpcCB7XG4gICAgICBsZWZ0OiAxNnB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICByaWdodDogMTZweDtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGl0IGNvbmZpcm1hdGlvbiAodGVtcGxhdGVzL21vZGFsX3RvZGF5X3Nlc3Npb25fZXhpdC5odG1sLCBvcGVuZWQgdmlhXG4vLyBNb2RhbFNlcnZpY2Uub3BlbiArIENvbmZpcm1Db250cm9sbGVyKS5cbi8vXG4vLyBJdHMgb3duIHJvb3QgY2xhc3MgcmF0aGVyIHRoYW4gLm1vZGFsLWNvbnRhaW5lciwgc28gbm9uZSBvZiB0aGUgbGVnYWN5IG1vZGFsXG4vLyBjaHJvbWUgYXBwbGllcy4gVGhhdCBpcyBub3QganVzdCB0aWRpbmVzczogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMgbG9hZHNcbi8vIGFmdGVyIHRoaXMgYnVuZGxlIGFuZCBzZXRzIGAubW9kYWwtY29udGFpbmVyIGhlYWRlciB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZFxuLy8gI0VCRUJFQiAhaW1wb3J0YW50IH1gLCB3aGljaCBubyBhbW91bnQgb2Ygc3BlY2lmaWNpdHkgaGVyZSBjYW4gdW5kby4gVGhlIHNhbWVcbi8vIGJ1bmRsZSBhbHNvIGZvcmNlcyBganVzdGlmeS1jb250ZW50OiBjZW50ZXJgIG9uIHRoZSBoZWFkZXIgbGFiZWwgYW5kIHRoZVxuLy8gZm9vdGVyLCBhbmQgYWRkcyBgcGFkZGluZzogMTZweCAwIDIwcHhgIHRvIC5tb2RhbC1jb250YWluZXIuIFNpZGVzdGVwcGluZyB0aGVcbi8vIGVsZW1lbnQgc2VsZWN0b3JzIGVudGlyZWx5IGlzIHRoZSBvbmx5IHN0YWJsZSBmaXguIFByZWNlZGVudDogLm1laS1tb2RhbCxcbi8vIC5ibXQtbW9kYWwsIC53Y3ItbW9kYWwuXG4vL1xuLy8gLm1vZGFsICh0aGUgdHJhbnNjbHVzaW9uIHdyYXBwZXIpIHN0aWxsIGNvbnRyaWJ1dGVzIG1pbi1oZWlnaHQ6IDEwMHB4IGFuZCwgb25cbi8vIG1vYmlsZSwgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KS4gQm90aCBhcmUgaGFybWxlc3MgaGVyZS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kdG9kYXktZXhpdC1ib3JkZXI6ICNkOWQ5ZDk7XG4kdG9kYXktZXhpdC1ndXR0ZXI6IDMycHg7XG4kdG9kYXktZXhpdC1ib2R5LXdpZHRoOiA0NjRweDtcbiR0b2RheS1leGl0LXZpZXdwb3J0LW1hcmdpbjogMTZweDtcblxuLnRvZGF5LWV4aXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAkdG9kYXktZXhpdC1ib2R5LXdpZHRoICsgKCR0b2RheS1leGl0LWd1dHRlciAqIDIpO1xuICAvLyAubW9kYWwgaXMgYSBjb250ZW50LXNpemVkIGZsZXggaXRlbSBpbnNpZGUgLm1vZGFsLXZpZXcsIHNvIGEgcGVyY2VudGFnZVxuICAvLyBtYXgtd2lkdGggaGFzIG5vIGRlZmluaXRlIHBhcmVudCB3aWR0aCB0byByZXNvbHZlIGFnYWluc3QgYW5kIHRoZSBjYXJkIGtlZXBzXG4gIC8vIGl0cyA1MjhweCBvbiBhIHBob25lLCBvdmVyZmxvd2luZyB0aGUgKG92ZXJmbG93OiBoaWRkZW4pIHZpZXdwb3J0LiBBIHZpZXdwb3J0XG4gIC8vIHVuaXQgaXMgd2hhdCBhY3R1YWxseSBib3VuZHMgaXQsIGxlYXZpbmcgYSBtYXJnaW4gb24gYm90aCBzaWRlcy5cbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gI3skdG9kYXktZXhpdC12aWV3cG9ydC1tYXJnaW4gKiAyfSk7XG4gIHBhZGRpbmc6ICR0b2RheS1leGl0LWd1dHRlcjtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDE2LCAyNCwgNDAsIDAuMjQpO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gICZfX2Nsb3NlIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyOHB4O1xuICAgIHJpZ2h0OiAyOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICB9XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDQwcHggMCAwOyAvLyBrZWVwcyBhIGxvbmcgdGl0bGUgY2xlYXIgb2YgdGhlIGNsb3NlIGJ1dHRvblxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgd2lkdGg6ICR0b2RheS1leGl0LWJvZHktd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMjRweCAwIDA7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgfVxuXG4gICZfX2J0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogYXV0bztcbiAgICAvLyB1bnN0eWxlLWJ1dHRvbiBjbGVhcnMgbWluL21heC1oZWlnaHQgYnV0IG5vdCBoZWlnaHQsIGFuZCB0aGUgZ2xvYmFsIGJ1dHRvblxuICAgIC8vIHJ1bGUgcGlucyBoZWlnaHQ6IDUwcHgg4oCUIHdoaWNoIHdvdWxkIG92ZXJyaWRlIHRoZSBnaG9zdCBidXR0b24ncyA0OHB4LlxuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAvLyBSZXN1bWUg4oCUIGh1ZyA5N3g0OCBhdCAxNi8yMCBwYWRkaW5nLlxuICAgICYtLWdob3N0IHtcbiAgICAgIGdhcDogMTBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR0b2RheS1leGl0LWJvcmRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICBjb2xvcjogJGJsYWNrLTkwMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW5kIOKAlCBodWcgNzUgd2lkZSwgZml4ZWQgNDggdGFsbCwgYXQgMTQvMjQgcGFkZGluZy5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIGdhcDogMTJweDtcbiAgICAgIGhlaWdodDogNDhweDtcbiAgICAgIHBhZGRpbmc6IDE0cHggMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAudG9kYXktZXhpdCB7XG4gICAgcGFkZGluZzogMjBweDtcblxuICAgICZfX2Nsb3NlIHtcbiAgICAgIHRvcDogMTZweDtcbiAgICAgIHJpZ2h0OiAxNnB4O1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgLy8gTG9uZ2VyIGxvY2FsaXplZCBsYWJlbHMgKGRlKSBjYW4gZXhjZWVkIHRoZSBuYXJyb3dlZCBjYXJkOyB3cmFwIHJhdGhlclxuICAgICAgLy8gdGhhbiBwdXNoIHRoZSBwcmltYXJ5IGJ1dHRvbiBwYXN0IHRoZSBlZGdlLlxuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlY292ZXJ5ICsgUmVhZGluZXNzIERhaWx5IFRlc3QgKC8jL3JyZGFpbHl0ZXN0Lzp0ZXN0SWQvOmF0aGxldGVJZCkuXG4vLyBPbmUgY29tcG9uZW50IHBlciBzdGVwIOKAlCBSZWZ1ZWwsIFJlc3QsIFJlYWRpbmVzcyDigJQgZWFjaCBhIHNpbmdsZSBjZW50cmVkXG4vLyBjb2x1bW4gd2l0aCB0aGUgZm9vdGVyIGJ1dHRvbnMgcGlubmVkIHRvIHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQuXG4vL1xuLy8gVGhlIC5yci1vcHRpb24gLyAucnItdGltZSBibG9ja3MgbGl2ZSBoZXJlIHJhdGhlciB0aGFuIGluIHRoZSBkaXJlY3RpdmVcbi8vIHRlbXBsYXRlcycgb3duIHNoZWV0IGJlY2F1c2UgdGVtcGxhdGVzL3NpbmdsZV9zZWxlY3RfbW9kZXJuLmh0bWwsXG4vLyBtdWx0aV9zZWxlY3RfbW9kZXJuLmh0bWwgYW5kIHRpbWVfcGlja2VyLmh0bWwgYXJlIG9ubHkgcmVhY2hhYmxlIGZyb20gdGhpc1xuLy8gcGFnZSAodGhlIGxlZ2FjeSB2YXJpYW50cyBzdGlsbCBzZXJ2ZSB0aGUgcHJpbnQtb3B0aW9ucyBtb2RhbHMpLlxuXG4kcnItcHVycGxlLWRpc2FibGVkOiAjYzViOGYwO1xuJHJyLXN0ZXAtbGluZTogI2UwZTBlMDtcblxuLy8gcnItY2hldnJvbi1kb3duLnN2ZywgaW5saW5lZCBzbyBpdCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIHN2ZyBmaWxlLWxvYWRlclxuLy8gb3JkZXJpbmcgaW4gd2VicGFjay5jb25maWcgKGNvbXBhcmUgX3NjaGVkdWxlX2J1aWxkLnNjc3MpLlxuJHJyLWNoZXZyb246IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiB3aWR0aCUzRCUyMjEyJTIyIGhlaWdodCUzRCUyMjglMjIgdmlld0JveCUzRCUyMjAgMCAxMiA4JTIyIGZpbGwlM0QlMjJub25lJTIyJTNFJTNDcGF0aCBkJTNEJTIyTTEgMS41TDYgNi41TDExIDEuNSUyMiBzdHJva2UlM0QlMjIlMjM2RDZENkQlMjIgc3Ryb2tlLXdpZHRoJTNEJTIyMS41JTIyIHN0cm9rZS1saW5lY2FwJTNEJTIycm91bmQlMjIgc3Ryb2tlLWxpbmVqb2luJTNEJTIycm91bmQlMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG5cbi8vIFJhZGlvIHJpbmcgKHdoaXRlIGZpbGwsIDJweCBzdHJva2UsIDIwcHggb3V0ZXIpIGFuZCBkb3QgKDEycHgpLCBpbmxpbmVkIGZvclxuLy8gdGhlIHNhbWUgcmVhc29uLiBDb2xvdXJzIGFyZSAkcHVycGxlLTUwMCBhbmQgJGJsYWNrLTMwMC5cbiRyci1yYWRpby1yaW5nOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIgdmlld0JveCUzRCUyMjAgMCAyMCAyMCUyMiUzRSUzQ2NpcmNsZSBjeCUzRCUyMjEwJTIyIGN5JTNEJTIyMTAlMjIgciUzRCUyMjklMjIgZmlsbCUzRCUyMiUyM2ZmZmZmZiUyMiBzdHJva2UlM0QlMjIlMjM5NzY4ZWIlMjIgc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiRyci1yYWRpby1yaW5nLWRpc2FibGVkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIgdmlld0JveCUzRCUyMjAgMCAyMCAyMCUyMiUzRSUzQ2NpcmNsZSBjeCUzRCUyMjEwJTIyIGN5JTNEJTIyMTAlMjIgciUzRCUyMjklMjIgZmlsbCUzRCUyMiUyM2ZmZmZmZiUyMiBzdHJva2UlM0QlMjIlMjNkMWQxZDElMjIgc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbiRyci1yYWRpby1kb3Q6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiB2aWV3Qm94JTNEJTIyMCAwIDIwIDIwJTIyJTNFJTNDY2lyY2xlIGN4JTNEJTIyMTAlMjIgY3klM0QlMjIxMCUyMiByJTNEJTIyNiUyMiBmaWxsJTNEJTIyJTIzOTc2OGViJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuXG4vLyBDb21wb3VuZCBzZWxlY3RvciBvbiBwdXJwb3NlOiBfcGFzc3BvcnQuc2NzcyAobWFyay1hZGRpdGlvbnMgYnVuZGxlLCB3aGljaFxuLy8gbG9hZHMgYWZ0ZXIgdGhpcyBzaGVldCkgcmVkZWZpbmVzIGAudmlldy1mbGV4IHsgZmxleDogMCAwIGF1dG8gfWAsIHdoaWNoXG4vLyBjb2xsYXBzZXMgdGhlIHBhZ2UgYW5kIGZsb2F0cyB0aGUgc2l0ZSBmb290ZXIgdXAuXG4udmlldy1mbGV4LnJyLXRlc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBzdHJldGNoLCBub3QgYHdpZHRoOiAxMDAlYDogdGhlIHNpZGViYXIgcnVsZXMgaW4gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzIHB1dCBhXG4gIC8vIG1hcmdpbi1sZWZ0IG9uIGV2ZXJ5IHNpYmxpbmcgYWZ0ZXIgLm1lbnUtY29udGVudCwgYW5kIGEgZml4ZWQgMTAwJSB3aWR0aFxuICAvLyB3b3VsZCB0aGVuIG92ZXJmbG93IHRoZSByYWlsJ3Mgd2lkdGggdG8gdGhlIHJpZ2h0IChpbnZpc2libGUgdW5kZXJcbiAgLy8gYGJvZHkgeyBvdmVyZmxvdy14OiBoaWRkZW4gfWApIGFuZCBjYXJyeSB0aGUgY2VudHJlZCBjb2x1bW4gd2l0aCBpdC5cbiAgLy8gU3RyZXRjaGluZyBsZWF2ZXMgdGhlIGJveCBleGFjdGx5IHRoZSBzcGFjZSBiZXNpZGUgdGhlIHJhaWwsIHNvIHRoZSBjb2x1bW5cbiAgLy8gcmUtY2VudHJlcyBhcyB0aGUgcmFpbCBvcGVucywgY29sbGFwc2VzIG9yIGRpc2FwcGVhcnMuXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xufVxuXG4ucnItdGVzdCB7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgLy8gTmV1dHJhbGl6ZSB0aGUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IHVwcGVyY2FzZTsgbG9jay1oZWlnaHQgfVxuICAvLyBydWxlcyBmcm9tIF9iYXNlLnNjc3MuXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gIH1cblxuICBidXR0b24gKyBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgJl9fcGFnZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNTIwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogNDhweCAyNHB4IDY0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAzMnB4O1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gLS0gc3RlcCBpbmRpY2F0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gUmVhZC1vbmx5OiBCYWNrIGlzIHRoZSBvbmx5IHdheSB0byBhbiBlYXJsaWVyIHN0ZXAsIHNvIHRoZXNlIGNhcnJ5IG5vXG4gIC8vIGNsaWNrIGFmZm9yZGFuY2UuXG4gICZfX3N0ZXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xuICB9XG5cbiAgJl9fc3RlcCB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkcnItc3RlcC1saW5lO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAjYjBiMGIwO1xuXG4gICAgJi0tcmVhY2hlZCB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cblxuICAgIC8vIE9ubHkgdGhlIHN0ZXAgYmVpbmcgYW5zd2VyZWQgaXMgYm9sZDsgY29tcGxldGVkIHN0ZXBzIHN0YXkgYXQgNTAwLlxuICAgICYtLWN1cnJlbnQge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBxdWVzdGlvbiBzZWN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19zZWN0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xuICB9XG5cbiAgJl9fc2VjdGlvbi1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19xdWVzdGlvbiArICZfX3F1ZXN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICB9XG5cbiAgLy8gLS0gZm9vdGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tdG9wOiA0NHB4O1xuICB9XG5cbiAgLy8gU3RlcCBvbmUgaGFzIG5vIEJhY2sgYnV0dG9uLCBzbyB0aGUgcHJpbWFyeSBydW5zIHRoZSBmdWxsIGNvbHVtbiB3aWR0aC5cbiAgJl9fZm9vdGVyLS1zaW5nbGUgJl9fYnV0dG9uIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gICZfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAyOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhlIHN0ZXAgaXMgaW5jb21wbGV0ZTogdGhlIGJ1dHRvbiBzdGF5cyB2aXNpYmxlIGJ1dCBpbmVydCwgd2hpY2ggaXMgd2hhdFxuICAgIC8vIHNpZ25hbHMgdGhlcmUgaXMgc3RpbGwgc29tZXRoaW5nIHRvIGFuc3dlciBhYm92ZSBpdC5cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmW2Rpc2FibGVkXTpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRyci1wdXJwbGUtZGlzYWJsZWQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkcnItcHVycGxlLWRpc2FibGVkO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG5cbiAgJl9fYnV0dG9uLWFycm93IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgJl9fcGFnZSB7XG4gICAgICBwYWRkaW5nOiAzMnB4IDIwcHggNDhweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB9XG5cbiAgICAmX19zdGVwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4vLyAtLSBxdWVzdGlvbiBvcHRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucnItb3B0aW9uLWdyb3VwIHtcbiAgJl9fcHJvbXB0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9faGludCB7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG59XG5cbi5yci1vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNnB4IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmLS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmLS1kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgLnJyLW9wdGlvbl9fY2hlY2sge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stMzAwO1xuICAgIH1cblxuICAgIC5yci1vcHRpb25fX3JhZGlvIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRyci1yYWRpby1yaW5nLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5yci1vcHRpb25fX3JhZGlvLS1jaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRyci1yYWRpby1kb3QsICRyci1yYWRpby1yaW5nLWRpc2FibGVkO1xuICAgIH1cblxuICAgIC5yci1vcHRpb25fX3RleHQge1xuICAgICAgY29sb3I6ICNiMGIwYjA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gRHJhd24gcmF0aGVyIHRoYW4gYSBuYXRpdmUgY29udHJvbDogdGhlIGFuc3dlcnMgYXJlIHRvZ2dsZWQgc3RyYWlnaHQgb24gdGhlXG4gIC8vIHF1ZXN0aW9uIG1vZGVsIGJ5IHRoZSBkaXJlY3RpdmUsIHNvIHRoZXJlIGlzIG5vIG5nLW1vZGVsIHRvIGJpbmQgYW4gaW5wdXQgdG8uXG4gIC8vXG4gIC8vIFJpbmcgYW5kIGRvdCBhcmUgU1ZHIGxheWVycyBvdmVyIHRoZSBzYW1lIDIweDIwIGJveCwgbm90IGEgYm9yZGVyIHBsdXMgYVxuICAvLyBjZW50cmVkIGNoaWxkLiBBdCBmcmFjdGlvbmFsIGRldmljZSBwaXhlbCByYXRpb3MgKFdpbmRvd3MgMTI1JS8xNTAlXG4gIC8vIHNjYWxpbmcsIG5vbi0xMDAlIHpvb20pIHRoZSBib3JkZXIgc25hcHMgdG8gd2hvbGUgZGV2aWNlIHBpeGVscyB3aGlsZSB0aGVcbiAgLy8gY2hpbGQgZG9lcyBub3QsIHdoaWNoIHB1c2hlZCB0aGUgZG90IDFweCBvZmYtY2VudHJlLiBCb3RoIGxheWVycyByYXN0ZXJpc2VcbiAgLy8gaW4gb25lIGNvb3JkaW5hdGUgc3BhY2UsIHNvIHRoZXkgc3RheSBjb25jZW50cmljIGF0IGFueSBzY2FsZS5cbiAgJl9fcmFkaW8ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkcnItcmFkaW8tcmluZyBjZW50ZXIgLyAxMDAlIDEwMCUgbm8tcmVwZWF0O1xuXG4gICAgJi0tY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkcnItcmFkaW8tZG90LCAkcnItcmFkaW8tcmluZztcbiAgICB9XG4gIH1cblxuICAmX19jaGVjayB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRwdXJwbGUtNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuXG4gICAgJi0tY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICBoZWlnaHQ6IDlweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAjZmZmZmZmO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIC0tIHNsZWVwIGR1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5yci1zbGVlcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTZweDtcbn1cblxuLnJyLXRpbWUge1xuICAmX19sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fc2VsZWN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgc2VsZWN0IHtcbiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICBwYWRkaW5nOiAwIDM2cHggMCAxNHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2l0cyBvdmVyIHRoZSBzZWxlY3QsIHNvIGl0IG11c3Qgbm90IHN3YWxsb3cgdGhlIGNsaWNrIHRoYXQgb3BlbnMgaXQuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAxNHB4O1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkcnItY2hldnJvbiBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX21lcmlkaWVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAgICZfX3JvdyB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgJl9fbWVyaWRpZW0ge1xuICAgICAgZmxleDogMSAwIDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBEYWlseSBSZWFkaW5lc3MgVGVzdCAoLyMvcjVkYWlseXRlc3QvOnRlc3RJZC86YXRobGV0ZUlkKS5cbi8vIFNpbmdsZSBjZW50cmVkIGNvbHVtbiwgbWF0Y2hpbmcgdGhlIHNoYXBlIG9mIHRoZSBSK1IgZGFpbHkgdGVzdCBidXQgb24gdGhlXG4vLyBwYWdlJ3MgZXhpc3Rpbmcgd2hpdGUgZ3JvdW5kLiA3MDBweCBpcyB0aGUgbWF4LXdpZHRoIC5yci1tZW51IC8gLnJyLWtleSBhcmVcbi8vIGFscmVhZHkgYnVpbHQgZm9yIGluIF90ZXN0cy5zY3NzLCBzbyB0aGUgc2VnbWVudGVkIGFuc3dlciBiYXIgZmlsbHMgdGhlXG4vLyBjb2x1bW4gZXhhY3RseSBhbmQgdGhlIHR3byBib2R5LW1hcCBmaWd1cmVzIHN0aWxsIHNpdCBzaWRlIGJ5IHNpZGUuXG5cblxuLy8gQ29tcG91bmQgc2VsZWN0b3Igb24gcHVycG9zZTogX3Bhc3Nwb3J0LnNjc3MgKG1hcmstYWRkaXRpb25zIGJ1bmRsZSwgd2hpY2hcbi8vIGxvYWRzIGFmdGVyIHRoaXMgc2hlZXQpIHJlZGVmaW5lcyBgLnZpZXctZmxleCB7IGZsZXg6IDAgMCBhdXRvIH1gLCB3aGljaFxuLy8gY29sbGFwc2VzIHRoZSBwYWdlIGFuZCBmbG9hdHMgdGhlIHNpdGUgZm9vdGVyIHVwLlxuLnZpZXctZmxleC5yNS10ZXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgLy8gc3RyZXRjaCwgbm90IGB3aWR0aDogMTAwJWAg4oCUIHNlZSB0aGUgbm90ZSBpbiBfcnJfZGFpbHlfdGVzdC5zY3NzOiB0aGVcbiAgLy8gc2lkZWJhciBydWxlcyBpbiBfcHJvZmlsZV9hdGhsZXRlLnNjc3MgcHV0IGEgbWFyZ2luLWxlZnQgb24gZXZlcnkgc2libGluZ1xuICAvLyBhZnRlciAubWVudS1jb250ZW50LCBzbyBhIGZpeGVkIDEwMCUgd2lkdGggb3ZlcmZsb3dzIHRoZSByYWlsIHRvIHRoZSByaWdodFxuICAvLyBhbmQgY2FycmllcyB0aGUgY2VudHJlZCBjb2x1bW4gd2l0aCBpdC5cbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuLnI1LXRlc3Qge1xuICAmX19wYWdlIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiA0OHB4IDI0cHggNjRweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDMycHg7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIFJlcGxhY2VzIGAucnItZm9ybS1ncm91cCAuZmllbGQtZ3JvdXAgeyBwYWRkaW5nOiAwIDAgMzVweCB9YCBhbmRcbiAgLy8gYC5maWVsZCArIC5maWVsZCB7IG1hcmdpbi10b3A6IDMzcHggfWAgZnJvbSBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucyxcbiAgLy8gd2hpY2ggbm8gbG9uZ2VyIGFwcGx5IG5vdyB0aGF0IHRoZSBmaWVsZHNldCBjaHJvbWUgaXMgZ29uZS5cbiAgJl9fcXVlc3Rpb24gKyAmX19xdWVzdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgfVxuXG4gIC8vIGZpZWxkX3NldF9zZWxlY3QuaHRtbCBpcyBhcHBlbmRlZCBpbnNpZGUgaXRzIG93biBlbGVtZW50ICh0aGUgZGlyZWN0aXZlXG4gIC8vIGRvZXMgbm90IHNldCByZXBsYWNlKSwgYW5kIGFuIHVua25vd24gZWxlbWVudCBpcyBpbmxpbmUgYnkgZGVmYXVsdC5cbiAgZmllbGQtc2V0LXNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBXYXMgYC5yci1mb3JtLWdyb3VwIC5jYXRlZ29yeWAgKEBpbmNsdWRlIGgtY29tcGFjdCkgaW4gbWFyay1hZGRpdGlvbnMg4oCUXG4gIC8vIHRoYXQgcnVsZSBpcyBzY29wZWQgdG8gdGhlIGZpZWxkc2V0IHRoaXMgcGFnZSBubyBsb25nZXIgcmVuZGVycy5cbiAgJl9fcXVlc3Rpb24tdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDExcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcblxuICAgIC8vIEtlZXBzIHRoZSBibHVlIHNlcXVlbmNlIG51bWJlciB0aGUgLnJyLWZvcm0tZ3JvdXAgaDMgcnVsZSB1c2VkIHRvIGdpdmUgaXQuXG4gICAgc3BhbiB7XG4gICAgICBjb2xvcjogJGJsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gQW4gZXh0cmEgbGluZSBvZiBhaXIgYmVmb3JlIHRoZSBzb3JlbmVzcyBwaWNrZXIsIHdoaWNoIHJlYWRzIGFzIGl0cyBvd25cbiAgLy8gc2VjdGlvbiByYXRoZXIgdGhhbiBhbm90aGVyIG51bWJlcmVkIHF1ZXN0aW9uLiBXcml0dGVuIGFzIGEgZGVzY2VuZGFudFxuICAvLyByYXRoZXIgdGhhbiBgJl9fcXVlc3Rpb24tLWJvZHltYXBgIHNvIGl0IG91dHdlaWdocyB0aGUgYWRqYWNlbnQtc2libGluZ1xuICAvLyBydWxlIGFib3ZlLCB3aGljaCBpcyBhbHNvIHR3byBjbGFzc2VzIGRlZXAuXG4gIC5yNS10ZXN0X19xdWVzdGlvbi0tYm9keW1hcCB7XG4gICAgbWFyZ2luLXRvcDogNjRweDtcbiAgfVxuXG4gIC8vIHRlbXBsYXRlcy9zdmdfYm9keV9tYXBzIGxheXMgRnJvbnQgYW5kIEJhY2sgb3V0IGluIGEgPHRhYmxlPiwgd2hpY2ggc2l0c1xuICAvLyBmbHVzaCBsZWZ0IGluIHRoZSBjb2x1bW4gb24gaXRzIG93bjsgY2VudHJlIGl0IGFnYWluc3QgdGhlIHBhZ2UgaW5zdGVhZC5cbiAgLnI1LWJvZHktd3JhcHBlciB0YWJsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDQ4cHg7XG5cbiAgICAvLyBUaGUgZ2xvYmFsIGBidXR0b25gIHJ1bGUgaW4gX2Jhc2Uuc2NzcyB1cHBlcmNhc2VzIGV2ZXJ5IGJ1dHRvbiBhbmQgb3BlbnNcbiAgICAvLyB0aGUgdHJhY2tpbmcgdG8gMXB4IHRvIHN1aXQgY2FwczsgYm90aCBoYXZlIHRvIGNvbWUgYmFjayBvZmYgaGVyZS5cbiAgICBidXR0b24ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgLy8gYGJ1dHRvbi5wcmltYXJ5YCBpbiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucyBzZXRzIGBmb250LXdlaWdodDogYm9sZGBcbiAgICAgIC8vIGF0IGVxdWFsIHNwZWNpZmljaXR5IGFuZCB0aGF0IGJ1bmRsZSBsb2FkcyBhZnRlciB0aGlzIG9uZSwgc28gdGhlXG4gICAgICAvLyB3ZWlnaHQgaGFzIHRvIGJlIHNldCBvbmUgY2xhc3MgZGVlcGVyIHRvIHdpbi5cbiAgICAgICYucHJpbWFyeSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgICAmX19wYWdlIHtcbiAgICAgIHBhZGRpbmc6IDMycHggMjBweCA0OHB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgICZfX2Zvb3RlciBidXR0b24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBUaGUgY29tcGxldGlvbiBzY3JlZW4gc2hhcmVkIGJ5IGJvdGggZGFpbHkgdGVzdHM6IFJlY292ZXJ5ICsgUmVhZGluZXNzXG4vLyAodmlld3MvcnJkYWlseXRlc3RyZXN1bHRzLmh0bWwsIC8jL3Rlc3RyZXN1bHRzLzphdGhsZXRlSWQvOnRyaElkLzUpIGFuZCB0aGVcbi8vIERhaWx5IFJlYWRpbmVzcyBUZXN0ICh2aWV3cy9yNXRlc3RyZXN1bHRzLmh0bWwsIHNhbWUgcm91dGUgd2l0aCB0ZXN0SWQgMjYpLlxuLy9cbi8vIFRoZSBzaGFyZWQgdGVzdHJlc3VsdHMuaHRtbCBjaHJvbWUgaXMgc3dpdGNoZWQgb2ZmIGZvciB0aGVzZSByZXN1bHQgdHlwZXMsIHNvXG4vLyB0aGlzIGJsb2NrIG93bnMgdGhlIHdob2xlIHBhZ2UgYmVsb3cgdGhlIHNlc3Npb24gdGFiIHN0cmlwLlxuXG4kZGFpbHktcmVzdWx0cy1oYWlybGluZTogI2YwZjBmMDtcbiRkYWlseS1yZXN1bHRzLXVwOiAjMjBiNzY5O1xuJGRhaWx5LXJlc3VsdHMtZG93bjogI2M0MmEzYjtcblxuLy8gQ29tcG91bmQgc2VsZWN0b3Igb24gcHVycG9zZTogX3Bhc3Nwb3J0LnNjc3MgKG1hcmstYWRkaXRpb25zIGJ1bmRsZSwgd2hpY2hcbi8vIGxvYWRzIGFmdGVyIHRoaXMgc2hlZXQpIHJlZGVmaW5lcyBgLnZpZXctZmxleCB7IGZsZXg6IDAgMCBhdXRvIH1gLCB3aGljaFxuLy8gY29sbGFwc2VzIHRoZSBwYWdlIGFuZCBmbG9hdHMgdGhlIHNpdGUgZm9vdGVyIHVwLlxuLnZpZXctZmxleC5kYWlseS1yZXN1bHRzLXBhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICAvLyBTZWUgdGhlIG1hdGNoaW5nIG5vdGUgaW4gX3JyX2RhaWx5X3Rlc3Quc2NzczogYHdpZHRoOiAxMDAlYCBmaWdodHMgdGhlXG4gIC8vIHNpZGViYXIgZ3V0dGVyIG1hcmdpbiBhbmQgcHVzaGVzIHRoZSBjZW50cmVkIGNvbHVtbiBvZmYgdG8gdGhlIHJpZ2h0LlxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcblxuICAvLyB0ZXN0cmVzdWx0cy5odG1sIGtlZXBzIGl0cyBzaGFyZWQgLmNvbnRhaW5lciB3aWRlIHdyYXBwZXIgYXJvdW5kIGV2ZXJ5XG4gIC8vIHJlc3VsdCB0eXBlOyBhcyBhIGZsZXggaXRlbSBpdCBzaHJpbmstdG8tZml0cywgd2hpY2ggd291bGQgY29sbGFwc2UgdGhlXG4gIC8vIGNlbnRyZWQgY29sdW1uIGluc2lkZSBpdC5cbiAgPiAuY29udGFpbmVyIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmRhaWx5LXJlc3VsdHMge1xuICB3aWR0aDogMTAwJTtcbiAgLy8gNjQwcHggY2FyZCArIHRoZSAyNHB4IGd1dHRlcnMgZWl0aGVyIHNpZGUgb2YgaXQuXG4gIG1heC13aWR0aDogNjg4cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiA0OHB4IDI0cHggNjRweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gIC8vIE5ldXRyYWxpemUgdGhlIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyB1cHBlcmNhc2U7IGxvY2staGVpZ2h0IH1cbiAgLy8gcnVsZXMgZnJvbSBfYmFzZS5zY3NzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIFR3byBzdGFja2VkIGRpc2NzOiB0aGUgNzJweCB3YXNoIGlzIG9ubHkgfjIlIG9mZiB0aGUgcGFnZSBiYWNrZ3JvdW5kLCBzbyBvblxuICAvLyBpdHMgb3duIGl0IHJlYWRzIGFzIG5vdGhpbmcuIFRoZSBpbm5lciBkaXNjIGlzIHdoYXQgbWFrZXMgaXQgYSBoYWxvLlxuICAmX19jaGVjayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNzJweDtcbiAgICBoZWlnaHQ6IDcycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gIH1cblxuICAmX19jaGVjay1pbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMjAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19zY29yZS1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIHNjb3JlIHJpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIHN2Z0RvdWdobnV0IHNoaXBzIGFuIDgwcHggc3ZnIG9uIGEgMTUwIHZpZXdCb3ggd2l0aCBhIDQvNnB4IHN0cm9rZS4gVGhlIGRhc2hcbiAgLy8gb2Zmc2V0cyBhcmUgY29tcHV0ZWQgZnJvbSByPTcwLCBzbyBzY2FsZSBhbmQgc3Ryb2tlIGFyZSBmcmVlIHRvIGNoYW5nZS5cbiAgLy8gc3Ryb2tlLXdpZHRoIGFuZCBmb250LXNpemUgYmVsb3cgYXJlIHZpZXdCb3ggdW5pdHMsIG5vdCByZW5kZXJlZCBwaXhlbHMg4oCUXG4gIC8vIHRoZSAxNTAtdW5pdCBib3ggaXMgZHJhd24gYXQgMTE0cHgsIHNvIHRoZXkgc2NhbGUgYnkgMTE0LzE1MDogMTAgbGFuZHMgYXRcbiAgLy8gNy42cHggYW5kIDYzIGxhbmRzIGF0IHRoZSA0OHB4IHRoZSBkZXNpZ24gY2FsbHMgZm9yLlxuICAmX19nYXVnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDRweDtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogMTE0cHg7XG4gICAgICBoZWlnaHQ6IDExNHB4O1xuICAgIH1cblxuICAgIC5vdXRsaW5lLFxuICAgIC5wcm9ncmVzcyB7XG4gICAgICBzdHJva2Utd2lkdGg6IDEwO1xuICAgIH1cblxuICAgIC8vIFRoZSBkaXJlY3RpdmUgcGFpbnRzIHRoZSBzY29yZSBpbiB0aGUgcmlzayBjb2xvdXI7IHRoZSBkZXNpZ24ga2VlcHMgdGhlXG4gICAgLy8gbnVtYmVyIGJsYWNrIGFuZCBsZXRzIHRoZSByaW5nIGNhcnJ5IHRoZSBjb2xvdXIuIEEgQ1NTIHJ1bGUgYmVhdHMgdGhlXG4gICAgLy8gZmlsbCBwcmVzZW50YXRpb24gYXR0cmlidXRlIHRoZSBkaXJlY3RpdmUgc2V0cy5cbiAgICAudGV4dCB7XG4gICAgICBmb250LXNpemU6IDYzcHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZmlsbDogIzAwMDAwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBjYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19jYXJkIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAmX19iYW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDtcbiAgfVxuXG4gICZfX2Jhbm5lci1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX2Jhbm5lci10ZXh0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIC0tIHRyZW5kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3RyZW5kcy1sYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogMjRweCAwIDEycHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fdHJlbmRzLWRvdCB7XG4gICAgY29sb3I6ICNiMGIwYjA7XG4gIH1cblxuICAmX19jb2x1bW5zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgLmRhaWx5LXJlc3VsdHNfX2NvbHVtbiArIC5kYWlseS1yZXN1bHRzX19jb2x1bW4ge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZGFpbHktcmVzdWx0cy1oYWlybGluZTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZmlyc3QtdGVzdCBsYXlvdXQgaGFzIG5vIHNwYXJrbGluZXMsIHNvIGl0IGhhcyBubyB0cmVuZHMgbGFiZWwgYWJvdmVcbiAgICAvLyBpdCB0byBzcGFjZSBpdCBvZmYgdGhlIGJhbm5lciBlaXRoZXIuXG4gICAgJi0tZmxhdCB7XG4gICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC8vIFRoZSBEUlQgcmVwb3J0cyBhIHNpbmdsZSBzY29yZSByYXRoZXIgdGhhbiBSK1IncyB0aHJlZSwgc28gaXQgaGFzIG5vXG4gICAgLy8gY29sdW1uIGdyaWQgdG8gYWxpZ24gdG8gYW5kIHJlYWRzIGFzIGFuIG9ycGhhbiBwdXNoZWQgYWdhaW5zdCB0aGUgbGVmdFxuICAgIC8vIGVkZ2Ugb2YgdGhlIGNhcmQuIENlbnRyZSBpdCBpbnN0ZWFkLCBhbmQgaG9sZCBhIGNvbHVtbidzIHdvcnRoIG9mIHdpZHRoXG4gICAgLy8gc28gdGhlIHNwYXJrbGluZSBrZWVwcyBpdHMgcHJvcG9ydGlvbnMuXG4gICAgJi0tc2luZ2xlIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAuZGFpbHktcmVzdWx0c19fY29sdW1uIHtcbiAgICAgICAgZmxleDogMCAxIDI0MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC5kYWlseS1yZXN1bHRzX19jb2x1bW4tdmFsdWUge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jb2x1bW4ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAmX19jb2x1bW4tbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fY29sdW1uLXZhbHVlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fY29sdW1uLXNjb3JlIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX3NwYXJrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuXG4gIC8vIFNoYXJlZCBieSB0aGUgdHJlbmQgY29sdW1ucyBhbmQgdGhlIGNoYW5nZSByb3dzLlxuICAmX19jaGFuZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAmLS11cCB7XG4gICAgICBjb2xvcjogJGRhaWx5LXJlc3VsdHMtdXA7XG4gICAgfVxuXG4gICAgJi0tZG93biB7XG4gICAgICBjb2xvcjogJGRhaWx5LXJlc3VsdHMtZG93bjtcbiAgICB9XG4gIH1cblxuICAmX190cmVuZC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gIH1cblxuICAmX19ub3RpY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIHNvcmVuZXNzIGJvZHkgbWFwIChEYWlseSBSZWFkaW5lc3MgVGVzdCBvbmx5KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUaGUgd3JhcHBlciBtdXN0IGtlZXAgaXRzIGByNS1ib2R5LXdyYXBwZXJgIGNsYXNzIGFsb25nc2lkZSB0aGlzIG9uZTpcbiAgLy8gbWl4aW5zL3Rlc3RfcmVzdWx0c19wZGYgcmFzdGVyaXplcyB0aGUgbGl2ZSBTVkcgYnkgdGhhdCBzZWxlY3Rvci5cbiAgJl9fc29yZW5lc3Mge1xuICAgIG1hcmdpbi10b3A6IDI4cHg7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRkYWlseS1yZXN1bHRzLWhhaXJsaW5lO1xuICB9XG5cbiAgJl9fc29yZW5lc3MtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gVGhlIGRpcmVjdGl2ZSBsYXlzIHRoZSB0d28gdmlld3Mgb3V0IGluIGEgPHRhYmxlPjsgY2VudHJlIGl0IGFuZCBzdHJpcCB0aGVcbiAgLy8gbGVnYWN5IHRhYmxlIGNocm9tZSBfYmFzZS5zY3NzIHB1dHMgb24gb25lLlxuICAmX19ib2R5bWFwIHtcbiAgICB0YWJsZSB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYm9keW1hcC1maWd1cmUge1xuICAgIG1heC13aWR0aDogMTI4cHg7XG4gICAgbWF4LWhlaWdodDogMjcycHg7XG4gIH1cblxuICAvLyAtLSBkaXNjbG9zdXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19kaXNjbG9zdXJlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fY2hldnJvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLy8gLS0gd2hhdCBjaGFuZ2VkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fY2hhbmdlcyB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFpbHktcmVzdWx0cy1oYWlybGluZTtcbiAgfVxuXG4gICZfX2NoYW5nZXMtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fY2hhbmdlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZhZmFmYTtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjBmMGYwO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcbiAgICB9XG4gIH1cblxuICAmX19jaGFuZ2UtbmFtZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fY2hhbmdlLWRldGFpbCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gY3RhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fY3RhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMjhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIGJhY2tncm91bmQ6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAmX19jdGEtYXJyb3cge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgICBwYWRkaW5nOiAzMnB4IDIwcHggNDhweDtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgIC8vIFRocmVlIGNvbHVtbnMgb2YgMzBweCBudW1iZXJzIGRvIG5vdCBzdXJ2aXZlIGEgcGhvbmUgd2lkdGguXG4gICAgJl9fY29sdW1ucyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAxNnB4O1xuICAgIH1cblxuICAgICZfX2NvbHVtbiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIFN0YWNrZWQsIHNvIHRoZSBkaXZpZGVyIGhhcyB0byB0dXJuIHdpdGggdGhlIGNvbHVtbnMuXG4gICAgJl9fY29sdW1ucyAuZGFpbHktcmVzdWx0c19fY29sdW1uICsgLmRhaWx5LXJlc3VsdHNfX2NvbHVtbiB7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFpbHktcmVzdWx0cy1oYWlybGluZTtcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgIH1cblxuICAgICZfX2N0YSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRoZSBjb21wbGV0aW9uIHNjcmVlbiBmb3IgYSBwcm9ncmFtIHNlc3Npb24gKHRlbXBsYXRlcy9zZXNzaW9uX2NvbXBsZXRlLmh0bWwpLCBzd2FwcGVkXG4vLyBpbiBvdmVyIHZpZXdzL2RhaWx5Lmh0bWwgb25jZSBDb21wbGV0ZSBTZXNzaW9uIGxhbmRzLlxuLy9cbi8vIFNpYmxpbmcgb2YgX2RhaWx5X3Rlc3RfcmVzdWx0cy5zY3NzIGFuZCBkZWxpYmVyYXRlbHkgYSBzZXBhcmF0ZSBibG9jayByYXRoZXIgdGhhbiBhXG4vLyByZXVzZSBvZiAuZGFpbHktcmVzdWx0czogdGhhdCBvbmUgb3ducyB0aGUgZGFpbHktdGVzdCBwYWdlIGZyYW1lLCBpbmNsdWRpbmcgYSBjb21wb3VuZFxuLy8gLnZpZXctZmxleCBzZWxlY3RvciB0aGlzIHBhZ2UgaGFzIG5vIG5lZWQgb2YgKGl0IHNpdHMgaW4gYW4gb3JkaW5hcnkgLnZpZXctbGF5b3V0KS4gVGhlXG4vLyB0b2tlbnMgYmVsb3cgYXJlIHRoZSBzYW1lIHZhbHVlcyBvbiBwdXJwb3NlIC0gcGVyLXBhcnRpYWwgdG9rZW4gYmxvY2tzIGFyZSB0aGVcbi8vIGNvbnZlbnRpb24gaGVyZSwgc2VlIHRoZSBpZGVudGljYWwgc2V0IGluIF9kYWlseV9wcm9ncmFtLnNjc3MuXG5cbi8vIFRoZSBGaWdtYSBjYWxscyB0aGUgaGVhZGxpbmUsIHRoZSBzdHJlYWsgYW5kIHRoZSBzdGF0IHZhbHVlcyB0cnVlIGJsYWNrIHJhdGhlciB0aGFuXG4vLyB0aGUgbmVhci1ibGFjayAkYmxhY2stODAwIHRoZSBkYWlseS10ZXN0IHNjcmVlbnMgdXNlIGZvciBldmVyeXRoaW5nLlxuLy8gVGhlIHN0YXQgdGlsZXMnIGxhYmVscyBzaXQgYSBzaGFkZSBkYXJrZXIgdGhhbiB0aGUgbXV0ZWQgZ3JleSB1c2VkIGVsc2V3aGVyZS5cbiRzZXNzaW9uLWNvbXBsZXRlLXRyYWNrOiAjZTllY2VmO1xuJHNlc3Npb24tY29tcGxldGUtZmlsbDogIzIwYjc2OTtcblxuLy8gbmctaW5jbHVkZSBsZWF2ZXMgYW4gdW5zdHlsZWQgd3JhcHBlciBkaXYgYmV0d2VlbiAudmlldy1sYXlvdXQgYW5kIHRoaXMgYmxvY2s7IGFzIGFcbi8vIGZsZXggaXRlbSBpdCBzaHJpbmstdG8tZml0cyBhbmQgdGhlIGNlbnRyZWQgY29sdW1uIGRyaWZ0cyBsZWZ0LlxuLnZpZXctbGF5b3V0ID4gZGl2Omhhcyg+IC5zZXNzaW9uLWNvbXBsZXRlKSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5zZXNzaW9uLWNvbXBsZXRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vIDY0MHB4IGNhcmQgKyB0aGUgMjRweCBndXR0ZXJzIGVpdGhlciBzaWRlIG9mIGl0LCBtYXRjaGluZyAuZGFpbHktcmVzdWx0cy5cbiAgbWF4LXdpZHRoOiA2ODhweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDQ4cHggMjRweCA2NHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgLy8gTmV1dHJhbGl6ZSB0aGUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IHVwcGVyY2FzZTsgbG9jay1oZWlnaHQgfSBydWxlcyBmcm9tXG4gIC8vIF9iYXNlLnNjc3MsIHdoaWNoIG90aGVyd2lzZSB3cmVjayB0aGUgQ1RBLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgLy8gLS0gaGVhZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVHdvIHN0YWNrZWQgZGlzY3M6IHRoZSA3MnB4IHdhc2ggaXMgb25seSB+MiUgb2ZmIHRoZSBwYWdlIGJhY2tncm91bmQsIHNvIG9uIGl0cyBvd25cbiAgLy8gaXQgcmVhZHMgYXMgbm90aGluZy4gVGhlIGlubmVyIGRpc2MgaXMgd2hhdCBtYWtlcyBpdCBhIGhhbG8uXG4gICZfX2NoZWNrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA3MnB4O1xuICAgIGhlaWdodDogNzJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgfVxuXG4gICZfX2NoZWNrLWlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0yMDA7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIC8vIFRoZSBoZWFkbGluZSBzZXRzIHNvbGlkIGF0IGxpbmUtaGVpZ2h0IDEsIHNvIHRoZSBnYXAgdG8gdGhlIHN0cmVhayByb3cgaGFzIHRvIGNvbWVcbiAgICAvLyBlbnRpcmVseSBmcm9tIHRoaXMgbWFyZ2luIHJhdGhlciB0aGFuIGZyb20gbGVhZGluZy5cbiAgICBtYXJnaW46IDAgMCA0MHB4O1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIC8vIDEwMCUgaW4gdGhlIEZpZ21hIC0gdGhlIGhlYWRsaW5lIHNldHMgc29saWQsIHVubGlrZSB0aGUgMjgvMzYgdGhlIGRhaWx5LXRlc3RcbiAgICAvLyBzY3JlZW5zIHVzZS5cbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gIC8vIC0tIHN0cmVhayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3N0cmVhayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xuICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fc3RyZWFrLWZsYW1lIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIC0tIGNhcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFRoZSAyNDNweCBpcyBhIGZpeGVkIEZpZ21hIGhlaWdodCwgYW5kIHRoZSBtYXJnaW5zIGJlbG93IGFyZSBidWRnZXRlZCB0byBsYW5kIG9uIGl0XG4gIC8vIGV4YWN0bHk6IDQwIHBhZGRpbmcgKyA0NCBiYW5uZXIgKyA1OCBwcm9ncmVzcyArIDI0IGdhcCArIDc3IHRpbGUuIENoYW5naW5nIGFueSBvZlxuICAvLyB0aG9zZSBwaWVjZXMgbWVhbnMgcmUtY2hlY2tpbmcgdGhpcyBudW1iZXIgb3IgdGhlIGNhcmQgd2lsbCBjbGlwLiBUaGUgbW9iaWxlIGJsb2NrXG4gIC8vIHJlbGVhc2VzIGl0IGJhY2sgdG8gYXV0bywgd2hpY2ggaXMgd2hlcmUgdGhlIGJhbm5lciBjb3B5IGNhbiB3cmFwIHRvIHR3byBsaW5lcy5cbiAgJl9fY2FyZCB7XG4gICAgaGVpZ2h0OiAyNDNweDtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIC8vIEljb24gYW5kIHRleHQgY2VudHJlIGFzIG9uZSBncm91cCwgdW5saWtlIHRoZSBjYXJkJ3Mgb3RoZXIgcm93czogdGhlIGJhbm5lciBpcyB0aGVcbiAgLy8gb25seSBmdWxsLXdpZHRoIGVsZW1lbnQgaW5zaWRlIHRoZSBvdGhlcndpc2UgbGVmdC1hbGlnbmVkIGNhcmQuXG4gIC8vIDQ0cHggZml4ZWQsIHBlciB0aGUgRmlnbWEuIE5vIHZlcnRpY2FsIHBhZGRpbmc6IGFsaWduLWl0ZW1zIGNlbnRyZXMgdGhlIDIycHggbGluZVxuICAvLyBhbmQgdGhlIDIwcHggaWNvbiBpbnNpZGUgdGhlIGJhbmQgaW5zdGVhZCwgc28gdGhlIGhlaWdodCBpcyB0aGUgc2luZ2xlIGNvbnRyb2wuXG4gICZfX2Jhbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTA7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fYmFubmVyLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgfVxuXG4gICZfX2Jhbm5lci10ZXh0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAvLyBLZWVwcyBhIHdyYXBwZWQgc2Vjb25kIGxpbmUgY2VudHJlZCB1bmRlciB0aGUgZmlyc3QgcmF0aGVyIHRoYW4gZmx1c2hpbmcgbGVmdC5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyAtLSBwcm9ncmFtIHByb2dyZXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19wcm9ncmVzcyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuXG4gICZfX3Byb2dyZXNzLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgJl9fcHJvZ3Jlc3Mtd2VlayB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyBQdXNoZWQgcmlnaHQgYnkgaXRzIG93biBtYXJnaW4gcmF0aGVyIHRoYW4gc3BhY2UtYmV0d2Vlbiwgc28gaXQgc3RheXMgcmlnaHQtYWxpZ25lZFxuICAvLyB3aGVuIHRoZSB3ZWVrIGNvdWxkIG5vdCBiZSBkZXJpdmVkIGFuZCBpdCBpcyB0aGUgb25seSBjaGlsZC5cbiAgJl9fcHJvZ3Jlc3MtY291bnQge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fYmFyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkc2Vzc2lvbi1jb21wbGV0ZS10cmFjaztcbiAgfVxuXG4gICZfX2Jhci1maWxsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRzZXNzaW9uLWNvbXBsZXRlLWZpbGw7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xuICB9XG5cbiAgLy8gLS0gc3RhdCB0aWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fc3RhdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gIH1cblxuICAvLyA3N3B4IGZpeGVkLCBwZXIgdGhlIEZpZ21hOiAxMi8xMiBwYWRkaW5nIGFyb3VuZCBhIDIwcHggbGFiZWwsIGl0cyA0cHggZ2FwIGFuZCBhIDI4cHhcbiAgLy8gdmFsdWUgY29tZXMgdG8gNzYsIHNvIHRoZSBoZWlnaHQgaGFzIGEgcGl4ZWwgb2Ygc2xhY2sgcmF0aGVyIHRoYW4gY2xpcHBpbmcuXG4gICZfX3N0YXQge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDc3cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0xMDA7XG4gIH1cblxuICAmX19zdGF0LWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19zdGF0LXZhbHVlIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gIC8vIC0tIGN0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBwYWRkaW5nOiAxNHB4IDI4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWFycm93IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgcGFkZGluZzogMzJweCAyMHB4IDQ4cHg7XG5cbiAgICAvLyBUaGUgMjRweCBoZWFkbGluZSBhbHJlYWR5IGZpdHMgYSBwaG9uZSwgc28gb25seSB0aGUgNDhweCBzdHJlYWsgc3RlcHMgZG93bi5cbiAgICAmX19zdHJlYWsge1xuICAgICAgZ2FwOiAxMnB4O1xuICAgICAgZm9udC1zaXplOiAzNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDQycHg7XG4gICAgfVxuXG4gICAgJl9fc3RyZWFrLWZsYW1lIHtcbiAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgIH1cblxuICAgIC8vIEFsbCB0aHJlZSBmaXhlZCBoZWlnaHRzIGFyZSBkZXNrdG9wLW9ubHkuIFRoZSB0aWxlcyBzdGFjayBoZXJlIGFuZCB0aGUgYmFubmVyIGNvcHlcbiAgICAvLyBjYW4gd3JhcCwgc28gaG9sZGluZyAyNDMvNDQvNzcgd291bGQgY2xpcC5cbiAgICAmX19jYXJkIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX19iYW5uZXIge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIH1cblxuICAgIC8vIFR3byB0aWxlcyBkbyBub3Qgc3Vydml2ZSBhIHBob25lIHdpZHRoIHNpZGUgYnkgc2lkZS5cbiAgICAmX19zdGF0cyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICZfX3N0YXQge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX2N0YSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FDT0EsQUFBQSxDQUFDLEVBQUUsQ0FBQyxBQUFBLE9BQU8sRUFBRSxDQUFDLEFBQUEsTUFBTSxFQUFQLENBQUMsQW9EcUVkLGNBQWMsQUFBQSxNQUFNLEVwRHJFUCxDQUFDLEFvRHlFZCxlQUFlLEFBQUEsTUFBTSxFcER6RVIsQ0FBQyxBb0RpRmQsYUFBYSxBQUFBLE1BQU0sQ3BEakZFO0VHcUJuQixrQkFBa0IsRUhwQkUsT0FBTztFR3FCeEIsZUFBZSxFSHJCRSxPQUFPO0VHc0JuQixVQUFVLEVIdEJFLE9BQU87RUcwQjdCLHFCQUFxQixFSHpCRSxJQUFJO0VHMEJ0QixnQkFBZ0IsRUgxQkUsSUFBSTtFRzJCdEIsZ0JBQWdCLEVIM0JFLElBQUk7RUc0QnJCLGVBQWUsRUg1QkUsSUFBSTtFRzZCakIsV0FBVyxFSDdCRSxJQUFJLEdBQzFCOztBQUVELEFBQUEsSUFBSSxDQUFDO0VHZ0JILGtCQUFrQixFSGZFLFVBQVU7RUdnQjNCLGVBQWUsRUhoQkUsVUFBVTtFR2lCdEIsVUFBVSxFSGpCRSxVQUFVO0VBQzlCLFdBQVcsRUFBRSw4Q0FBOEM7RUFDM0QsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixX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 */