@media screen{
#iso_ajaxBox{width:20%;padding:9px 50px 9px 24px;position:fixed;top:10%;left:40%;background:#fff url(../../system/modules/isotope/assets/images/loading.gif) no-repeat right center;border:2px solid #000;font-family:"Trebuchet MS",Verdana,sans-serif;font-size:15px;line-height:18px;text-align:left;color:#000;z-index:9999}#iso_ajaxBox.btnClose{background-image:none;cursor:pointer}#iso_ajaxBox p{margin:1em 0;padding:0}#iso_ajaxBox .iso_error{padding-left:34px;background:url(../../system/modules/isotope/assets/images/cross-24.png) left center no-repeat}#iso_ajaxBox .iso_confirm{padding-left:34px;background:url(../../system/modules/isotope/assets/images/tick-24.png) left center no-repeat}#iso_ajaxBox .iso_info{padding-left:34px;background:url(../../system/modules/isotope/assets/images/information-24.png) left center no-repeat}#iso_ajaxOverlay{width:100%;height:100%;position:fixed;top:0;left:0;background-color:#000;z-index:9998;-moz-opacity:.5;opacity:.5;_display:none;filter:Alpha(opacity=50)}
}
.rs-columns {
  clear: both;
  display: inline-block;
  width: 100%;
}

.rs-column {
  float: left;
  width: 100%;
  margin-top: 7.69231%;
  margin-right: 7.69231%;
}
.rs-column.-large-first {
  clear: left;
}
.rs-column.-large-last {
  margin-right: -5px;
}
.rs-column.-large-first-row {
  margin-top: 0;
}
.rs-column.-large-col-1-1 {
  width: 100%;
}
.rs-column.-large-col-2-1 {
  width: 46.15385%;
}
.rs-column.-large-col-2-2 {
  width: 100%;
}
.rs-column.-large-col-3-1 {
  width: 28.20513%;
}
.rs-column.-large-col-3-2 {
  width: 64.10256%;
}
.rs-column.-large-col-3-3 {
  width: 100%;
}
.rs-column.-large-col-4-1 {
  width: 19.23077%;
}
.rs-column.-large-col-4-2 {
  width: 46.15385%;
}
.rs-column.-large-col-4-3 {
  width: 73.07692%;
}
.rs-column.-large-col-4-4 {
  width: 100%;
}
.rs-column.-large-col-5-1 {
  width: 13.84615%;
}
.rs-column.-large-col-5-2 {
  width: 35.38462%;
}
.rs-column.-large-col-5-3 {
  width: 56.92308%;
}
.rs-column.-large-col-5-4 {
  width: 78.46154%;
}
.rs-column.-large-col-5-5 {
  width: 100%;
}
.rs-column.-large-col-6-1 {
  width: 10.25641%;
}
.rs-column.-large-col-6-2 {
  width: 28.20513%;
}
.rs-column.-large-col-6-3 {
  width: 46.15385%;
}
.rs-column.-large-col-6-4 {
  width: 64.10256%;
}
.rs-column.-large-col-6-5 {
  width: 82.05128%;
}
.rs-column.-large-col-6-6 {
  width: 100%;
}
@media screen and (max-width: 900px) {
  .rs-column {
    margin-top: 7.69231%;
    margin-right: 7.69231%;
  }
  .rs-column.-large-first {
    clear: none;
  }
  .rs-column.-large-last {
    margin-right: 7.69231%;
  }
  .rs-column.-large-first-row {
    margin-top: 7.69231%;
  }
  .rs-column.-medium-first {
    clear: left;
  }
  .rs-column.-medium-last {
    margin-right: -5px;
  }
  .rs-column.-medium-first-row {
    margin-top: 0;
  }
  .rs-column.-medium-col-1-1 {
    width: 100%;
  }
  .rs-column.-medium-col-2-1 {
    width: 46.15385%;
  }
  .rs-column.-medium-col-2-2 {
    width: 100%;
  }
  .rs-column.-medium-col-3-1 {
    width: 28.20513%;
  }
  .rs-column.-medium-col-3-2 {
    width: 64.10256%;
  }
  .rs-column.-medium-col-3-3 {
    width: 100%;
  }
  .rs-column.-medium-col-4-1 {
    width: 19.23077%;
  }
  .rs-column.-medium-col-4-2 {
    width: 46.15385%;
  }
  .rs-column.-medium-col-4-3 {
    width: 73.07692%;
  }
  .rs-column.-medium-col-4-4 {
    width: 100%;
  }
  .rs-column.-medium-col-5-1 {
    width: 13.84615%;
  }
  .rs-column.-medium-col-5-2 {
    width: 35.38462%;
  }
  .rs-column.-medium-col-5-3 {
    width: 56.92308%;
  }
  .rs-column.-medium-col-5-4 {
    width: 78.46154%;
  }
  .rs-column.-medium-col-5-5 {
    width: 100%;
  }
  .rs-column.-medium-col-6-1 {
    width: 10.25641%;
  }
  .rs-column.-medium-col-6-2 {
    width: 28.20513%;
  }
  .rs-column.-medium-col-6-3 {
    width: 46.15385%;
  }
  .rs-column.-medium-col-6-4 {
    width: 64.10256%;
  }
  .rs-column.-medium-col-6-5 {
    width: 82.05128%;
  }
  .rs-column.-medium-col-6-6 {
    width: 100%;
  }
}
@media screen and (max-width: 599px) {
  .rs-column {
    margin-top: 7.69231%;
    margin-right: 7.69231%;
  }
  .rs-column.-large-last {
    margin-right: 7.69231%;
  }
  .rs-column.-large-first-row {
    margin-top: 7.69231%;
  }
  .rs-column.-medium-first {
    clear: none;
  }
  .rs-column.-medium-last {
    margin-right: 7.69231%;
  }
  .rs-column.-medium-first-row {
    margin-top: 7.69231%;
  }
  .rs-column.-small-first {
    clear: left;
  }
  .rs-column.-small-last {
    margin-right: -5px;
  }
  .rs-column.-small-first-row {
    margin-top: 0;
  }
  .rs-column.-small-col-1-1 {
    width: 100%;
  }
  .rs-column.-small-col-2-1 {
    width: 46.15385%;
  }
  .rs-column.-small-col-2-2 {
    width: 100%;
  }
  .rs-column.-small-col-3-1 {
    width: 28.20513%;
  }
  .rs-column.-small-col-3-2 {
    width: 64.10256%;
  }
  .rs-column.-small-col-3-3 {
    width: 100%;
  }
  .rs-column.-small-col-4-1 {
    width: 19.23077%;
  }
  .rs-column.-small-col-4-2 {
    width: 46.15385%;
  }
  .rs-column.-small-col-4-3 {
    width: 73.07692%;
  }
  .rs-column.-small-col-4-4 {
    width: 100%;
  }
  .rs-column.-small-col-5-1 {
    width: 13.84615%;
  }
  .rs-column.-small-col-5-2 {
    width: 35.38462%;
  }
  .rs-column.-small-col-5-3 {
    width: 56.92308%;
  }
  .rs-column.-small-col-5-4 {
    width: 78.46154%;
  }
  .rs-column.-small-col-5-5 {
    width: 100%;
  }
  .rs-column.-small-col-6-1 {
    width: 10.25641%;
  }
  .rs-column.-small-col-6-2 {
    width: 28.20513%;
  }
  .rs-column.-small-col-6-3 {
    width: 46.15385%;
  }
  .rs-column.-small-col-6-4 {
    width: 64.10256%;
  }
  .rs-column.-small-col-6-5 {
    width: 82.05128%;
  }
  .rs-column.-small-col-6-6 {
    width: 100%;
  }
}

#colorbox,#cboxOverlay,#cboxWrapper{position:absolute;top:0;left:0;z-index:9999;overflow:hidden;-webkit-transform:translate3d(0,0,0)}#cboxWrapper{max-width:none}#cboxOverlay{position:fixed;width:100%;height:100%}#cboxMiddleLeft,#cboxBottomLeft{clear:left}#cboxContent{position:relative}#cboxLoadedContent{overflow:auto;-webkit-overflow-scrolling:touch}#cboxTitle{margin:0}#cboxLoadingOverlay,#cboxLoadingGraphic{position:absolute;top:0;left:0;width:100%;height:100%}#cboxPrevious,#cboxNext,#cboxClose,#cboxSlideshow{cursor:pointer}.cboxPhoto{float:left;margin:auto;border:0;display:block;max-width:none;-ms-interpolation-mode:bicubic}.cboxIframe{width:100%;height:100%;display:block;border:0;padding:0;margin:0}#colorbox,#cboxContent,#cboxLoadedContent{box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}#cboxOverlay{background:#000;opacity:.9;filter:alpha(opacity = 90)}#colorbox{outline:0}#cboxContent{margin-top:20px;background:#000}.cboxIframe{background:#fff}#cboxError{padding:50px;border:1px solid #ccc}#cboxLoadedContent{border:5px solid #000;background:#fff}#cboxTitle{position:absolute;top:-20px;left:0;color:#ccc}#cboxCurrent{position:absolute;top:-20px;right:0;color:#ccc}#cboxLoadingGraphic{background:url(../../assets/colorbox/images/loading.gif) no-repeat center center}#cboxPrevious,#cboxNext,#cboxSlideshow,#cboxClose{border:0;padding:0;margin:0;overflow:visible;width:auto;background:0 0}#cboxPrevious:active,#cboxNext:active,#cboxSlideshow:active,#cboxClose:active{outline:0}#cboxSlideshow{position:absolute;top:-20px;right:90px;color:#fff}#cboxPrevious{position:absolute;top:50%;left:5px;margin-top:-32px;background:url(../../assets/colorbox/images/controls.png) no-repeat top left;width:28px;height:65px;text-indent:-9999px}#cboxPrevious:hover{background-position:bottom left}#cboxNext{position:absolute;top:50%;right:5px;margin-top:-32px;background:url(../../assets/colorbox/images/controls.png) no-repeat top right;width:28px;height:65px;text-indent:-9999px}#cboxNext:hover{background-position:bottom right}#cboxClose{position:absolute;top:5px;right:5px;display:block;background:url(../../assets/colorbox/images/controls.png) no-repeat top center;width:38px;height:19px;text-indent:-9999px}#cboxClose:hover{background-position:bottom center}
@charset "UTF-8";

/* ===================================================================================================================
   Settings - Fonts
   ================================================================================================================ */
@font-face {
  font-family: 'Lato';
  src: url("../../files/theme/fonts/LatoLatin-Light.woff2") format("woff2"), url("../../files/theme/fonts/LatoLatin-Light.woff") format("woff");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: 'Lato';
  src: url("../../files/theme/fonts/LatoLatin-LightItalic.woff2") format("woff2"), url("../../files/theme/fonts/LatoLatin-LightItalic.woff") format("woff");
  font-weight: 300;
  font-style: italic;
}

@font-face {
  font-family: 'Lato';
  src: url("../../files/theme/fonts/LatoLatin-Regular.woff2") format("woff2"), url("../../files/theme/fonts/LatoLatin-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: 'Lato';
  src: url("../../files/theme/fonts/LatoLatin-Italic.woff2") format("woff2"), url("../../files/theme/fonts/LatoLatin-Italic.woff") format("woff");
  font-weight: 400;
  font-style: italic;
}

@font-face {
  font-family: 'Lato';
  src: url("../../files/theme/fonts/LatoLatin-Medium.woff2") format("woff2"), url("../../files/theme/fonts/LatoLatin-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'Lato';
  src: url("../../files/theme/fonts/LatoLatin-Bold.woff2") format("woff2"), url("../../files/theme/fonts/LatoLatin-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: "Icons";
  src: url("../../files/theme/fonts/icomoon.woff2") format("woff2"), url("../../files/theme/fonts/icomoon.woff") format("woff"), url("../../files/theme/fonts/icomoon.svg") format("svg");
  font-weight: normal;
  font-style: normal;
}

i,
.top-navigation_shop .link_basket:after,
.page_sidebar-backlink .backlink:before,
.content_type-social a:before,
.content_type-social a.pinterest:before,
.content_type-social a.instagram:before,
.dropdown.menu.vertical.dropdown > li.is-dropdown-submenu-parent > a:after,
.is-accordion-submenu-parent > a:after,
.mod_iso_productreader .property_status-ordered span:before,
.basket-maxi_content .remove a:before,
.page_content-basket-mini h2:before,
.page_content-basket-mini .remove a:after,
.page_content-basket-mini .coupon h2:before,
.ce_accordion .toggler:before,
.ce_accordion .toggler:after,
.ce_accordion .toggler.active:after,
.ce_item-media-teaser__link a:before,
[class^="icon_"],
[class*=" icon_"] {
  font-family: "Icons" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon_instagram {
  content: "";
}

.icon_pinterest {
  content: "";
}

.icon_home {
  content: "";
}

.icon_home2 {
  content: "";
}

.icon_home5 {
  content: "";
}

.icon_newspaper {
  content: "";
}

.icon_magazine {
  content: "";
}

.icon_image2 {
  content: "";
}

.icon_image4 {
  content: "";
}

.icon_image5 {
  content: "";
}

.icon_camera {
  content: "";
}

.icon_camera2 {
  content: "";
}

.icon_play {
  content: "";
}

.icon_film3 {
  content: "";
}

.icon_bullhorn {
  content: "";
}

.icon_megaphone {
  content: "";
}

.icon_new {
  content: "";
}

.icon_connection {
  content: "";
}

.icon_price-tag2 {
  content: "";
}

.icon_price-tags {
  content: "";
}

.icon_price-tag3 {
  content: "";
}

.icon_price-tags2 {
  content: "";
}

.icon_price-tag4 {
  content: "";
}

.icon_price-tags3 {
  content: "";
}

.icon_price-tag5 {
  content: "";
}

.icon_price-tags4 {
  content: "";
}

.icon_cart4 {
  content: "";
}

.icon_cart5 {
  content: "";
}

.icon_coin-euro {
  content: "";
}

.icon_credit-card {
  content: "";
}

.icon_credit-card2 {
  content: "";
}

.icon_calculator2 {
  content: "";
}

.icon_phone {
  content: "";
}

.icon_phone2 {
  content: "";
}

.icon_phone-wave {
  content: "";
}

.icon_at-sign {
  content: "";
}

.icon_envelop {
  content: "";
}

.icon_envelop2 {
  content: "";
}

.icon_envelop3 {
  content: "";
}

.icon_location {
  content: "";
}

.icon_location2 {
  content: "";
}

.icon_location3 {
  content: "";
}

.icon_location4 {
  content: "";
}

.icon_location5 {
  content: "";
}

.icon_location6 {
  content: "";
}

.icon_calendar2 {
  content: "";
}

.icon_calendar3 {
  content: "";
}

.icon_calendar4 {
  content: "";
}

.icon_printer4 {
  content: "";
}

.icon_quotes-left {
  content: "";
}

.icon_quotes-right {
  content: "";
}

.icon_quotes-left2 {
  content: "";
}

.icon_quotes-right2 {
  content: "";
}

.icon_search {
  content: "";
}

.icon_search3 {
  content: "";
}

.icon_lamp7 {
  content: "";
}

.icon_lamp8 {
  content: "";
}

.icon_clipboard {
  content: "";
}

.icon_clipboard2 {
  content: "";
}

.icon_clipboard3 {
  content: "";
}

.icon_clipboard4 {
  content: "";
}

.icon_clipboard5 {
  content: "";
}

.icon_clipboard6 {
  content: "";
}

.icon_more {
  content: "";
}

.icon_more2 {
  content: "";
}

.icon_grid {
  content: "";
}

.icon_grid2 {
  content: "";
}

.icon_grid3 {
  content: "";
}

.icon_grid4 {
  content: "";
}

.icon_grid5 {
  content: "";
}

.icon_grid6 {
  content: "";
}

.icon_menu {
  content: "";
}

.icon_circle-small {
  content: "";
}

.icon_menu3 {
  content: "";
}

.icon_menu4 {
  content: "";
}

.icon_menu5 {
  content: "";
}

.icon_menu6 {
  content: "";
}

.icon_menu7 {
  content: "";
}

.icon_menu8 {
  content: "";
}

.icon_menu9 {
  content: "";
}

.icon_menu10 {
  content: "";
}

.icon_link {
  content: "";
}

.icon_link2 {
  content: "";
}

.icon_link3 {
  content: "";
}

.icon_link5 {
  content: "";
}

.icon_star-empty2 {
  content: "";
}

.icon_star-full {
  content: "";
}

.icon_star-empty3 {
  content: "";
}

.icon_thumbs-up {
  content: "";
}

.icon_thumbs-up2 {
  content: "";
}

.icon_thumbs-down {
  content: "";
}

.icon_thumbs-down2 {
  content: "";
}

.icon_warning {
  content: "";
}

.icon_warning2 {
  content: "";
}

.icon_notification {
  content: "";
}

.icon_notification2 {
  content: "";
}

.icon_question3 {
  content: "";
}

.icon_question4 {
  content: "";
}

.icon_plus {
  content: "";
}

.icon_minus {
  content: "";
}

.icon_plus2 {
  content: "";
}

.icon_minus2 {
  content: "";
}

.icon_plus3 {
  content: "";
}

.icon_minus3 {
  content: "";
}

.icon_plus-circle {
  content: "";
}

.icon_minus-circle {
  content: "";
}

.icon_plus-circle2 {
  content: "";
}

.icon_minus-circle2 {
  content: "";
}

.icon_info {
  content: "";
}

.icon_info2 {
  content: "";
}

.icon_cancel-circle {
  content: "";
}

.icon_cancel-circle2 {
  content: "";
}

.icon_cancel-square {
  content: "";
}

.icon_cancel-square2 {
  content: "";
}

.icon_cancel {
  content: "";
}

.icon_cross {
  content: "";
}

.icon_cross2 {
  content: "";
}

.icon_cross3 {
  content: "";
}

.icon_checkmark {
  content: "";
}

.icon_checkmark2 {
  content: "";
}

.icon_checkmark3 {
  content: "";
}

.icon_checkmark4 {
  content: "";
}

.icon_checkmark5 {
  content: "";
}

.icon_enter {
  content: "";
}

.icon_exit {
  content: "";
}

.icon_play4 {
  content: "";
}

.icon_arrow-up {
  content: "";
}

.icon_arrow-up2 {
  content: "";
}

.icon_arrow-up3 {
  content: "";
}

.icon_arrow-up4 {
  content: "";
}

.icon_arrow-right {
  content: "";
}

.icon_arrow-right2 {
  content: "";
}

.icon_arrow-right3 {
  content: "";
}

.icon_arrow-right4 {
  content: "";
}

.icon_arrow-down {
  content: "";
}

.icon_arrow-down2 {
  content: "";
}

.icon_arrow-down3 {
  content: "";
}

.icon_arrow-down4 {
  content: "";
}

.icon_arrow-left {
  content: "";
}

.icon_arrow-left2 {
  content: "";
}

.icon_arrow-left3 {
  content: "";
}

.icon_arrow-left4 {
  content: "";
}

.icon_arrow-up5 {
  content: "";
}

.icon_arrow-right5 {
  content: "";
}

.icon_arrow-down5 {
  content: "";
}

.icon_arrow-left5 {
  content: "";
}

.icon_arrow-up6 {
  content: "";
}

.icon_arrow-right6 {
  content: "";
}

.icon_arrow-down6 {
  content: "";
}

.icon_arrow-left6 {
  content: "";
}

.icon_arrow-up7 {
  content: "";
}

.icon_arrow-right7 {
  content: "";
}

.icon_arrow-down7 {
  content: "";
}

.icon_arrow-left7 {
  content: "";
}

.icon_arrow-up-left3 {
  content: "";
}

.icon_arrow-up8 {
  content: "";
}

.icon_arrow-up-right3 {
  content: "";
}

.icon_arrow-right8 {
  content: "";
}

.icon_arrow-down-right3 {
  content: "";
}

.icon_arrow-down8 {
  content: "";
}

.icon_arrow-down-left3 {
  content: "";
}

.icon_arrow-left8 {
  content: "";
}

.icon_circle-up2 {
  content: "";
}

.icon_circle-right2 {
  content: "";
}

.icon_circle-down2 {
  content: "";
}

.icon_circle-left2 {
  content: "";
}

.icon_circle-up3 {
  content: "";
}

.icon_circle-right3 {
  content: "";
}

.icon_circle-down3 {
  content: "";
}

.icon_circle-left3 {
  content: "";
}

.icon_circle-up4 {
  content: "";
}

.icon_circle-right4 {
  content: "";
}

.icon_circle-down4 {
  content: "";
}

.icon_circle-left4 {
  content: "";
}

.icon_square-up {
  content: "";
}

.icon_square-right {
  content: "";
}

.icon_square-down {
  content: "";
}

.icon_square-left {
  content: "";
}

.icon_arrow-up9 {
  content: "";
}

.icon_arrow-right9 {
  content: "";
}

.icon_arrow-down9 {
  content: "";
}

.icon_arrow-left9 {
  content: "";
}

.icon_arrow-up12 {
  content: "";
}

.icon_arrow-right12 {
  content: "";
}

.icon_arrow-down12 {
  content: "";
}

.icon_arrow-left12 {
  content: "";
}

.icon_arrow-up14 {
  content: "";
}

.icon_arrow-right14 {
  content: "";
}

.icon_arrow-down14 {
  content: "";
}

.icon_arrow-left14 {
  content: "";
}

.icon_circle-up5 {
  content: "";
}

.icon_circle-right5 {
  content: "";
}

.icon_circle-down5 {
  content: "";
}

.icon_circle-left5 {
  content: "";
}

.icon_circle-up6 {
  content: "";
}

.icon_circle-right6 {
  content: "";
}

.icon_circle-down6 {
  content: "";
}

.icon_circle-left6 {
  content: "";
}

.icon_arrow-up15 {
  content: "";
}

.icon_arrow-right15 {
  content: "";
}

.icon_arrow-down15 {
  content: "";
}

.icon_arrow-left15 {
  content: "";
}

.icon_arrow-up16 {
  content: "";
}

.icon_arrow-right16 {
  content: "";
}

.icon_arrow-down16 {
  content: "";
}

.icon_arrow-left16 {
  content: "";
}

.icon_checkbox-checked {
  content: "";
}

.icon_checkbox-unchecked {
  content: "";
}

.icon_checkbox-partial {
  content: "";
}

.icon_square {
  content: "";
}

.icon_diamond3 {
  content: "";
}

.icon_diamond4 {
  content: "";
}

.icon_checkbox-checked2 {
  content: "";
}

.icon_checkbox-unchecked2 {
  content: "";
}

.icon_radio-checked {
  content: "";
}

.icon_radio-checked2 {
  content: "";
}

.icon_radio-unchecked {
  content: "";
}

.icon_checkmark-circle {
  content: "";
}

.icon_circle {
  content: "";
}

.icon_circle2 {
  content: "";
}

.icon_filter {
  content: "";
}

.icon_filter2 {
  content: "";
}

.icon_filter3 {
  content: "";
}

.icon_filter4 {
  content: "";
}

.icon_new-tab {
  content: "";
}

.icon_new-tab2 {
  content: "";
}

.icon_share3 {
  content: "";
}

.icon_amazon {
  content: "";
}

.icon_google2 {
  content: "";
}

.icon_google-plus {
  content: "";
}

.icon_google-plus2 {
  content: "";
}

.icon_facebook {
  content: "";
}

.icon_facebook2 {
  content: "";
}

.icon_twitter {
  content: "";
}

.icon_youtube {
  content: "";
}

.icon_youtube2 {
  content: "";
}

.icon_xing {
  content: "";
}

.icon_xing2 {
  content: "";
}

.icon_file-pdf {
  content: "";
}

.margin-y-large {
  margin-top: 30px !important;
  margin-bottom: 60px !important;
}

@media print, screen and (min-width: 40em) {
  .margin-y-large {
    margin-top: 80px !important;
    margin-bottom: 110px !important;
  }
}

/**
 * Foundation for Sites by ZURB
 * Version 6.3.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
/* Document
       ========================================================================== */
/**
     * 1. Change the default font family in all browsers (opinionated).
     * 2. Correct the line height in all browsers.
     * 3. Prevent adjustments of font size after orientation changes in
     *    IE on Windows Phone and in iOS.
     */
html {
  font-family: sans-serif;
  /* 1 */
  line-height: 1.15;
  /* 2 */
  -ms-text-size-adjust: 100%;
  /* 3 */
  -webkit-text-size-adjust: 100%;
  /* 3 */
}

/* Sections
       ========================================================================== */
/**
     * Remove the margin in all browsers (opinionated).
     */
body {
  margin: 0;
}

/**
     * Add the correct display in IE 9-.
     */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
     * Correct the font size and margin on `h1` elements within `section` and
     * `article` contexts in Chrome, Firefox, and Safari.
     */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
figcaption,
figure {
  display: block;
}

/**
     * Add the correct margin in IE 8.
     */
figure {
  margin: 1em 40px;
}

/**
     * 1. Add the correct box sizing in Firefox.
     * 2. Show the overflow in Edge and IE.
     */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
     * Add the correct display in IE.
     */
main {
  display: block;
}

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Links
       ========================================================================== */
/**
     * 1. Remove the gray background on active links in IE 10.
     * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
     */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}

/**
     * Remove the outline on focused links when they are also active or hovered
     * in all browsers (opinionated).
     */
a:active,
a:hover {
  outline-width: 0;
}

/* Text-level semantics
       ========================================================================== */
/**
     * 1. Remove the bottom border in Firefox 39-.
     * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
     */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
     * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
     */
b,
strong {
  font-weight: inherit;
}

/**
     * Add the correct font weight in Chrome, Edge, and Safari.
     */
b,
strong {
  font-weight: bolder;
}

/**
     * 1. Correct the inheritance and scaling of font size in all browsers.
     * 2. Correct the odd `em` font sizing in all browsers.
     */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
     * Add the correct font style in Android 4.3-.
     */
dfn {
  font-style: italic;
}

/**
     * Add the correct background and color in IE 9-.
     */
mark {
  background-color: #ff0;
  color: #000;
}

/**
     * Add the correct font size in all browsers.
     */
small {
  font-size: 80%;
}

/**
     * Prevent `sub` and `sup` elements from affecting the line height in
     * all browsers.
     */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
audio,
video {
  display: inline-block;
}

/**
     * Add the correct display in iOS 4-7.
     */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
     * Remove the border on images inside links in IE 10-.
     */
img {
  border-style: none;
}

/**
     * Hide the overflow in IE.
     */
svg:not(:root) {
  overflow: hidden;
}

/* Forms
       ========================================================================== */
/**
     * 1. Change the font styles in all browsers (opinionated).
     * 2. Remove the margin in Firefox and Safari.
     */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
     * Show the overflow in IE.
     */
button {
  overflow: visible;
}

/**
     * Remove the inheritance of text transform in Edge, Firefox, and IE.
     * 1. Remove the inheritance of text transform in Firefox.
     */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
     * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
     *    controls in Android 4.
     * 2. Correct the inability to style clickable types in iOS and Safari.
     */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
  /**
       * Remove the inner border and padding in Firefox.
       */
  /**
       * Restore the focus styles unset by the previous rule.
       */
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
     * Show the overflow in Edge.
     */
input {
  overflow: visible;
}

/**
     * 1. Add the correct box sizing in IE 10-.
     * 2. Remove the padding in IE 10-.
     */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
     * Correct the cursor style of increment and decrement buttons in Chrome.
     */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
     * 1. Correct the odd appearance in Chrome and Safari.
     * 2. Correct the outline style in Safari.
     */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
  /**
       * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
       */
}

[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
     * 1. Correct the inability to style clickable types in iOS and Safari.
     * 2. Change font properties to `inherit` in Safari.
     */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/**
     * Change the border, margin, and padding in all browsers (opinionated).
     */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
     * 1. Correct the text wrapping in Edge and IE.
     * 2. Correct the color inheritance from `fieldset` elements in IE.
     * 3. Remove the padding so developers are not caught out when they zero out
     *    `fieldset` elements in all browsers.
     */
legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  color: inherit;
  /* 2 */
  white-space: normal;
  /* 1 */
}

/**
     * 1. Add the correct display in IE 9-.
     * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
     */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
     * Remove the default vertical scrollbar in IE.
     */
textarea {
  overflow: auto;
}

/* Interactive
       ========================================================================== */
/*
     * Add the correct display in Edge, IE, and Firefox.
     */
details {
  display: block;
}

/*
     * Add the correct display in all browsers.
     */
summary {
  display: list-item;
}

/*
     * Add the correct display in IE 9-.
     */
menu {
  display: block;
}

/* Scripting
       ========================================================================== */
/**
     * Add the correct display in IE 9-.
     */
canvas {
  display: inline-block;
}

/**
     * Add the correct display in IE.
     */
template {
  display: none;
}

/* Hidden
       ========================================================================== */
/**
     * Add the correct display in IE 10-.
     */
[hidden] {
  display: none;
}

.foundation-mq {
  font-family: "small=0em&xsmall=30em&medium=40em&large=64em&xlarge=75em&xxlarge=100em";
}

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%;
}

*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

body {
  margin: 0;
  padding: 0;
  background: #e9e7e8;
  font-family: "Lato", sans-serif;
  font-weight: 400;
  line-height: 1.5;
  color: #000000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
}

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0;
}

select {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  border-radius: 0;
}

.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important;
}

button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
}

[data-whatinput='mouse'] button {
  outline: 0;
}

pre {
  overflow: auto;
}

.is-visible {
  display: block !important;
}

.is-hidden {
  display: none !important;
}

.hide {
  display: none !important;
}

.invisible {
  visibility: hidden;
}

@media screen and (max-width: 29.9375em) {
  .hide-for-small-only {
    display: none !important;
  }
}

@media screen and (max-width: 0em), screen and (min-width: 30em) {
  .show-for-small-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 30em) {
  .hide-for-xsmall {
    display: none !important;
  }
}

@media screen and (max-width: 29.9375em) {
  .show-for-xsmall {
    display: none !important;
  }
}

@media screen and (min-width: 30em) and (max-width: 39.9375em) {
  .hide-for-xsmall-only {
    display: none !important;
  }
}

@media screen and (max-width: 29.9375em), screen and (min-width: 40em) {
  .show-for-xsmall-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important;
  }
}

@media screen and (max-width: 39.9375em) {
  .show-for-medium {
    display: none !important;
  }
}

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .hide-for-medium-only {
    display: none !important;
  }
}

@media screen and (max-width: 39.9375em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important;
  }
}

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important;
  }
}

@media screen and (max-width: 63.9375em) {
  .show-for-large {
    display: none !important;
  }
}

@media screen and (min-width: 64em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important;
  }
}

@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important;
  }
}

@media screen and (min-width: 75em) {
  .hide-for-xlarge {
    display: none !important;
  }
}

@media screen and (max-width: 74.9375em) {
  .show-for-xlarge {
    display: none !important;
  }
}

@media screen and (min-width: 75em) and (max-width: 99.9375em) {
  .hide-for-xlarge-only {
    display: none !important;
  }
}

@media screen and (max-width: 74.9375em), screen and (min-width: 100em) {
  .show-for-xlarge-only {
    display: none !important;
  }
}

@media screen and (min-width: 100em) {
  .hide-for-xxlarge {
    display: none !important;
  }
}

@media screen and (max-width: 99.9375em) {
  .show-for-xxlarge {
    display: none !important;
  }
}

@media screen and (min-width: 100em) {
  .hide-for-xxlarge-only {
    display: none !important;
  }
}

@media screen and (max-width: 99.9375em) {
  .show-for-xxlarge-only {
    display: none !important;
  }
}

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
}

.show-for-landscape,
.hide-for-portrait {
  display: block !important;
}

@media screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: block !important;
  }
}

@media screen and (orientation: portrait) {
  .show-for-landscape,
  .hide-for-portrait {
    display: none !important;
  }
}

.hide-for-landscape,
.show-for-portrait {
  display: none !important;
}

@media screen and (orientation: landscape) {
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important;
  }
}

@media screen and (orientation: portrait) {
  .hide-for-landscape,
  .show-for-portrait {
    display: block !important;
  }
}

.float-left {
  float: left !important;
}

.float-right {
  float: right !important;
}

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto;
}

.clearfix::before, .clearfix::after {
  display: table;
  content: ' ';
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.clearfix::after {
  clear: both;
}

.align-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.align-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.align-justify {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.align-spaced {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.align-top {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.align-self-top {
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.align-bottom {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

.align-self-bottom {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.align-middle {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.align-self-middle {
  -ms-flex-item-align: center;
      align-self: center;
}

.align-stretch {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.align-self-stretch {
  -ms-flex-item-align: stretch;
      align-self: stretch;
}

.small-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.small-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.small-order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.small-order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

.small-order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
}

.small-order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6;
}

@media print, screen and (min-width: 30em) {
  .xsmall-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .xsmall-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .xsmall-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .xsmall-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .xsmall-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .xsmall-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media print, screen and (min-width: 64em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .xlarge-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .xlarge-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .xlarge-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .xlarge-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .xlarge-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

@media screen and (min-width: 100em) {
  .xxlarge-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .xxlarge-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .xxlarge-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .xxlarge-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .xxlarge-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .xxlarge-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
}

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.row .row {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

@media print, screen and (min-width: 30em) {
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem;
  }
}

@media print, screen and (min-width: 40em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

@media screen and (min-width: 75em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

@media screen and (min-width: 100em) {
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem;
  }
}

.row .row.collapse {
  margin-right: 0;
  margin-left: 0;
}

.row.expanded {
  max-width: none;
}

.row:not(.expanded) .row {
  max-width: none;
}

.row.collapse > .column, .row.collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.row.is-collapse-child,
.row.collapse > .column > .row,
.row.collapse > .columns > .row {
  margin-right: 0;
  margin-left: 0;
}

.column, .columns {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: initial;
}

@media print, screen and (min-width: 40em) {
  .column, .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.column.row.row, .row.row.columns {
  float: none;
  display: block;
}

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
}

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

.flex-child-auto {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
}

.flex-child-grow {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
}

.flex-child-shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
}

.flex-dir-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.flex-dir-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.flex-dir-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.flex-dir-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

.small-1 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 8.33333%;
          flex: 0 0 8.33333%;
  max-width: 8.33333%;
}

.small-offset-0 {
  margin-left: 0%;
}

.small-2 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
  max-width: 16.66667%;
}

.small-offset-1 {
  margin-left: 8.33333%;
}

.small-3 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
}

.small-offset-2 {
  margin-left: 16.66667%;
}

.small-4 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%;
}

.small-offset-3 {
  margin-left: 25%;
}

.small-5 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 41.66667%;
          flex: 0 0 41.66667%;
  max-width: 41.66667%;
}

.small-offset-4 {
  margin-left: 33.33333%;
}

.small-6 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
}

.small-offset-5 {
  margin-left: 41.66667%;
}

.small-7 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 58.33333%;
          flex: 0 0 58.33333%;
  max-width: 58.33333%;
}

.small-offset-6 {
  margin-left: 50%;
}

.small-8 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 66.66667%;
          flex: 0 0 66.66667%;
  max-width: 66.66667%;
}

.small-offset-7 {
  margin-left: 58.33333%;
}

.small-9 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%;
}

.small-offset-8 {
  margin-left: 66.66667%;
}

.small-10 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 83.33333%;
          flex: 0 0 83.33333%;
  max-width: 83.33333%;
}

.small-offset-9 {
  margin-left: 75%;
}

.small-11 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 91.66667%;
          flex: 0 0 91.66667%;
  max-width: 91.66667%;
}

.small-offset-10 {
  margin-left: 83.33333%;
}

.small-12 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

.small-offset-11 {
  margin-left: 91.66667%;
}

.small-order-1 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.small-order-2 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.small-order-3 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.small-order-4 {
  -webkit-box-ordinal-group: 5;
      -ms-flex-order: 4;
          order: 4;
}

.small-order-5 {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
}

.small-order-6 {
  -webkit-box-ordinal-group: 7;
      -ms-flex-order: 6;
          order: 6;
}

.small-up-1 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-1 > .column, .small-up-1 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

.small-up-2 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-2 > .column, .small-up-2 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
}

.small-up-3 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-3 > .column, .small-up-3 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%;
}

.small-up-4 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-4 > .column, .small-up-4 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%;
}

.small-up-5 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-5 > .column, .small-up-5 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
  max-width: 20%;
}

.small-up-6 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-6 > .column, .small-up-6 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
  max-width: 16.66667%;
}

.small-up-7 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-7 > .column, .small-up-7 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 14.28571%;
          flex: 0 0 14.28571%;
  max-width: 14.28571%;
}

.small-up-8 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.small-up-8 > .column, .small-up-8 > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 12.5%;
          flex: 0 0 12.5%;
  max-width: 12.5%;
}

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0;
}

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
}

@media print, screen and (min-width: 30em) {
  .xsmall-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .xsmall-offset-0 {
    margin-left: 0%;
  }
  .xsmall-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .xsmall-offset-1 {
    margin-left: 8.33333%;
  }
  .xsmall-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xsmall-offset-2 {
    margin-left: 16.66667%;
  }
  .xsmall-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .xsmall-offset-3 {
    margin-left: 25%;
  }
  .xsmall-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .xsmall-offset-4 {
    margin-left: 33.33333%;
  }
  .xsmall-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xsmall-offset-5 {
    margin-left: 41.66667%;
  }
  .xsmall-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .xsmall-offset-6 {
    margin-left: 50%;
  }
  .xsmall-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .xsmall-offset-7 {
    margin-left: 58.33333%;
  }
  .xsmall-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .xsmall-offset-8 {
    margin-left: 66.66667%;
  }
  .xsmall-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .xsmall-offset-9 {
    margin-left: 75%;
  }
  .xsmall-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .xsmall-offset-10 {
    margin-left: 83.33333%;
  }
  .xsmall-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xsmall-offset-11 {
    margin-left: 91.66667%;
  }
  .xsmall-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .xsmall-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .xsmall-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .xsmall-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .xsmall-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .xsmall-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
  .xsmall-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xsmall-up-1 > .column, .xsmall-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xsmall-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xsmall-up-2 > .column, .xsmall-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xsmall-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xsmall-up-3 > .column, .xsmall-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .xsmall-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xsmall-up-4 > .column, .xsmall-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xsmall-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xsmall-up-5 > .column, .xsmall-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .xsmall-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xsmall-up-6 > .column, .xsmall-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .xsmall-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xsmall-up-7 > .column, .xsmall-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571%;
            flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .xsmall-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xsmall-up-8 > .column, .xsmall-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media print, screen and (min-width: 30em) and (min-width: 30em) {
  .xsmall-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 30em) {
  .xsmall-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .xsmall-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .xsmall-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .xsmall-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
  .xsmall-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .xsmall-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .xsmall-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
}

.row.xsmall-unstack > .column, .row.xsmall-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media print, screen and (min-width: 30em) {
  .row.xsmall-unstack > .column, .row.xsmall-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 30em) {
  .xsmall-collapse > .column, .xsmall-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .xsmall-uncollapse > .column, .xsmall-uncollapse > .columns {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .medium-offset-0 {
    margin-left: 0%;
  }
  .medium-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .medium-offset-1 {
    margin-left: 8.33333%;
  }
  .medium-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .medium-offset-2 {
    margin-left: 16.66667%;
  }
  .medium-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .medium-offset-3 {
    margin-left: 25%;
  }
  .medium-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .medium-offset-4 {
    margin-left: 33.33333%;
  }
  .medium-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .medium-offset-5 {
    margin-left: 41.66667%;
  }
  .medium-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .medium-offset-6 {
    margin-left: 50%;
  }
  .medium-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .medium-offset-7 {
    margin-left: 58.33333%;
  }
  .medium-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .medium-offset-8 {
    margin-left: 66.66667%;
  }
  .medium-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .medium-offset-9 {
    margin-left: 75%;
  }
  .medium-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .medium-offset-10 {
    margin-left: 83.33333%;
  }
  .medium-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .medium-offset-11 {
    margin-left: 91.66667%;
  }
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
  .medium-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-1 > .column, .medium-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .medium-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-2 > .column, .medium-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .medium-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-3 > .column, .medium-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .medium-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-4 > .column, .medium-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .medium-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-5 > .column, .medium-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .medium-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-6 > .column, .medium-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .medium-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-7 > .column, .medium-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571%;
            flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .medium-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .medium-up-8 > .column, .medium-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .medium-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .medium-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .medium-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
  .medium-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .medium-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .medium-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
}

.row.medium-unstack > .column, .row.medium-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media print, screen and (min-width: 40em) {
  .row.medium-unstack > .column, .row.medium-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .large-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .large-offset-0 {
    margin-left: 0%;
  }
  .large-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .large-offset-1 {
    margin-left: 8.33333%;
  }
  .large-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .large-offset-2 {
    margin-left: 16.66667%;
  }
  .large-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .large-offset-3 {
    margin-left: 25%;
  }
  .large-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .large-offset-4 {
    margin-left: 33.33333%;
  }
  .large-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .large-offset-5 {
    margin-left: 41.66667%;
  }
  .large-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .large-offset-6 {
    margin-left: 50%;
  }
  .large-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .large-offset-7 {
    margin-left: 58.33333%;
  }
  .large-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .large-offset-8 {
    margin-left: 66.66667%;
  }
  .large-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .large-offset-9 {
    margin-left: 75%;
  }
  .large-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .large-offset-10 {
    margin-left: 83.33333%;
  }
  .large-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .large-offset-11 {
    margin-left: 91.66667%;
  }
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
  .large-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-1 > .column, .large-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .large-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-2 > .column, .large-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .large-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-3 > .column, .large-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .large-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-4 > .column, .large-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .large-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-5 > .column, .large-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .large-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-6 > .column, .large-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .large-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-7 > .column, .large-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571%;
            flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .large-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .large-up-8 > .column, .large-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 64em) {
  .large-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .large-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .large-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .large-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
  .large-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .large-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .large-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
}

.row.large-unstack > .column, .row.large-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media print, screen and (min-width: 64em) {
  .row.large-unstack > .column, .row.large-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media print, screen and (min-width: 64em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .xlarge-offset-0 {
    margin-left: 0%;
  }
  .xlarge-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .xlarge-offset-1 {
    margin-left: 8.33333%;
  }
  .xlarge-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xlarge-offset-2 {
    margin-left: 16.66667%;
  }
  .xlarge-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .xlarge-offset-3 {
    margin-left: 25%;
  }
  .xlarge-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .xlarge-offset-4 {
    margin-left: 33.33333%;
  }
  .xlarge-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xlarge-offset-5 {
    margin-left: 41.66667%;
  }
  .xlarge-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .xlarge-offset-6 {
    margin-left: 50%;
  }
  .xlarge-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .xlarge-offset-7 {
    margin-left: 58.33333%;
  }
  .xlarge-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .xlarge-offset-8 {
    margin-left: 66.66667%;
  }
  .xlarge-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .xlarge-offset-9 {
    margin-left: 75%;
  }
  .xlarge-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .xlarge-offset-10 {
    margin-left: 83.33333%;
  }
  .xlarge-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xlarge-offset-11 {
    margin-left: 91.66667%;
  }
  .xlarge-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .xlarge-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .xlarge-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .xlarge-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .xlarge-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .xlarge-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
  .xlarge-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-1 > .column, .xlarge-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xlarge-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-2 > .column, .xlarge-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xlarge-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-3 > .column, .xlarge-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .xlarge-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-4 > .column, .xlarge-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xlarge-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-5 > .column, .xlarge-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .xlarge-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-6 > .column, .xlarge-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .xlarge-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-7 > .column, .xlarge-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571%;
            flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .xlarge-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xlarge-up-8 > .column, .xlarge-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media screen and (min-width: 75em) and (min-width: 75em) {
  .xlarge-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .xlarge-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .xlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .xlarge-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
  .xlarge-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .xlarge-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .xlarge-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
}

.row.xlarge-unstack > .column, .row.xlarge-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media screen and (min-width: 75em) {
  .row.xlarge-unstack > .column, .row.xlarge-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-collapse > .column, .xlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .xlarge-uncollapse > .column, .xlarge-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media screen and (min-width: 100em) {
  .xxlarge-1 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .xxlarge-offset-0 {
    margin-left: 0%;
  }
  .xxlarge-2 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .xxlarge-offset-1 {
    margin-left: 8.33333%;
  }
  .xxlarge-3 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xxlarge-offset-2 {
    margin-left: 16.66667%;
  }
  .xxlarge-4 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .xxlarge-offset-3 {
    margin-left: 25%;
  }
  .xxlarge-5 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .xxlarge-offset-4 {
    margin-left: 33.33333%;
  }
  .xxlarge-6 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xxlarge-offset-5 {
    margin-left: 41.66667%;
  }
  .xxlarge-7 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .xxlarge-offset-6 {
    margin-left: 50%;
  }
  .xxlarge-8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .xxlarge-offset-7 {
    margin-left: 58.33333%;
  }
  .xxlarge-9 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%;
  }
  .xxlarge-offset-8 {
    margin-left: 66.66667%;
  }
  .xxlarge-10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .xxlarge-offset-9 {
    margin-left: 75%;
  }
  .xxlarge-11 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .xxlarge-offset-10 {
    margin-left: 83.33333%;
  }
  .xxlarge-12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xxlarge-offset-11 {
    margin-left: 91.66667%;
  }
  .xxlarge-order-1 {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  .xxlarge-order-2 {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .xxlarge-order-3 {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
  .xxlarge-order-4 {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
  }
  .xxlarge-order-5 {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
  }
  .xxlarge-order-6 {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
  }
  .xxlarge-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-1 > .column, .xxlarge-up-1 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .xxlarge-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-2 > .column, .xxlarge-up-2 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
  }
  .xxlarge-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-3 > .column, .xxlarge-up-3 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .xxlarge-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-4 > .column, .xxlarge-up-4 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
  }
  .xxlarge-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-5 > .column, .xxlarge-up-5 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%;
  }
  .xxlarge-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-6 > .column, .xxlarge-up-6 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .xxlarge-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-7 > .column, .xxlarge-up-7 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 14.28571%;
            flex: 0 0 14.28571%;
    max-width: 14.28571%;
  }
  .xxlarge-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .xxlarge-up-8 > .column, .xxlarge-up-8 > .columns {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

@media screen and (min-width: 100em) and (min-width: 100em) {
  .xxlarge-expand {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media screen and (min-width: 100em) {
  .xxlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .xxlarge-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .xxlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .xxlarge-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
  .xxlarge-flex-child-auto {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
  }
  .xxlarge-flex-child-grow {
    -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .xxlarge-flex-child-shrink {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
}

.row.xxlarge-unstack > .column, .row.xxlarge-unstack > .columns {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}

@media screen and (min-width: 100em) {
  .row.xxlarge-unstack > .column, .row.xxlarge-unstack > .columns {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
}

@media screen and (min-width: 100em) {
  .xxlarge-collapse > .column, .xxlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0;
  }
  .xxlarge-uncollapse > .column, .xxlarge-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.shrink {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  max-width: 100%;
}

.column-block {
  margin-bottom: 1.25rem;
}

.column-block > :last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .column-block {
    margin-bottom: 1.875rem;
  }
  .column-block > :last-child {
    margin-bottom: 0;
  }
}

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

em,
i {
  font-style: italic;
  line-height: inherit;
}

strong,
b {
  font-weight: 700;
  line-height: inherit;
}

small {
  font-size: 80%;
  line-height: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Lato", sans-serif;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
}

h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
  line-height: 0;
  color: #cacaca;
}

h1 {
  font-size: 1.75rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h2 {
  font-size: 1.125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h3 {
  font-size: 0.875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h4 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h5 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

h6 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem;
}

@media print, screen and (min-width: 40em) {
  h1 {
    font-size: 2rem;
  }
  h2 {
    font-size: 1.375rem;
  }
  h3 {
    font-size: 0.875rem;
  }
  h4 {
    font-size: 1rem;
  }
  h5 {
    font-size: 1rem;
  }
  h6 {
    font-size: 1rem;
  }
}

a {
  line-height: inherit;
  color: #000000;
  text-decoration: none;
  cursor: pointer;
}

a:hover, a:focus {
  color: black;
}

a img {
  border: 0;
}

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0;
}

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6;
}

li {
  font-size: inherit;
}

ul {
  margin-left: 1.25rem;
  list-style-type: disc;
}

ol {
  margin-left: 1.25rem;
}

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0;
}

dl {
  margin-bottom: 1rem;
}

dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold;
}

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca;
}

blockquote, blockquote p {
  line-height: 1.6;
  color: #1a1a1a;
}

cite {
  display: block;
  font-size: 0.8125rem;
  color: #1a1a1a;
}

cite:before {
  content: "— ";
}

abbr {
  border-bottom: 1px dotted #000000;
  color: #000000;
  cursor: help;
}

figure {
  margin: 0;
}

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #cacaca;
  background-color: #e4e4e4;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #000000;
}

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e4e4e4;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #000000;
}

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #1a1a1a;
}

.lead {
  font-size: 125%;
  line-height: 1.6;
}

.stat {
  font-size: 2.5rem;
  line-height: 1;
}

p + .stat {
  margin-top: -1rem;
}

.no-bullet {
  margin-left: 0;
  list-style: none;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

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

.text-justify {
  text-align: justify;
}

@media print, screen and (min-width: 30em) {
  .xsmall-text-left {
    text-align: left;
  }
  .xsmall-text-right {
    text-align: right;
  }
  .xsmall-text-center {
    text-align: center;
  }
  .xsmall-text-justify {
    text-align: justify;
  }
}

@media print, screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left;
  }
  .medium-text-right {
    text-align: right;
  }
  .medium-text-center {
    text-align: center;
  }
  .medium-text-justify {
    text-align: justify;
  }
}

@media print, screen and (min-width: 64em) {
  .large-text-left {
    text-align: left;
  }
  .large-text-right {
    text-align: right;
  }
  .large-text-center {
    text-align: center;
  }
  .large-text-justify {
    text-align: justify;
  }
}

@media screen and (min-width: 75em) {
  .xlarge-text-left {
    text-align: left;
  }
  .xlarge-text-right {
    text-align: right;
  }
  .xlarge-text-center {
    text-align: center;
  }
  .xlarge-text-justify {
    text-align: justify;
  }
}

@media screen and (min-width: 100em) {
  .xxlarge-text-left {
    text-align: left;
  }
  .xxlarge-text-right {
    text-align: right;
  }
  .xxlarge-text-center {
    text-align: center;
  }
  .xxlarge-text-justify {
    text-align: justify;
  }
}

.show-for-print {
  display: none !important;
}

@media print {
  * {
    background: transparent !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    color: black !important;
    text-shadow: none !important;
  }
  .show-for-print {
    display: block !important;
  }
  .hide-for-print {
    display: none !important;
  }
  table.show-for-print {
    display: table !important;
  }
  thead.show-for-print {
    display: table-header-group !important;
  }
  tbody.show-for-print {
    display: table-row-group !important;
  }
  tr.show-for-print {
    display: table-row !important;
  }
  td.show-for-print {
    display: table-cell !important;
  }
  th.show-for-print {
    display: table-cell !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: '';
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  pre,
  blockquote {
    border: 1px solid #1a1a1a;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  color: #000000;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

[type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
textarea:focus {
  outline: none;
  border: 1px solid #1a1a1a;
  background-color: #fefefe;
  -webkit-box-shadow: 0 0 5px #cacaca;
          box-shadow: 0 0 5px #cacaca;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
}

textarea {
  max-width: 100%;
}

textarea[rows] {
  height: auto;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #cacaca;
}

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cacaca;
}

input::placeholder,
textarea::placeholder {
  color: #cacaca;
}

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e4e4e4;
  cursor: not-allowed;
}

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0;
}

input[type='search'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem;
}

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
}

[type='checkbox'] + label[for],
[type='radio'] + label[for] {
  cursor: pointer;
}

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem;
}

[type='file'] {
  width: 100%;
}

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #000000;
}

label.middle {
  margin: 0 0 1rem;
  padding: 0.5625rem 0;
}

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #000000;
}

.input-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.input-group > :first-child {
  border-radius: 0 0 0 0;
}

.input-group > :last-child > * {
  border-radius: 0 0 0 0;
}

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap;
}

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #cacaca;
  background: #e4e4e4;
  color: #000000;
  text-align: center;
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.input-group-label:first-child {
  border-right: 0;
}

.input-group-label:last-child {
  border-left: 0;
}

.input-group-field {
  border-radius: 0;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  height: auto;
  min-width: 0;
}

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  height: 2.5rem;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 1rem;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  max-width: 100%;
  margin-bottom: 0.5rem;
}

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #cacaca;
}

.fieldset legend {
  margin: 0;
  margin-left: -0.1875rem;
  padding: 0 0.1875rem;
  background: #e9e7e8;
}

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  font-family: inherit;
  font-size: 1rem;
  line-height: normal;
  color: #000000;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%2826, 26, 26%29'></polygon></svg>");
  background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1.5rem;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
}

@media screen and (min-width: 0\0) {
  select {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==");
  }
}

select:focus {
  outline: none;
  border: 1px solid #1a1a1a;
  background-color: #fefefe;
  -webkit-box-shadow: 0 0 5px #cacaca;
          box-shadow: 0 0 5px #cacaca;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
}

select:disabled {
  background-color: #e4e4e4;
  cursor: not-allowed;
}

select::-ms-expand {
  display: none;
}

select[multiple] {
  height: auto;
  background-image: none;
}

.is-invalid-input:not(:focus) {
  border-color: #ec5840;
  background-color: #fcedeb;
}

.is-invalid-input:not(:focus)::-webkit-input-placeholder {
  color: #ec5840;
}

.is-invalid-input:not(:focus):-ms-input-placeholder {
  color: #ec5840;
}

.is-invalid-input:not(:focus)::placeholder {
  color: #ec5840;
}

.is-invalid-label {
  color: #ec5840;
}

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #ec5840;
}

.form-error.is-visible {
  display: block;
}

.button {
  display: inline-block;
  vertical-align: middle;
  margin: 0 0 1rem 0;
  padding: 0.85em 1em;
  -webkit-appearance: none;
  border: 1px solid transparent;
  border-radius: 0;
  -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  font-size: 0.9rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  background-color: #000000;
  color: #fefefe;
}

[data-whatinput='mouse'] .button {
  outline: 0;
}

.button:hover, .button:focus {
  background-color: black;
  color: #fefefe;
}

.button.tiny {
  font-size: 0.6rem;
}

.button.small {
  font-size: 0.75rem;
}

.button.large {
  font-size: 1.25rem;
}

.button.expanded {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.button.primary {
  background-color: #000000;
  color: #fefefe;
}

.button.primary:hover, .button.primary:focus {
  background-color: black;
  color: #fefefe;
}

.button.secondary {
  background-color: #1a1a1a;
  color: #fefefe;
}

.button.secondary:hover, .button.secondary:focus {
  background-color: #151515;
  color: #fefefe;
}

.button.success {
  background-color: #3adb76;
  color: #000000;
}

.button.success:hover, .button.success:focus {
  background-color: #22bb5b;
  color: #000000;
}

.button.warning {
  background-color: #ffae00;
  color: #000000;
}

.button.warning:hover, .button.warning:focus {
  background-color: #cc8b00;
  color: #000000;
}

.button.alert {
  background-color: #ec5840;
  color: #000000;
}

.button.alert:hover, .button.alert:focus {
  background-color: #da3116;
  color: #000000;
}

.button.hollow {
  border: 1px solid #000000;
  color: #000000;
}

.button.hollow, .button.hollow:hover, .button.hollow:focus {
  background-color: transparent;
}

.button.hollow:hover, .button.hollow:focus {
  border-color: black;
  color: black;
}

.button.hollow.primary {
  border: 1px solid #000000;
  color: #000000;
}

.button.hollow.primary:hover, .button.hollow.primary:focus {
  border-color: black;
  color: black;
}

.button.hollow.secondary {
  border: 1px solid #1a1a1a;
  color: #1a1a1a;
}

.button.hollow.secondary:hover, .button.hollow.secondary:focus {
  border-color: #0d0d0d;
  color: #0d0d0d;
}

.button.hollow.success {
  border: 1px solid #3adb76;
  color: #3adb76;
}

.button.hollow.success:hover, .button.hollow.success:focus {
  border-color: #157539;
  color: #157539;
}

.button.hollow.warning {
  border: 1px solid #ffae00;
  color: #ffae00;
}

.button.hollow.warning:hover, .button.hollow.warning:focus {
  border-color: #805700;
  color: #805700;
}

.button.hollow.alert {
  border: 1px solid #ec5840;
  color: #ec5840;
}

.button.hollow.alert:hover, .button.hollow.alert:focus {
  border-color: #881f0e;
  color: #881f0e;
}

.button.disabled, .button[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled, .button.disabled:hover, .button.disabled:focus, .button[disabled], .button[disabled]:hover, .button[disabled]:focus {
  background-color: #000000;
  color: #fefefe;
}

.button.disabled.primary, .button[disabled].primary {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.primary, .button.disabled.primary:hover, .button.disabled.primary:focus, .button[disabled].primary, .button[disabled].primary:hover, .button[disabled].primary:focus {
  background-color: #000000;
  color: #fefefe;
}

.button.disabled.secondary, .button[disabled].secondary {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.secondary, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
  background-color: #1a1a1a;
  color: #fefefe;
}

.button.disabled.success, .button[disabled].success {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.success, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success, .button[disabled].success:hover, .button[disabled].success:focus {
  background-color: #3adb76;
  color: #000000;
}

.button.disabled.warning, .button[disabled].warning {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.warning, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning, .button[disabled].warning:hover, .button[disabled].warning:focus {
  background-color: #ffae00;
  color: #000000;
}

.button.disabled.alert, .button[disabled].alert {
  opacity: 0.25;
  cursor: not-allowed;
}

.button.disabled.alert, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert, .button[disabled].alert:hover, .button[disabled].alert:focus {
  background-color: #ec5840;
  color: #000000;
}

.button.dropdown::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 0.4em;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #fefefe transparent transparent;
  position: relative;
  top: 0.4em;
  display: inline-block;
  float: right;
  margin-left: 1em;
}

.button.arrow-only::after {
  top: -0.1em;
  float: none;
  margin-left: 0;
}

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(0, 0, 0, 0.25);
  border-radius: 0;
  background-color: white;
  color: #000000;
}

.callout > :first-child {
  margin-top: 0;
}

.callout > :last-child {
  margin-bottom: 0;
}

.callout.primary {
  background-color: #d9d9d9;
  color: #000000;
}

.callout.secondary {
  background-color: #dddddd;
  color: #000000;
}

.callout.success {
  background-color: #e1faea;
  color: #000000;
}

.callout.warning {
  background-color: #fff3d9;
  color: #000000;
}

.callout.alert {
  background-color: #fce6e2;
  color: #000000;
}

.callout.small {
  padding-top: 0.5rem;
  padding-right: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.5rem;
}

.callout.large {
  padding-top: 3rem;
  padding-right: 3rem;
  padding-bottom: 3rem;
  padding-left: 3rem;
}

.close-button {
  position: absolute;
  color: #1a1a1a;
  cursor: pointer;
}

[data-whatinput='mouse'] .close-button {
  outline: 0;
}

.close-button:hover, .close-button:focus {
  color: #000000;
}

.close-button.small {
  right: 0.66rem;
  top: 0.33em;
  font-size: 1.5em;
  line-height: 1;
}

.close-button, .close-button.medium {
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
}

.menu {
  margin: 0;
  list-style-type: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
}

.menu > li {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

[data-whatinput='mouse'] .menu > li {
  outline: 0;
}

.menu > li > a {
  display: block;
  padding: 0.7rem 1rem;
  line-height: 1;
}

.menu input,
.menu select,
.menu a,
.menu button {
  margin-bottom: 0;
}

.menu > li > a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.menu > li > a {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
}

.menu > li > a img,
.menu > li > a i,
.menu > li > a svg {
  margin-right: 0.25rem;
}

.menu, .menu.horizontal {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.menu > li, .menu.horizontal > li {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.menu.expanded > li {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
}

.menu.expanded > li:first-child:last-child {
  width: 100%;
}

.menu.vertical {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.menu.vertical > li {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
}

.menu.vertical > li > a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

@media print, screen and (min-width: 30em) {
  .menu.xsmall-horizontal {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .menu.xsmall-horizontal > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .menu.xsmall-expanded > li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
  .menu.xsmall-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.xsmall-vertical {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .menu.xsmall-vertical > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.xsmall-vertical > li > a {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

@media print, screen and (min-width: 40em) {
  .menu.medium-horizontal {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .menu.medium-horizontal > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .menu.medium-expanded > li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
  .menu.medium-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.medium-vertical {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .menu.medium-vertical > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.medium-vertical > li > a {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

@media print, screen and (min-width: 64em) {
  .menu.large-horizontal {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .menu.large-horizontal > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .menu.large-expanded > li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
  .menu.large-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.large-vertical {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .menu.large-vertical > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.large-vertical > li > a {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

@media screen and (min-width: 75em) {
  .menu.xlarge-horizontal {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .menu.xlarge-horizontal > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .menu.xlarge-expanded > li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
  .menu.xlarge-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.xlarge-vertical {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .menu.xlarge-vertical > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.xlarge-vertical > li > a {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

@media screen and (min-width: 100em) {
  .menu.xxlarge-horizontal {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .menu.xxlarge-horizontal > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .menu.xxlarge-expanded > li {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
  }
  .menu.xxlarge-expanded > li:first-child:last-child {
    width: 100%;
  }
  .menu.xxlarge-vertical {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .menu.xxlarge-vertical > li {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
  }
  .menu.xxlarge-vertical > li > a {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

.menu.simple li {
  display: inline-block;
  vertical-align: top;
  line-height: 1;
}

.menu.simple a {
  padding: 0;
}

.menu.simple li {
  margin-left: 0;
  margin-right: 1rem;
}

.menu.simple.align-right li {
  margin-right: 0;
  margin-left: 1rem;
}

.menu.align-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.menu.icon-top > li > a {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
}

.menu.icon-top > li > a img,
.menu.icon-top > li > a i,
.menu.icon-top > li > a svg {
  -ms-flex-item-align: stretch;
      align-self: stretch;
  margin-bottom: 0.25rem;
  text-align: center;
}

.menu.icon-top.vertical a > span {
  margin: auto;
}

.menu.nested {
  margin-left: 1rem;
}

.menu .active > a {
  background: #000000;
  color: #fefefe;
}

.menu.menu-bordered li {
  border: 1px solid #e4e4e4;
}

.menu.menu-bordered li:not(:first-child) {
  border-top: 0;
}

.menu.menu-hover li:hover {
  background-color: #e4e4e4;
}

.menu-text {
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem;
  font-weight: bold;
  line-height: 1;
  color: inherit;
}

.menu-centered {
  text-align: center;
}

.menu-centered > .menu {
  display: inline-block;
  vertical-align: top;
}

.no-js [data-responsive-menu] ul {
  display: none;
}

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #fefefe;
  -webkit-box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
          box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
  content: '';
}

.menu-icon:hover::after {
  background: #cacaca;
  -webkit-box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
          box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
}

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer;
}

.menu-icon.dark::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background: #000000;
  -webkit-box-shadow: 0 7px 0 #000000, 0 14px 0 #000000;
          box-shadow: 0 7px 0 #000000, 0 14px 0 #000000;
  content: '';
}

.menu-icon.dark:hover::after {
  background: #1a1a1a;
  -webkit-box-shadow: 0 7px 0 #1a1a1a, 0 14px 0 #1a1a1a;
          box-shadow: 0 7px 0 #1a1a1a, 0 14px 0 #1a1a1a;
}

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto;
}

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem;
}

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #000000 transparent transparent;
  right: 5px;
  margin-top: -3px;
}

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0;
}

.no-js .dropdown.menu ul {
  display: none;
}

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0;
}

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.dropdown.menu.vertical > li > a::after {
  right: 14px;
}

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #000000 transparent transparent;
}

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #000000;
}

@media print, screen and (min-width: 30em) {
  .dropdown.menu.xsmall-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.xsmall-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.xsmall-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.xsmall-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #000000 transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.xsmall-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.xsmall-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.xsmall-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.xsmall-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.xsmall-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #000000 transparent transparent;
  }
  .dropdown.menu.xsmall-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #000000;
  }
}

@media print, screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #000000 transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #000000 transparent transparent;
  }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #000000;
  }
}

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #000000 transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #000000 transparent transparent;
  }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #000000;
  }
}

@media screen and (min-width: 75em) {
  .dropdown.menu.xlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.xlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.xlarge-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.xlarge-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #000000 transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.xlarge-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.xlarge-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.xlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.xlarge-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.xlarge-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #000000 transparent transparent;
  }
  .dropdown.menu.xlarge-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #000000;
  }
}

@media screen and (min-width: 100em) {
  .dropdown.menu.xxlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto;
  }
  .dropdown.menu.xxlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0;
  }
  .dropdown.menu.xxlarge-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem;
  }
  .dropdown.menu.xxlarge-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #000000 transparent transparent;
    right: 5px;
    margin-top: -3px;
  }
  .dropdown.menu.xxlarge-vertical > li .is-dropdown-submenu {
    top: 0;
  }
  .dropdown.menu.xxlarge-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto;
  }
  .dropdown.menu.xxlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%;
  }
  .dropdown.menu.xxlarge-vertical > li > a::after {
    right: 14px;
  }
  .dropdown.menu.xxlarge-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #000000 transparent transparent;
  }
  .dropdown.menu.xxlarge-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #000000;
  }
}

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto;
}

.is-dropdown-menu.vertical {
  width: 100px;
}

.is-dropdown-menu.vertical.align-right {
  float: right;
}

.is-dropdown-submenu-parent {
  position: relative;
}

.is-dropdown-submenu-parent a::after {
  position: absolute;
  top: 50%;
  right: 5px;
  margin-top: -6px;
}

.is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
  top: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
  right: 100%;
  left: auto;
}

.is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%;
}

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe;
}

.is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
  right: 14px;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #000000 transparent transparent;
}

.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #000000;
}

.is-dropdown-submenu .is-dropdown-submenu {
  margin-top: -1px;
}

.is-dropdown-submenu > li {
  width: 100%;
}

.is-dropdown-submenu.js-dropdown-active {
  display: block;
}

.orbit {
  position: relative;
}

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden;
}

.orbit-slide {
  width: 100%;
}

.orbit-slide.no-motionui.is-active {
  top: 0;
  left: 0;
}

.orbit-figure {
  margin: 0;
}

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(0, 0, 0, 0.5);
  color: #fefefe;
}

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe;
}

[data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
  outline: 0;
}

.orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
  background-color: rgba(0, 0, 0, 0.5);
}

.orbit-previous {
  left: 0;
}

.orbit-next {
  left: auto;
  right: 0;
}

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center;
}

[data-whatinput='mouse'] .orbit-bullets {
  outline: 0;
}

.orbit-bullets button {
  width: 0.75rem;
  height: 0.75rem;
  margin: 0.1rem;
  border-radius: 50%;
  background-color: #cacaca;
}

.orbit-bullets button:hover {
  background-color: #1a1a1a;
}

.orbit-bullets button.is-active {
  background-color: #1a1a1a;
}

body.is-reveal-open {
  overflow: hidden;
}

html.is-reveal-open,
html.is-reveal-open body {
  min-height: 100%;
  overflow: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.reveal-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1005;
  display: none;
  background-color: rgba(0, 0, 0, 0.45);
  overflow-y: scroll;
}

.reveal {
  z-index: 1006;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: none;
  padding: 1rem;
  border: 1px solid #cacaca;
  border-radius: 0;
  background-color: #fefefe;
  position: relative;
  top: 100px;
  margin-right: auto;
  margin-left: auto;
  overflow-y: auto;
}

[data-whatinput='mouse'] .reveal {
  outline: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal {
    min-height: 0;
  }
}

.reveal .column, .reveal .columns,
.reveal .columns {
  min-width: 0;
}

.reveal > :last-child {
  margin-bottom: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal {
    width: 600px;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal .reveal {
    right: auto;
    left: auto;
    margin: 0 auto;
  }
}

.reveal.collapse {
  padding: 0;
}

@media print, screen and (min-width: 40em) {
  .reveal.tiny {
    width: 30%;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal.small {
    width: 50%;
    max-width: 75rem;
  }
}

@media print, screen and (min-width: 40em) {
  .reveal.large {
    width: 90%;
    max-width: 75rem;
  }
}

.reveal.full {
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  height: 100vh;
  min-height: 100vh;
  margin-left: 0;
  border: 0;
  border-radius: 0;
}

@media screen and (max-width: 29.9375em) {
  .reveal {
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    margin-left: 0;
    border: 0;
    border-radius: 0;
  }
}

.reveal.without-overlay {
  position: fixed;
}

.slide-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-in-down.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}

.slide-in-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-in-left.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
}

.slide-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-in-up.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}

.slide-in-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-in-right.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
}

.slide-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-out-down.mui-leave.mui-leave-active {
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%);
}

.slide-out-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-out-right.mui-leave.mui-leave-active {
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
}

.slide-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-out-up.mui-leave.mui-leave-active {
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%);
}

.slide-out-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.slide-out-left.mui-leave.mui-leave-active {
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%);
}

.fade-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 0;
  -webkit-transition-property: opacity;
  transition-property: opacity;
}

.fade-in.mui-enter.mui-enter-active {
  opacity: 1;
}

.fade-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 1;
  -webkit-transition-property: opacity;
  transition-property: opacity;
}

.fade-out.mui-leave.mui-leave-active {
  opacity: 0;
}

.hinge-in-from-top.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-top.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-right.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-bottom.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-left.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-middle-x.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-in-from-middle-y.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1;
}

.hinge-out-from-top.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-top.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0;
}

.hinge-out-from-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-right.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0;
}

.hinge-out-from-bottom.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  opacity: 0;
}

.hinge-out-from-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-left.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  opacity: 0;
}

.hinge-out-from-middle-x.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0;
}

.hinge-out-from-middle-y.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0;
}

.scale-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.scale-in-up.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1;
}

.scale-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.scale-in-down.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1;
}

.scale-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.scale-out-up.mui-leave.mui-leave-active {
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  opacity: 0;
}

.scale-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.scale-out-down.mui-leave.mui-leave-active {
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  opacity: 0;
}

.spin-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.spin-in.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1;
}

.spin-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.spin-out.mui-leave.mui-leave-active {
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  opacity: 0;
}

.spin-in-ccw.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0;
}

.spin-in-ccw.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1;
}

.spin-out-ccw.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1;
}

.spin-out-ccw.mui-leave.mui-leave-active {
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  opacity: 0;
}

.slow {
  -webkit-transition-duration: 750ms !important;
          transition-duration: 750ms !important;
}

.fast {
  -webkit-transition-duration: 250ms !important;
          transition-duration: 250ms !important;
}

.linear {
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important;
}

.ease {
  -webkit-transition-timing-function: ease !important;
          transition-timing-function: ease !important;
}

.ease-in {
  -webkit-transition-timing-function: ease-in !important;
          transition-timing-function: ease-in !important;
}

.ease-out {
  -webkit-transition-timing-function: ease-out !important;
          transition-timing-function: ease-out !important;
}

.ease-in-out {
  -webkit-transition-timing-function: ease-in-out !important;
          transition-timing-function: ease-in-out !important;
}

.bounce-in {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
}

.bounce-out {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
}

.bounce-in-out {
  -webkit-transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
}

.short-delay {
  -webkit-transition-delay: 300ms !important;
          transition-delay: 300ms !important;
}

.long-delay {
  -webkit-transition-delay: 700ms !important;
          transition-delay: 700ms !important;
}

.shake {
  -webkit-animation-name: shake-7;
          animation-name: shake-7;
}

@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%);
  }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%);
  }
}

@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%);
  }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%);
  }
}

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn;
}

@-webkit-keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn);
  }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn);
  }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}

.spin-ccw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn;
}

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(1turn);
            transform: rotate(1turn);
  }
}

.wiggle {
  -webkit-animation-name: wiggle-7deg;
          animation-name: wiggle-7deg;
}

@-webkit-keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg);
  }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg);
  }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}

@keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg);
  }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg);
  }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
}

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  -webkit-animation-duration: 500ms;
          animation-duration: 500ms;
}

.infinite {
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

.slow {
  -webkit-animation-duration: 750ms !important;
          animation-duration: 750ms !important;
}

.fast {
  -webkit-animation-duration: 250ms !important;
          animation-duration: 250ms !important;
}

.linear {
  -webkit-animation-timing-function: linear !important;
          animation-timing-function: linear !important;
}

.ease {
  -webkit-animation-timing-function: ease !important;
          animation-timing-function: ease !important;
}

.ease-in {
  -webkit-animation-timing-function: ease-in !important;
          animation-timing-function: ease-in !important;
}

.ease-out {
  -webkit-animation-timing-function: ease-out !important;
          animation-timing-function: ease-out !important;
}

.ease-in-out {
  -webkit-animation-timing-function: ease-in-out !important;
          animation-timing-function: ease-in-out !important;
}

.bounce-in {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
}

.bounce-out {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
}

.bounce-in-out {
  -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
}

.short-delay {
  -webkit-animation-delay: 300ms !important;
          animation-delay: 300ms !important;
}

.long-delay {
  -webkit-animation-delay: 700ms !important;
          animation-delay: 700ms !important;
}

/* ===================================================================================================================
   Page Layout
   ================================================================================================================ */
html {
  height: 100%;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}

body {
  height: 100%;
  font-size: 0.875rem;
}

body.overflow-hidden {
  overflow: hidden;
}

.page_wrapper {
  height: 100%;
}

.page_column-wrapper {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

.page_layout-0-1-0 .page_column-1 {
  width: 100%;
  height: 100%;
}

@media print, screen and (min-width: 64em) {
  .page_layout-3-1-0 .page_column-1 {
    float: right;
    width: 75%;
  }
  .page_layout-3-1-0 .page_column-3 {
    margin: 0 75% 0 0;
  }
  .page_layout-3-1-0 .page_content {
    margin-left: 1.25rem;
  }
  .page_layout-3-1-0 .page_sidebar {
    margin-right: 1.25rem;
  }
}

@media print, screen and (min-width: 64em) {
  .page_layout-1-3-0 .page_column-1 {
    float: left;
    width: 25%;
  }
  .page_layout-1-3-0 .page_column-3 {
    margin: 0 0 0 25%;
  }
  .page_layout-1-3-0 .page_content {
    margin-left: 1.25rem;
  }
  .page_layout-1-3-0 .page_sidebar {
    margin-right: 1.25rem;
  }
}

/* ===================================================================================================================
   Grid - Foundation
   ================================================================================================================ */
.expanded .row {
  margin-left: auto;
  margin-right: auto;
  max-width: 75rem;
}

.bg-color-lightgrey {
  border-left: 0.69444rem solid #e4e4e4;
  border-right: 0.69444rem solid #e4e4e4;
  padding: 1.5rem;
  padding-top: 2rem;
  background-color: #e4e4e4;
}

@media print, screen and (min-width: 40em) {
  .bg-color-lightgrey {
    border-left: 1.04167rem solid #e4e4e4;
    border-right: 1.04167rem solid #e4e4e4;
  }
}

.bg-color-primary {
  border-left: 0.69444rem solid #e4e4e4;
  border-right: 0.69444rem solid #e4e4e4;
  padding: 1.5rem;
  padding-top: 2rem;
  background-color: #000000;
}

@media print, screen and (min-width: 40em) {
  .bg-color-primary {
    border-left: 1.04167rem solid #e4e4e4;
    border-right: 1.04167rem solid #e4e4e4;
  }
}

.row-one-column > * {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .row-one-column > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.row-two-columns > * {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .row-two-columns > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row-two-columns > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  .row-two-columns > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.row-three-columns > * {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .row-three-columns > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .row-three-columns > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .row-three-columns > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row-three-columns > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 33.33333%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  .row-three-columns > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.row-four-columns > * {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .row-four-columns > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .row-four-columns > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .row-four-columns > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row-four-columns > * {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 25%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  .row-four-columns > * {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.row-big-small > *:nth-child(odd) {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .row-big-small > *:nth-child(odd) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .row-big-small > *:nth-child(odd) {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .row-big-small > *:nth-child(odd) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row-big-small > *:nth-child(odd) {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 66.66667%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  .row-big-small > *:nth-child(odd) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.row-big-small > *:nth-child(even) {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .row-big-small > *:nth-child(even) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .row-big-small > *:nth-child(even) {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .row-big-small > *:nth-child(even) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row-big-small > *:nth-child(even) {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 33.33333%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  .row-big-small > *:nth-child(even) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.row-small-big > *:nth-child(odd) {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .row-small-big > *:nth-child(odd) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .row-small-big > *:nth-child(odd) {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .row-small-big > *:nth-child(odd) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row-small-big > *:nth-child(odd) {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 33.33333%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  .row-small-big > *:nth-child(odd) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.row-small-big > *:nth-child(even) {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .row-small-big > *:nth-child(even) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .row-small-big > *:nth-child(even) {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .row-small-big > *:nth-child(even) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .row-small-big > *:nth-child(even) {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 66.66667%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  .row-small-big > *:nth-child(even) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.remove-grid {
  width: 100% !important;
  -webkit-box-flex: 0 !important;
      -ms-flex: 0 0 100% !important;
          flex: 0 0 100% !important;
  max-width: none !important;
}

/* ===================================================================================================================
   Miscellaneous - Global
   ================================================================================================================ */
.invisible {
  display: none !important;
  visibility: hidden !important;
}

.float_above {
  margin-bottom: 20px;
}

.float_left {
  margin-bottom: 20px;
}

@media print, screen and (min-width: 64em) {
  .float_left {
    float: left;
    margin-right: 20px;
  }
}

.float_right {
  margin-bottom: 20px;
}

@media print, screen and (min-width: 64em) {
  .float_right {
    float: right;
    margin-left: 20px;
  }
}

figure {
  margin: 0;
}

button,
select,
.submit,
.reveal,
a.edit {
  outline: 0;
}

p.error,
.mod_iso_cart .coupon .failed {
  padding: 0.85em 0.5em;
  font-size: 0.75rem;
  font-weight: 700;
  color: #fefefe;
  background: #ec5840;
}

/* ===================================================================================================================
   Typography - Global
   ================================================================================================================ */
body {
  letter-spacing: 0.05em;
}

h1, h2, h3, h4, h5, h6,
.ce_item-media-teaser__subheadline {
  letter-spacing: 0.05em;
  font-weight: 700;
}

h1 {
  padding-top: 0.5rem;
  font-weight: 400;
  text-transform: uppercase;
  padding-bottom: 1rem;
}

h3 {
  font-weight: 400;
  text-transform: uppercase;
}

p, td, li {
  font-size: 0.875rem;
}

.reveal ol,
.page_content ol {
  margin-left: 1.75rem;
}

select {
  border: 1px solid #000000;
  margin: 0 0 0.5rem;
}

.page_column-1 select {
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
}

#ctrl_target {
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

option {
  text-transform: none !important;
  letter-spacing: 0;
}

/* ===================================================================================================================
   Page Main Elements - Header, Teaser, Content, Sidebar, Footer
   ================================================================================================================ */
.top-navigation {
  z-index: 100;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: #e9e7e8;
}

@media print, screen and (min-width: 64em) {
  .top-navigation {
    padding-top: 1rem;
  }
}

.top-navigation_logo {
  margin-top: 1.25em;
  z-index: 100;
}

.top-navigation_logo .image_container {
  margin-bottom: 0.5em;
}

.top-navigation_shop {
  position: relative;
  margin-top: -20px;
  margin-bottom: 10px;
  text-align: right;
}

@media print, screen and (min-width: 64em) {
  .top-navigation_shop {
    margin-top: 0;
    margin-bottom: 0;
  }
}

.top-navigation_shop .link_basket:after {
  content: "";
  font-size: 14px;
}

.page_teaser {
  position: relative;
  margin-top: 7em;
}

@media print, screen and (min-width: 64em) {
  .page_teaser {
    margin-top: -1.5em;
  }
}

.page_teaser .mod_navigation ul {
  list-style: none;
  margin-left: 0;
}

.page_teaser .mod_navigation li {
  display: inline;
  text-transform: uppercase;
  padding-left: 0.5rem;
}

.page_teaser .mod_navigation li:first-child {
  padding-left: 0;
}

.page_wrapper {
  position: relative;
  top: 0;
}

@media print, screen and (min-width: 64em) {
  .page_wrapper {
    top: 12em;
  }
}

.page_column-wrapper {
  max-width: 75rem;
  margin: 0 auto;
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

@media print, screen and (min-width: 40em) {
  .page_column-wrapper {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .page_column-wrapper {
    margin-top: 45px;
  }
}

.page_type-home .page_column-wrapper,
.page_type-shoplist .page_column-wrapper {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

@media print, screen and (min-width: 40em) {
  .page_type-home .page_column-wrapper,
  .page_type-shoplist .page_column-wrapper {
    padding-left: 0;
    padding-right: 0;
  }
}

.page_content .ce_text a, .page_content .ce_item-intro-text__content a {
  text-decoration: underline;
}

.page_content .ce_text a.button {
  text-decoration: none;
}

.image_container {
  position: relative;
  margin-bottom: 2em;
}

.ce_image .caption {
  text-transform: uppercase;
  position: relative;
  background-color: black;
  bottom: 0;
  color: #fefefe;
  width: 100%;
  padding: 1rem;
  z-index: 2;
}

@media print, screen and (min-width: 40em) {
  .ce_image .caption {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.8);
  }
}

.page_content .ce_image a {
  display: block;
  height: 100%;
  width: 100%;
  position: relative;
}

.page_content .image_container {
  display: block;
  position: relative;
}

.page_content .image_container a {
  position: relative;
  height: 100%;
  width: 100%;
  display: block;
}

.page_content .image_container a:before {
  content: '';
  position: absolute;
  background-color: rgba(26, 26, 26, 0.7);
  background-image: url("../../files/theme/img/signet-atelier-cincin-white.svg");
  background-position: center center;
  background-size: 40px 40px;
  background-repeat: no-repeat;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: block;
  opacity: 0;
  -webkit-transition: 0.2s opacity linear;
  transition: 0.2s opacity linear;
}

.page_content .image_container a:hover:before {
  opacity: 1;
}

.page_sidebar .ce_image {
  margin-bottom: 1rem;
}

.page_sidebar-quicknavigation {
  margin-bottom: 1rem;
}

.page_sidebar-quicknavigation select {
  margin-bottom: 0;
}

.page_sidebar-quicknavigation,
.page_sidebar-basket-mini {
  margin-bottom: 1rem;
}

@media screen and (max-width: 63.9375em) {
  .page_sidebar-quicknavigation,
  .page_sidebar-basket-mini {
    display: none !important;
  }
}

.page_sidebar-isotope-filter,
.page_sidebar-basket-mini {
  padding: 0.625rem;
  background: #dddadb;
}

.page_sidebar-isotope-filter {
  margin-bottom: 1rem;
}

.page_sidebar-backlink {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

@media print, screen and (min-width: 64em) {
  .page_sidebar-backlink {
    margin-bottom: 0;
  }
}

.page_sidebar-backlink .backlink {
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.page_sidebar-backlink .backlink:before {
  content: "";
  margin-right: 10px;
  font-size: 18px;
  top: 3px;
  position: relative;
  margin-right: 0;
}

.page_sidebar-subnavigation {
  margin-top: 2rem;
}

@media print, screen and (min-width: 64em) {
  .page_sidebar-subnavigation {
    margin-top: 0;
  }
}

.page_sidebar-subnavigation ul {
  margin-left: 0;
  list-style-type: none;
}

.page_sidebar-subnavigation a {
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.mod_breadcrumb,
.mod_breadcrumb a {
  text-transform: uppercase;
}

.page_footer {
  background: #d7d7d7;
  color: #000000;
  margin-top: 30px;
  padding-top: 0.1rem;
}

.page_footer a {
  color: #000000;
}

.page_footer a:focus,
.page_footer a:hover {
  text-decoration: underline;
}

.page_footer a.button:focus,
.page_footer a.button:hover {
  text-decoration: none;
}

.page_footer .row:first-child {
  margin-top: 30px;
}

.page_footer .ce_text {
  margin-bottom: 20px;
}

.page_footer .ce_text:nth-child(3) img {
  max-width: 50px;
}

.page_footer h2 {
  text-transform: uppercase;
  color: white;
  padding-bottom: 1rem;
}

/* ===================================================================================================================
   Page Type Elements
   ================================================================================================================ */
/* ===================================================================================================================
   Content Type Elements
   ================================================================================================================ */
.content_type-social .social-links {
  float: right;
}

.content_type-social a {
  font-size: 1.25rem;
}

.content_type-social a:before {
  content: "";
  margin-right: 10px;
}

.content_type-social a:hover, .content_type-social a:focus, .content_type-social a:active {
  text-decoration: none;
}

.content_type-social a span {
  text-indent: -9999px;
  display: inline-block;
}

.content_type-social a.pinterest {
  font-size: 1.375rem;
}

.content_type-social a.pinterest:before {
  content: "";
  margin-right: 10px;
}

.content_type-social a.instagram:before {
  content: "";
  margin-right: 10px;
}

.content_type-copyright p {
  font-size: 0.75rem;
}

/* ===================================================================================================================
   Navigation - Foundation
   ================================================================================================================ */
@media screen and (max-width: 29.9375em) {
  .no-js .top-bar {
    display: none;
  }
}

@media print, screen and (min-width: 40em) {
  .no-js .title-bar {
    display: none;
  }
}

@media print, screen and (min-width: 64em) {
  .logo {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 33.33333%;
  }
}

@media print, screen and (min-width: 64em) and (min-width: 40em) {
  .logo {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.title-bar {
  position: relative;
  z-index: 999;
  width: 100%;
  background-color: #000000;
  padding: 0.5rem;
}

.top-bar {
  background-color: transparent;
  position: relative;
  z-index: 999;
  padding: 0;
  width: 100%;
}

@media print, screen and (min-width: 64em) {
  .top-bar {
    padding-top: 20px;
    float: right;
  }
}

.title-bar .menu-icon {
  margin: 0 auto;
}

.menu-icon:after {
  -webkit-box-shadow: 0 6px 0 #fefefe, 0 12px 0 #fefefe;
          box-shadow: 0 6px 0 #fefefe, 0 12px 0 #fefefe;
}

.menu-icon:hover:after {
  -webkit-box-shadow: 0 6px 0 #fefefe, 0 12px 0 #fefefe;
          box-shadow: 0 6px 0 #fefefe, 0 12px 0 #fefefe;
}

.top-bar .top-bar-right {
  width: 100%;
}

@media print, screen and (min-width: 64em) {
  .top-bar .top-bar-right {
    position: relative;
    margin-right: 20px;
  }
}

.top-bar a {
  color: #000000;
  text-transform: uppercase;
  padding: 0.7rem 1rem;
}

@media print, screen and (min-width: 64em) {
  .top-bar a {
    font-size: 0.875rem;
  }
}

.top-bar a.active, .top-bar a.trail {
  background-color: transparent;
}

@media print, screen and (min-width: 64em) {
  .top-bar a.active, .top-bar a.trail {
    color: #000000;
  }
}

.top-bar .menu.nested {
  background: #000000;
  margin-left: 0;
}

@media print, screen and (min-width: 64em) {
  .top-bar .menu.nested {
    -webkit-box-shadow: 2px 2px 7px 0 rgba(0, 0, 0, 0.2);
            box-shadow: 2px 2px 7px 0 rgba(0, 0, 0, 0.2);
    background: #1a1a1a;
  }
}

@media print, screen and (min-width: 64em) {
  .top-bar ul {
    float: right;
  }
}

.top-bar ul ul a {
  color: #fefefe;
  text-transform: none;
  letter-spacing: 0.05em;
  padding: 0.7rem 1rem;
  border-bottom: 1px solid rgba(254, 254, 254, 0.05);
}

@media print, screen and (min-width: 64em) {
  .top-bar ul ul a {
    border-bottom: 0px solid rgba(254, 254, 254, 0.05);
  }
}

.top-bar ul ul a.active,
.top-bar ul ul a.trail {
  background-color: #010101;
  color: #fefefe;
}

@media print, screen and (min-width: 64em) {
  .top-bar ul ul a:hover,
  .top-bar ul ul a:focus {
    background-color: black;
  }
}

.top-bar ul.vertical.dropdown {
  background: transparent;
}

.is-dropdown-submenu {
  min-width: 270px;
  border: 0;
}

.dropdown.menu.vertical.dropdown > li.is-dropdown-submenu-parent > a:after,
.is-accordion-submenu-parent > a:after {
  border-color: #fefefe transparent transparent;
  border: 0 solid;
}

.dropdown.menu.vertical.dropdown > li.is-dropdown-submenu-parent > a:after,
.is-accordion-submenu-parent > a:after {
  content: "";
  color: #fefefe;
  font-size: .5rem;
  right: 10px;
  margin-top: 2px;
  position: absolute;
  width: 8px;
  height: 8px;
}

@media print, screen and (min-width: 64em) {
  .dropdown.menu.vertical.dropdown > li.is-dropdown-submenu-parent > a:after,
  .is-accordion-submenu-parent > a:after {
    color: #000000;
    top: 11px;
    right: 8px;
    width: 8px;
  }
}

.top-bar .accordion-menu {
  background-color: black;
  color: #fefefe;
}

.top-bar .accordion-menu li a {
  color: #fefefe;
}

.top-bar .accordion-menu .is-accordion-submenu-item a {
  padding-left: 25px;
}

/* ===================================================================================================================
   Isotope
   ================================================================================================================ */
[class*="mod_iso"] .clear {
  display: none !important;
  visibility: hidden !important;
}

[class*="mod_iso"] .review a.edit {
  float: right;
  overflow: hidden;
}

.mod_iso_productlist .image_container {
  text-align: center;
}

.mod_iso_productlist .empty.message {
  margin-top: 1rem;
}

@media print, screen and (min-width: 64em) {
  .mod_iso_productlist .empty.message {
    margin-top: 0;
  }
}

.product_list {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.product_list .product {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 50%;
  margin-bottom: 37px;
}

@media print, screen and (min-width: 40em) {
  .product_list .product {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .product_list .product {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 25%;
    margin-bottom: 47px;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .product_list .product {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.product_list.similar_products {
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid #cacaca;
}

.product_list.similar_products .product {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 50%;
  margin-bottom: 37px;
  margin-top: 2rem;
}

@media print, screen and (min-width: 40em) {
  .product_list.similar_products .product {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .product_list.similar_products .product {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 16.66667%;
    margin-bottom: 47px;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .product_list.similar_products .product {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.product_list .formbody {
  position: relative;
}

.product_list .image_container {
  background: #fefefe;
}

.product_list .image_container img {
  width: 100%;
}

.product_list .price {
  z-index: 2;
}

.product_list .details {
  display: none !important;
  visibility: hidden !important;
}

.product_list .property_status-new {
  z-index: 2;
  position: absolute;
  top: 0;
  right: 0;
}

.product_list .property_status-new:before {
  z-index: 2;
  position: absolute;
  content: 'NEU';
  top: 0;
  right: 0.5em;
  font-family: "Lato", sans-serif !important;
  background-color: #000000;
  font-size: 1.125rem;
  padding: 4px;
  padding-top: 6px;
  color: #fefefe;
  line-height: 1;
}

.mod_iso_productfilter .column_filter {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .mod_iso_productfilter .column_filter {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 30em) {
  .mod_iso_productfilter .column_filter {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 30em) and (min-width: 40em) {
  .mod_iso_productfilter .column_filter {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 40em) {
  .mod_iso_productfilter .column_filter {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 25%;
  }
}

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  .mod_iso_productfilter .column_filter {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.mod_iso_productfilter .column_clear {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .mod_iso_productfilter .column_clear {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media screen and (min-width: 46.875em) {
  .mod_iso_productfilter .column_clear {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 25%;
  }
}

@media screen and (min-width: 46.875em) and (min-width: 40em) {
  .mod_iso_productfilter .column_clear {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.mod_iso_productfilter .search {
  position: relative;
}

.mod_iso_productfilter .search label {
  display: none;
  visibility: hidden;
}

.mod_iso_productfilter .search .awesomplete {
  display: block;
  width: 100%;
}

.mod_iso_productfilter .search input[type="text"] {
  padding-right: 50px;
  padding-left: 15px;
}

.mod_iso_productfilter .search input[type="submit"] {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 2.4375rem;
  margin: 0;
  background: #000000 url("../../files/theme/img/icon-search.svg") no-repeat center;
  background-size: 20px 20px;
}

.mod_iso_productreader img {
  background: #535152;
}

.product_information .name,
.product_information .quantity_container label {
  display: none !important;
  visibility: hidden !important;
}

.mod_iso_productreader .formbody {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  max-width: none;
  margin-left: -10px;
  margin-right: -10px;
}

@media print, screen and (min-width: 40em) {
  .mod_iso_productreader .formbody {
    margin-left: -15px;
    margin-right: -15px;
  }
}

.product_gallery,
.product_information {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .product_gallery,
  .product_information {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 30em) {
  .product_gallery,
  .product_information {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 30em) and (min-width: 40em) {
  .product_gallery,
  .product_information {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.product_gallery-thumbnails {
  margin-top: 1rem;
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  max-width: none;
  margin-left: -10px;
  margin-right: -10px;
}

@media print, screen and (min-width: 40em) {
  .product_gallery-thumbnails {
    margin-left: -15px;
    margin-right: -15px;
  }
}

.product_gallery-thumbnails figure {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 33.33333%;
}

@media print, screen and (min-width: 40em) {
  .product_gallery-thumbnails figure {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.product_information .product_category {
  font-size: 1.25rem;
  margin-top: 1rem;
  text-transform: uppercase;
  margin-bottom: 0;
  font-weight: 400;
}

@media print, screen and (min-width: 30em) {
  .product_information .product_category {
    margin-top: 0;
  }
}

@media print, screen and (min-width: 40em) {
  .product_information .product_category {
    font-size: 1.375rem;
  }
}

@media print, screen and (min-width: 64em) {
  .product_information .product_category {
    font-size: 1.625rem;
  }
}

.product_information .sku {
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.product_information .price {
  margin-bottom: 0;
  font-size: 1.125rem;
}

@media print, screen and (min-width: 40em) {
  .product_information .price {
    font-size: 1.5rem;
  }
}

.product_additional-information {
  font-size: 0.75rem;
  margin-bottom: 30px;
}

.mod_iso_productreader .quantity_container {
  float: left;
  width: 40px;
  margin-right: 10px;
}

.product_information .quantity_container input {
  text-align: center;
}

.mod_iso_productreader .submit {
  display: inline-block;
  margin-top: 0;
}

.mod_iso_productreader .product_properties {
  margin-top: 1rem;
}

.mod_iso_productreader .property_finish ul {
  display: inline;
  margin-left: 0;
  list-style-type: none;
}

.mod_iso_productreader .property_finish li {
  display: inline;
}

.mod_iso_productreader .product_information-ring-measure p {
  font-size: 0.75rem;
}

.mod_iso_productreader .product_information-ring-measure a {
  padding-bottom: 1px;
  border-bottom: 1px solid #232323;
}

.mod_iso_productreader .product_information-delivery {
  font-size: 0.875rem;
  margin-top: 1rem;
}

.mod_iso_productreader .property_status-new:before {
  z-index: 2;
  position: relative;
  content: 'NEU';
  top: -10px;
  right: 0;
  font-family: "Lato", sans-serif !important;
  background-color: #000000;
  font-size: 1.125rem;
  padding: 4px;
  color: #fefefe;
  line-height: 1;
}

.mod_iso_productreader .property_status-ordered {
  margin-top: 1rem;
}

.mod_iso_productreader .property_status-ordered span:before {
  content: "";
  margin-right: 10px;
  margin-right: 5px;
  font-size: 14px;
}

.page_content-basket-maxi table {
  width: 100%;
  table-layout: fixed;
}

.basket-maxi_content tr {
  border-bottom: 1px solid #000000;
}

.basket-maxi_content td.remove,
.basket-maxi_summary td.remove,
.basket-maxi_summary td.col_0,
.basket-maxi_summary td.col_3 {
  display: none !important;
  visibility: hidden !important;
}

.basket-maxi_content .image {
  display: none;
  visibility: hidden;
  padding-top: 5px;
  padding-bottom: 5px;
  padding-right: 15px;
}

@media print, screen and (min-width: 30em) {
  .basket-maxi_content .image {
    display: block;
    visibility: visible;
    width: 50px;
  }
}

@media print, screen and (min-width: 40em) {
  .basket-maxi_content .image {
    width: 100px;
  }
}

.basket-maxi_content .remove a {
  float: right;
}

.basket-maxi_content .remove a:before {
  content: "";
  margin-right: 10px;
}

.basket-maxi_content .name {
  width: 100%;
  font-size: 0.875rem !important;
  display: block;
  padding: 0.25em 0.5em 0.25em 0;
  font-weight: 700;
}

@media print, screen and (min-width: 30em) {
  .basket-maxi_content .name {
    display: table-cell;
    padding-left: 50px;
  }
}

@media print, screen and (min-width: 40em) {
  .basket-maxi_content .name {
    padding-left: 100px;
  }
}

.basket-maxi_content .name ul {
  margin-left: 0;
  list-style-type: none;
}

.basket-maxi_content .name ul strong {
  font-weight: 400;
}

.basket-maxi_content .name a,
.basket-maxi_content .name ul li p {
  font-size: 0.875rem !important;
}

.basket-maxi_content .quantity {
  display: inline-block;
  width: 20%;
  padding: 0.25em 0.5em 0.25em 0;
}

@media print, screen and (min-width: 30em) {
  .basket-maxi_content .quantity {
    display: table-cell;
    width: 2.625rem;
    padding-left: 0.5em;
  }
}

.basket-maxi_content .quantity input {
  width: 2.5rem;
  height: 1.375rem;
  margin: 0;
  padding: 0;
  text-align: center;
}

.basket-maxi_content .price,
.basket-maxi_content .price.total {
  display: inline-block;
  width: 40%;
  text-align: right;
  padding: 0.25em;
}

@media print, screen and (min-width: 30em) {
  .basket-maxi_content .price,
  .basket-maxi_content .price.total {
    display: table-cell;
    width: 7.5rem;
    padding: 0.25em 0.5em;
  }
}

.basket-maxi_content .price.total {
  padding-right: 0;
}

.basket-maxi_summary .name {
  text-align: right;
}

.basket-maxi_summary .price.total {
  width: 7.5rem;
  padding: 0.25em 0.5em;
  text-align: right;
}

.basket-maxi_summary .price.total {
  padding-right: 0;
}

.basket-maxi_summary .total .name,
.basket-maxi_summary .total .price {
  font-weight: 700;
}

.mod_iso_cart .coupon {
  margin-top: 1rem;
}

.mod_iso_cart .coupon input {
  max-width: 200px;
}

.page_content-basket-mini .coupon {
  display: none !important;
  visibility: hidden !important;
}

.page_content-basket-mini h2 {
  margin-bottom: 1rem;
  line-height: 1;
  font-size: 0.9375rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page_content-basket-mini h2:before {
  content: "";
  margin-right: 10px;
  font-size: 16px;
}

.page_content-basket-mini .product {
  margin-bottom: 0.3125rem;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #000000;
}

.page_content-basket-mini .name {
  font-weight: 700;
}

.page_content-basket-mini .remove {
  float: right;
  overflow: hidden;
}

.page_content-basket-mini .remove a:after {
  content: "";
  margin-left: 10px;
}

.page_content-basket-mini .price {
  text-align: right;
}

.page_content-basket-mini .info ul {
  margin-left: 0;
  list-style-type: none;
}

.page_content-basket-mini .info ul strong {
  font-weight: 400;
}

.page_content-basket-mini .subtotal {
  text-align: right;
}

.page_content-basket-mini .coupon h2 {
  margin-bottom: 1rem;
  line-height: 1;
  font-size: 0.9375rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page_content-basket-mini .coupon h2:before {
  content: "";
  margin-right: 10px;
  font-size: 16px;
}

.mod_iso_checkout .address_new {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  max-width: none;
  margin-left: -10px;
  margin-right: -10px;
}

@media print, screen and (min-width: 40em) {
  .mod_iso_checkout .address_new {
    margin-left: -15px;
    margin-right: -15px;
  }
}

.mod_iso_checkout .address_new .widget {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 50%;
}

@media print, screen and (min-width: 40em) {
  .mod_iso_checkout .address_new .widget {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.mod_iso_checkout .address_new .widget:nth-child(1),
.mod_iso_checkout .address_new .widget:nth-child(10) {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .mod_iso_checkout .address_new .widget:nth-child(1),
  .mod_iso_checkout .address_new .widget:nth-child(10) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.mod_iso_checkout .shippingaddress {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #000000;
}

.mod_iso_checkout .shippingaddress .widget-radio span {
  display: block;
}

.mod_iso_checkout .shippingmethod .widget-radio input[type="radio"] label {
  display: block;
}

.mod_iso_checkout .shippingmethod .widget-radio .radio_container > span {
  display: block;
}

.mod_iso_checkout .shippingmethod .widget-radio > * {
  display: inline;
}

.mod_iso_checkout .shippingmethod .widget-radio label {
  margin: 0;
}

.mod_iso_checkout .paymentmethod .radio_container span {
  display: block;
}

.mod_iso_checkout .orderinfo .info_container:first-of-type,
.mod_iso_orderdetails .info_container:first-of-type {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #000000;
}

.mod_iso_checkout .orderinfo .info_container,
.mod_iso_orderdetails .info_container {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #000000;
}

.mod_iso_checkout .orderinfo .info_container.last,
.mod_iso_orderdetails .info_container.last {
  margin-bottom: 0;
}

.mod_iso_checkout .orderinfo .info_container.shipping_method a.edit {
  display: none;
  visibility: hidden;
}

.mod_iso_checkout .orderconditionsafterproducts {
  padding-top: 1rem;
  border-top: 1px solid #000000;
}

.mod_iso_orderdetails h2 {
  font-size: 1.125rem;
}

.mod_iso_orderhistory table {
  width: 100%;
  text-align: left;
}

.mod_iso_orderhistory tr {
  border-bottom: 1px solid #000000;
}

.mod_iso_orderhistory td {
  padding: 10px 0;
}

.mod_iso_orderhistory th:nth-child(2),
.mod_iso_orderhistory td:nth-child(2) {
  padding-left: 5px;
  padding-right: 5px;
}

.mod_iso_orderhistory .oder_status {
  text-align: right;
}

#iso_ajaxBox {
  width: 80%;
  padding: 20px;
  position: absolute;
  top: 20px;
  left: 10%;
  border: 1px solid #000000;
  /*	font-family:"Trebuchet MS",Verdana,sans-serif;
		font-size:15px;
		line-height: 18px;*/
  text-align: center;
  color: #000000;
  z-index: 9999;
}

#iso_ajaxBox.btnClose {
  background-image: none;
  cursor: pointer;
}

#iso_ajaxBox p {
  margin: 1em 0;
  padding: 0;
}

#iso_ajaxBox .iso_error {
  padding-left: 0;
  background: transparent;
  /*	padding-left: 34px;
		background: url("../../files/theme/images/cross-24.png") left center no-repeat;*/
}

#iso_ajaxBox .iso_confirm {
  padding-left: 0;
  background: transparent;
  /*	padding-left: 34px;
		background: url("../../files/theme/images/tick-24.png") left center no-repeat;*/
}

#iso_ajaxBox .iso_info {
  padding-left: 0;
  background: transparent;
  /*	padding-left: 34px;
		background: url("../../files/theme/images/information-24.png") left center no-repeat;*/
}

#iso_ajaxOverlay {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(34, 34, 34, 0.85);
  z-index: 9998;
  /*	background-color : #000000;
		-moz-opacity     : 0.5;
		opacity          : 0.5;
		_display         : none;
		filter           : Alpha(opacity=50);*/
}

/* ===================================================================================================================
   Pagination
   ================================================================================================================ */
.pagination {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
}

.pagination ul {
  text-align: right;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
  margin-left: 0;
}

@media print, screen and (min-width: 40em) {
  .pagination ul {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.pagination p,
.pagination ul li.next,
.pagination ul li.last,
.pagination ul li.first,
.pagination ul li.previous {
  display: none !important;
  visibility: hidden;
}

.pagination ul {
  display: inline-block;
}

.pagination li {
  display: inline-block;
  margin-left: 5px;
}

.pagination li:first-child {
  margin-left: 0;
}

.pagination li a,
.pagination li span {
  border: 1px solid #000000;
  padding: 5px 10px;
}

.pagination li a {
  text-decoration: none;
}

.pagination li span {
  color: #fefefe;
  background: #000000;
}

.pagination li a:hover,
.pagination li a:focus {
  color: #fefefe;
  background: #1a1a1a;
}

/* ===================================================================================================================
   Breadcrumbs Multi Step Indicator
   ================================================================================================================ */
.steps ol {
  margin-left: 0;
  text-transform: uppercase;
}

.steps .text-center {
  text-align: left;
}

/* --------------------------------
Basic Style
-------------------------------- */
.cd-breadcrumb,
.cd-multi-steps {
  width: 100%;
}

.cd-breadcrumb:after,
.cd-multi-steps:after {
  content: "";
  display: table;
  clear: both;
}

.cd-breadcrumb li,
.cd-multi-steps li {
  display: inline-block;
  float: left;
  margin: 0.5em 0;
}

.cd-breadcrumb li::after,
.cd-multi-steps li::after {
  /* this is the separator between items */
  display: inline-block;
  content: '\00bb';
  margin: 0 .6em;
  color: #959fa5;
}

.cd-breadcrumb li:last-of-type::after,
.cd-multi-steps li:last-of-type::after {
  /* hide separator after the last item */
  display: none;
}

.cd-breadcrumb li > *,
.cd-multi-steps li > * {
  /* single step */
  display: inline-block;
  color: #2c3f4c;
}

.cd-breadcrumb li.current > *,
.cd-multi-steps li.current > * {
  /* selected step */
  color: #000000;
  font-weight: 400;
}

.no-touch .cd-breadcrumb a:hover,
.no-touch .cd-multi-steps a:hover {
  /* steps already visited */
  color: #000000;
}

.cd-breadcrumb.custom-separator li::after,
.cd-multi-steps.custom-separator li::after {
  /* replace the default arrow separator with a custom icon */
  content: '';
  height: 16px;
  width: 16px;
  background: url(../../files/theme/img/cd-custom-separator.svg) no-repeat center center;
  vertical-align: middle;
}

.cd-breadcrumb.custom-icons li > *::before,
.cd-multi-steps.custom-icons li > *::before {
  /* add a custom icon before each item */
  content: '';
  display: inline-block;
  height: 20px;
  width: 20px;
  margin-right: .4em;
  margin-top: -2px;
  background: url(../../files/theme/img/cd-custom-icons-01.svg) no-repeat 0 0;
  vertical-align: middle;
}

.cd-breadcrumb.custom-icons li:not(.current):nth-of-type(2) > *::before,
.cd-multi-steps.custom-icons li:not(.current):nth-of-type(2) > *::before {
  /* change custom icon using image sprites */
  background-position: -20px 0;
}

.cd-breadcrumb.custom-icons li:not(.current):nth-of-type(3) > *::before,
.cd-multi-steps.custom-icons li:not(.current):nth-of-type(3) > *::before {
  background-position: -40px 0;
}

.cd-breadcrumb.custom-icons li:not(.current):nth-of-type(4) > *::before,
.cd-multi-steps.custom-icons li:not(.current):nth-of-type(4) > *::before {
  background-position: -60px 0;
}

.cd-breadcrumb.custom-icons li.current:first-of-type > *::before,
.cd-multi-steps.custom-icons li.current:first-of-type > *::before {
  /* change custom icon for the current item */
  background-position: 0 -20px;
}

.cd-breadcrumb.custom-icons li.current:nth-of-type(2) > *::before,
.cd-multi-steps.custom-icons li.current:nth-of-type(2) > *::before {
  background-position: -20px -20px;
}

.cd-breadcrumb.custom-icons li.current:nth-of-type(3) > *::before,
.cd-multi-steps.custom-icons li.current:nth-of-type(3) > *::before {
  background-position: -40px -20px;
}

.cd-breadcrumb.custom-icons li.current:nth-of-type(4) > *::before,
.cd-multi-steps.custom-icons li.current:nth-of-type(4) > *::before {
  background-position: -60px -20px;
}

@media screen and (min-width: 41.875em) {
  .cd-breadcrumb, .cd-multi-steps {
    padding: 0 1.2em;
  }
  .cd-breadcrumb li, .cd-multi-steps li {
    margin: 1.2em 0;
  }
  .cd-breadcrumb li::after, .cd-multi-steps li::after {
    margin: 0 1em;
  }
}

/* --------------------------------
Triangle breadcrumb
-------------------------------- */
@media screen and (min-width: 41.875em) {
  .cd-breadcrumb.triangle {
    /* reset basic style */
    background-color: transparent;
    padding: 0;
  }
  .cd-breadcrumb.triangle li {
    position: relative;
    padding: 0;
    margin: 4px 4px 4px 0;
  }
  .cd-breadcrumb.triangle li:last-of-type {
    margin-right: 0;
  }
  .cd-breadcrumb.triangle li > * {
    position: relative;
    padding: 1em .8em 1em 2.5em;
    color: #2c3f4c;
    background-color: #edeff0;
    /* the border color is used to style its ::after pseudo-element */
    border-color: #edeff0;
  }
  .cd-breadcrumb.triangle li.current > * {
    /* selected step */
    color: #ffffff;
    background-color: #96c03d;
    border-color: #96c03d;
  }
  .cd-breadcrumb.triangle li:first-of-type > * {
    padding-left: 1.6em;
    border-radius: .25em 0 0 .25em;
  }
  .cd-breadcrumb.triangle li:last-of-type > * {
    padding-right: 1.6em;
    border-radius: 0 .25em .25em 0;
  }
  .no-touch .cd-breadcrumb.triangle a:hover {
    /* steps already visited */
    color: #ffffff;
    background-color: #2c3f4c;
    border-color: #2c3f4c;
  }
  .cd-breadcrumb.triangle li::after,
  .cd-breadcrumb.triangle li > *::after {
    /*
			li > *::after is the colored triangle after each item
			li::after is the white separator between two items
		*/
    content: '';
    position: absolute;
    top: 0;
    left: 100%;
    content: '';
    height: 0;
    width: 0;
    /* 48px is the height of the <a> element */
    border: 24px solid transparent;
    border-right-width: 0;
    border-left-width: 20px;
  }
  .cd-breadcrumb.triangle li::after {
    /* this is the white separator between two items */
    z-index: 1;
    -webkit-transform: translateX(4px);
        -ms-transform: translateX(4px);
            transform: translateX(4px);
    border-left-color: #ffffff;
    /* reset style */
    margin: 0;
  }
  .cd-breadcrumb.triangle li > *::after {
    /* this is the colored triangle after each element */
    z-index: 2;
    border-left-color: inherit;
  }
  .cd-breadcrumb.triangle li:last-of-type::after,
  .cd-breadcrumb.triangle li:last-of-type > *::after {
    /* hide the triangle after the last step */
    display: none;
  }
  .cd-breadcrumb.triangle.custom-separator li::after {
    /* reset style */
    background-image: none;
  }
  .cd-breadcrumb.triangle.custom-icons li::after,
  .cd-breadcrumb.triangle.custom-icons li > *::after {
    /* 50px is the height of the <a> element */
    border-top-width: 25px;
    border-bottom-width: 25px;
  }
  @-moz-document url-prefix() {
    .cd-breadcrumb.triangle li::after,
    .cd-breadcrumb.triangle li > *::after {
      /* fix a bug on Firefix - tooth edge on css triangle */
      border-left-style: dashed;
    }
  }
}

/* --------------------------------
Custom icons hover effects - breadcrumb and multi-steps
-------------------------------- */
@media screen and (min-width: 41.875em) {
  .no-touch .cd-breadcrumb.triangle.custom-icons li:first-of-type a:hover::before,
  .cd-breadcrumb.triangle.custom-icons li.current:first-of-type em::before,
  .no-touch .cd-multi-steps.text-center.custom-icons li:first-of-type a:hover::before,
  .cd-multi-steps.text-center.custom-icons li.current:first-of-type em::before {
    /* change custom icon using image sprites - hover effect or current item */
    background-position: 0 -40px;
  }
  .no-touch .cd-breadcrumb.triangle.custom-icons li:nth-of-type(2) a:hover::before,
  .cd-breadcrumb.triangle.custom-icons li.current:nth-of-type(2) em::before,
  .no-touch .cd-multi-steps.text-center.custom-icons li:nth-of-type(2) a:hover::before,
  .cd-multi-steps.text-center.custom-icons li.current:nth-of-type(2) em::before {
    background-position: -20px -40px;
  }
  .no-touch .cd-breadcrumb.triangle.custom-icons li:nth-of-type(3) a:hover::before,
  .cd-breadcrumb.triangle.custom-icons li.current:nth-of-type(3) em::before,
  .no-touch .cd-multi-steps.text-center.custom-icons li:nth-of-type(3) a:hover::before,
  .cd-multi-steps.text-center.custom-icons li.current:nth-of-type(3) em::before {
    background-position: -40px -40px;
  }
  .no-touch .cd-breadcrumb.triangle.custom-icons li:nth-of-type(4) a:hover::before,
  .cd-breadcrumb.triangle.custom-icons li.current:nth-of-type(4) em::before,
  .no-touch .cd-multi-steps.text-center.custom-icons li:nth-of-type(4) a:hover::before,
  .cd-multi-steps.text-center.custom-icons li.current:nth-of-type(4) em::before {
    background-position: -60px -40px;
  }
}

/* --------------------------------
Multi steps indicator
-------------------------------- */
@media screen and (min-width: 41.875em) {
  .cd-multi-steps {
    /* reset style */
    background-color: transparent;
    padding: 0;
  }
  .cd-multi-steps li {
    position: relative;
    float: none;
    margin: 0.4em 40px 0.4em 0;
  }
  .cd-multi-steps li:last-of-type {
    margin-right: 0;
  }
  .cd-multi-steps li::after {
    /* this is the line connecting 2 adjacent items */
    position: absolute;
    content: '';
    height: 4px;
    background: #f5f4f4;
    /* reset style */
    margin: 0;
  }
  .cd-multi-steps li.visited::after {
    background-color: #96c03d;
  }
  .cd-multi-steps li > *,
  .cd-multi-steps li.current > * {
    position: relative;
    color: #2c3f4c;
  }
  .cd-multi-steps.custom-separator li::after {
    /* reset style */
    height: 4px;
    background: #1a1a1a;
  }
  .cd-multi-steps.text-center li::after {
    width: 100%;
    top: 50%;
    left: 100%;
    -webkit-transform: translateY(-50%) translateX(-1px);
        -ms-transform: translateY(-50%) translateX(-1px);
            transform: translateY(-50%) translateX(-1px);
  }
  .cd-multi-steps.text-center li > * {
    z-index: 1;
    padding: .6em 1em;
    border-radius: .25em;
    background-color: #f5f4f4;
  }
  .no-touch .cd-multi-steps.text-center a:hover {
    background-color: #2c3f4c;
  }
  .cd-multi-steps.text-center li.current > *,
  .cd-multi-steps.text-center li.visited > * {
    color: #fefefe;
    background-color: #000000;
  }
  .cd-multi-steps.text-center.custom-icons li.visited a::before {
    /* change the custom icon for the visited item - check icon */
    background-position: 0 -60px;
  }
  .cd-multi-steps.text-top li,
  .cd-multi-steps.text-bottom li {
    width: 80px;
    text-align: center;
  }
  .cd-multi-steps.text-top li::after,
  .cd-multi-steps.text-bottom li::after {
    /* this is the line connecting 2 adjacent items */
    position: absolute;
    left: 50%;
    /* 40px is the <li> right margin value */
    width: calc(100% + 40px);
  }
  .cd-multi-steps.text-top li > *::before,
  .cd-multi-steps.text-bottom li > *::before {
    /* this is the spot indicator */
    content: '';
    position: absolute;
    z-index: 1;
    left: 50%;
    right: auto;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
    height: 12px;
    width: 12px;
    border-radius: 50%;
    background-color: #edeff0;
  }
  .cd-multi-steps.text-top li.visited > *::before,
  .cd-multi-steps.text-top li.current > *::before,
  .cd-multi-steps.text-bottom li.visited > *::before,
  .cd-multi-steps.text-bottom li.current > *::before {
    background-color: #96c03d;
  }
  .no-touch .cd-multi-steps.text-top a:hover,
  .no-touch .cd-multi-steps.text-bottom a:hover {
    color: #96c03d;
  }
  .no-touch .cd-multi-steps.text-top a:hover::before,
  .no-touch .cd-multi-steps.text-bottom a:hover::before {
    -webkit-box-shadow: 0 0 0 3px rgba(150, 192, 61, 0.3);
            box-shadow: 0 0 0 3px rgba(150, 192, 61, 0.3);
  }
  .cd-multi-steps.text-top li::after {
    /* this is the line connecting 2 adjacent items */
    bottom: 4px;
  }
  .cd-multi-steps.text-top li > * {
    padding-bottom: 20px;
  }
  .cd-multi-steps.text-top li > *::before {
    /* this is the spot indicator */
    bottom: 0;
  }
  .cd-multi-steps.text-bottom li::after {
    /* this is the line connecting 2 adjacent items */
    top: 3px;
  }
  .cd-multi-steps.text-bottom li > * {
    padding-top: 20px;
  }
  .cd-multi-steps.text-bottom li > *::before {
    /* this is the spot indicator */
    top: 0;
  }
}

/* --------------------------------
Add a counter to the multi-steps indicator
-------------------------------- */
.cd-multi-steps.count li {
  counter-increment: steps;
}

.cd-multi-steps.count li > *::before {
  content: counter(steps) " - ";
}

@media screen and (min-width: 41.875em) {
  .cd-multi-steps.text-top.count li > *::before,
  .cd-multi-steps.text-bottom.count li > *::before {
    /* this is the spot indicator */
    content: counter(steps);
    height: 26px;
    width: 26px;
    line-height: 26px;
    color: #ffffff;
  }
  .cd-multi-steps.text-top.count li:not(.current) em::before,
  .cd-multi-steps.text-bottom.count li:not(.current) em::before {
    /* steps not visited yet - counter color */
    color: #2c3f4c;
  }
  .cd-multi-steps.text-top.count li::after {
    bottom: 11px;
  }
  .cd-multi-steps.text-top.count li > * {
    padding-bottom: 34px;
  }
  .cd-multi-steps.text-bottom.count li::after {
    top: 11px;
  }
  .cd-multi-steps.text-bottom.count li > * {
    padding-top: 34px;
  }
}

/* ===================================================================================================================
   Buttons
   ================================================================================================================ */
.button,
.submit,
[class*="mod_iso"] .review a.edit,
.page_sidebar-subnavigation a,
.page_sidebar-subnavigation span,
.mod_iso_orderhistory .document_number a {
  margin: 1rem 0;
  padding: 10px 10px 8px 10px;
  font-weight: 400;
  color: #000000;
  text-transform: uppercase;
  background-color: transparent;
  border: 1px solid #000000;
}

.page_sidebar-subnavigation span {
  display: block;
}

.mod_iso_productfilter a.clear_filters {
  display: block;
  margin: 0 0 1rem 0;
  padding-top: 12px;
  padding-bottom: 11px;
}

.mod_iso_orderhistory .document_number a {
  padding: 4px 2px 2px 2px;
}

.button:focus,
.button:hover,
.submit:focus,
.submit:hover,
[class*="mod_iso"] .review a.edit:focus,
[class*="mod_iso"] .review a.edit:hover,
.page_sidebar-subnavigation a:focus,
.page_sidebar-subnavigation a:hover,
.page_sidebar-subnavigation span,
.mod_iso_orderhistory .document_number a:focus,
.mod_iso_orderhistory .document_number a:hover {
  color: #fefefe;
  background-color: #1a1a1a;
}

.mod_registration .submit {
  margin-top: 1.5625rem;
  display: block;
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.button_hamburger span {
  width: 25px;
  height: 2px;
  background-color: #232323;
  display: block;
  margin: 3px auto;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.button_hamburger:focus,
.button_hamburger:hover {
  cursor: pointer;
}

/* ===================================================================================================================
   User
   ================================================================================================================ */
.mod_personalData {
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #000000;
}

.mod_registration .fields,
.mod_personalData .fields {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  max-width: none;
  margin-left: -10px;
  margin-right: -10px;
}

@media print, screen and (min-width: 40em) {
  .mod_registration .fields,
  .mod_personalData .fields {
    margin-left: -15px;
    margin-right: -15px;
  }
}

.mod_registration .widget,
.mod_personalData .widget {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 50%;
}

@media print, screen and (min-width: 40em) {
  .mod_registration .widget,
  .mod_personalData .widget {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.mod_registration .widget:nth-child(1),
.mod_personalData .widget:nth-child(1),
.mod_registration .widget:nth-child(10),
.mod_personalData .widget:nth-child(10) {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .mod_registration .widget:nth-child(1),
  .mod_personalData .widget:nth-child(1),
  .mod_registration .widget:nth-child(10),
  .mod_personalData .widget:nth-child(10) {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

.mod_login .fields,
.mod_lostPassword .fields {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  max-width: none;
  margin-left: -10px;
  margin-right: -10px;
}

@media print, screen and (min-width: 40em) {
  .mod_login .fields,
  .mod_lostPassword .fields {
    margin-left: -15px;
    margin-right: -15px;
  }
}

.mod_login .widget,
.mod_lostPassword .widget {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 100%;
}

@media print, screen and (min-width: 40em) {
  .mod_login .widget,
  .mod_lostPassword .widget {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

@media print, screen and (min-width: 30em) {
  .mod_login .widget,
  .mod_lostPassword .widget {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%;
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 50%;
  }
}

@media print, screen and (min-width: 30em) and (min-width: 40em) {
  .mod_login .widget,
  .mod_lostPassword .widget {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
  }
}

/* ===================================================================================================================
   Accordion
   ================================================================================================================ */
.ce_accordion .toggler {
  position: relative;
  outline: 0;
  cursor: pointer;
  padding: 0.9375rem 0;
  text-transform: uppercase;
  font-size: 0.9375rem;
  font-weight: 400;
  letter-spacing: 0.1em;
}

.ce_accordion .toggler:before {
  content: "";
  margin-right: 10px;
  margin-right: 5px;
  font-size: 16px;
}

.ce_accordion .toggler:after {
  content: "";
  margin-left: 10px;
  position: absolute;
  top: calc(50% - 7px);
  right: 0;
  font-size: 14px;
}

.ce_accordion .toggler.active:after {
  content: "";
  margin-left: 10px;
  font-size: 16px;
}

.ce_accordion .ui-accordion-content-active {
  padding-bottom: 0.875rem;
}

/* ===================================================================================================================
   Modal (Reveal)
   ================================================================================================================ */
.link_modal-open {
  padding-bottom: 1px;
  border-bottom: 1px solid #000000;
}

.reveal .button_wrapper {
  text-align: center;
}

/* ===================================================================================================================
   RSCE 1-001 - CE Item - Intro Text (Template: rsce_1_001_intro_text)
   ================================================================================================================ */
/* ===================================================================================================================
   RSCE 2-001 - CE Item - Media Teaser (Template: rsce_2_001_media_teaser)
   ================================================================================================================ */
.ce_item-media-teaser {
  position: relative;
  height: 100vh;
  overflow: hidden;
  border: 1.25rem solid #fefefe;
  -webkit-animation-name: fade-0-to-100;
          animation-name: fade-0-to-100;
  -webkit-animation-duration: 5s;
          animation-duration: 5s;
}

@media print, screen and (min-width: 40em) {
  .ce_item-media-teaser {
    border: 1.875rem solid #fefefe;
  }
}

@-webkit-keyframes fade-0-to-100 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fade-0-to-100 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.ce_item-media-teaser__background {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  background: 50% 50% no-repeat;
  background-size: cover;
}

.ce_item-media-teaser__background video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.ce_item-media-teaser__content-wrapper-outside {
  position: relative;
  top: 50%;
  text-align: center;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
}

.ce_item-media-teaser__content-wrapper-inside {
  padding-left: 20px;
  padding-right: 20px;
  -webkit-animation-name: fade-0-to-100;
          animation-name: fade-0-to-100;
  -webkit-animation-duration: 10s;
          animation-duration: 10s;
}

@keyframes fade-0-to-100 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@media print, screen and (min-width: 40em) {
  .ce_item-media-teaser__content-wrapper-inside {
    padding-left: 40px;
    padding-right: 40px;
  }
}

.ce_item-media-teaser__link a {
  text-align: center;
  color: #fefefe;
  padding-top: 3rem;
  display: block;
}

@media print, screen and (min-width: 40em) {
  .ce_item-media-teaser__link a {
    position: relative;
  }
}

.ce_item-media-teaser__link a:before {
  content: "";
  color: #fefefe;
  position: relative;
  font-size: 2.25rem;
}

/* ===================================================================================================================
   RSCE 1-010 - CE Item - Teaser (Template: rsce_1_001_teaser)
   ================================================================================================================ */
.ce_item-teaser .columns > div, .ce_item-teaser .columns > a {
  height: 100%;
  background-color: #e4e4e4;
  padding: 1.5rem;
}

.ce_item-teaser .columns > a {
  display: block;
  width: 100%;
}

.ce_item-teaser .bg-image {
  background-repeat: no-repeat;
  background-size: cover;
}

/* ===================================================================================================================
   RSCE 2-001 - CE Item - Orbit Slider (Template: rsce-2-010-orbit-slider)
   ================================================================================================================ */
.orbit {
  position: relative;
}

.orbit-caption {
  display: none;
}

.ce_orbit_slider.slider-background li {
  height: 100vh;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.ce_orbit_slider.slider-background ul {
  height: 100vh !important;
}

.ce_orbit_slider .main-caption {
  position: relative;
  color: #fefefe;
  bottom: 0;
  right: 0;
  background-color: black;
  padding: 1rem 1.5rem 0.5rem 1.5rem;
  width: 100%;
}

@media print, screen and (min-width: 40em) {
  .ce_orbit_slider .main-caption {
    position: absolute;
    bottom: 15%;
    width: auto;
    background-color: rgba(0, 0, 0, 0.8);
  }
}

.ce_orbit_slider .main-caption h3 {
  text-transform: uppercase;
  font-size: 0.875rem;
  font-weight: 400;
}

@media print, screen and (min-width: 40em) {
  .ce_orbit_slider .main-caption h3 {
    font-size: 1.125rem;
  }
}

/* ====================================================================================================================
   Development
   ================================================================================================================= */
.remove-margin {
  margin-left: -10px;
  margin-right: -10px;
}

@media print, screen and (min-width: 40em) {
  .remove-margin {
    margin-left: -15px;
    margin-right: -15px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2plY3QuY3NzIiwicHJvamVjdC5zY3NzIiwiX3NldHRpbmdzLWZvbnRzLnNjc3MiLCJfc2V0dGluZ3MtcHJvamVjdC5zY3NzIiwiZm91bmRhdGlvbi91dGlsL19icmVha3BvaW50LnNjc3MiLCJmb3VuZGF0aW9uL19mb3VuZGF0aW9uLnNjc3MiLCJmb3VuZGF0aW9uL192ZW5kb3Ivbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX25vcm1hbGl6ZS1taXhpbi5zY3NzIiwiZm91bmRhdGlvbi9fdmVuZG9yL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsImZvdW5kYXRpb24vX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmVydGljYWwtcmh5dGhtLnNjc3MiLCJmb3VuZGF0aW9uL19nbG9iYWwuc2NzcyIsIl9zZXR0aW5ncy1mb3VuZGF0aW9uLnNjc3MiLCJmb3VuZGF0aW9uL3V0aWwvX21peGlucy5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Zsb2F0LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsImZvdW5kYXRpb24vdXRpbC9fZmxleC5zY3NzIiwiZm91bmRhdGlvbi9ncmlkL19mbGV4LWdyaWQuc2NzcyIsImZvdW5kYXRpb24vZ3JpZC9fcm93LnNjc3MiLCJmb3VuZGF0aW9uL3V0aWwvX3VuaXQuc2NzcyIsImZvdW5kYXRpb24vZ3JpZC9fZ3V0dGVyLnNjc3MiLCJmb3VuZGF0aW9uL2dyaWQvX2NvbHVtbi5zY3NzIiwiZm91bmRhdGlvbi9ncmlkL19wb3NpdGlvbi5zY3NzIiwiZm91bmRhdGlvbi90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCJmb3VuZGF0aW9uL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsImZvdW5kYXRpb24vdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCJmb3VuZGF0aW9uL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MiLCJmb3VuZGF0aW9uL2Zvcm1zL190ZXh0LnNjc3MiLCJmb3VuZGF0aW9uL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiZm91bmRhdGlvbi9mb3Jtcy9fbGFiZWwuc2NzcyIsImZvdW5kYXRpb24vZm9ybXMvX2hlbHAtdGV4dC5zY3NzIiwiZm91bmRhdGlvbi9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsImZvdW5kYXRpb24vZm9ybXMvX2ZpZWxkc2V0LnNjc3MiLCJmb3VuZGF0aW9uL2Zvcm1zL19zZWxlY3Quc2NzcyIsImZvdW5kYXRpb24vZm9ybXMvX2Vycm9yLnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Nsb3NlLWJ1dHRvbi5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19tZW51LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiZm91bmRhdGlvbi9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX29yYml0LnNjc3MiLCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwibW90aW9uLXVpL3V0aWwvX3RyYW5zaXRpb24uc2NzcyIsIm1vdGlvbi11aS9fY2xhc3Nlcy5zY3NzIiwiX3NldHRpbmdzLW1vdGlvbi11aS5zY3NzIiwibW90aW9uLXVpL3V0aWwvX2tleWZyYW1lLnNjc3MiLCJtb3Rpb24tdWkvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCJtb3Rpb24tdWkvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIm1vdGlvbi11aS9lZmZlY3RzL19oaW5nZS5zY3NzIiwibW90aW9uLXVpL3RyYW5zaXRpb25zL19oaW5nZS5zY3NzIiwibW90aW9uLXVpL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCJtb3Rpb24tdWkvdHJhbnNpdGlvbnMvX3NwaW4uc2NzcyIsIm1vdGlvbi11aS91dGlsL19hbmltYXRpb24uc2NzcyIsInRoZW1lLXByb2plY3QvX2xheW91dC5zY3NzIiwidGhlbWUtcHJvamVjdC9fbmF2aWdhdGlvbi1mb3VuZGF0aW9uLnNjc3MiLCJ0aGVtZS1wcm9qZWN0L19pc290b3BlLnNjc3MiLCJ0aGVtZS1wcm9qZWN0L19wYWdpbmF0aW9uLnNjc3MiLCJ0aGVtZS1wcm9qZWN0L19icmVhZGNydW1icy1tdWx0aS1zdGVwLWluZGljYXRvci5zY3NzIiwidGhlbWUtcHJvamVjdC9fYnV0dG9ucy5zY3NzIiwidGhlbWUtcHJvamVjdC9fdXNlci5zY3NzIiwidGhlbWUtcHJvamVjdC9fYWNjb3JkaW9uLnNjc3MiLCJ0aGVtZS1wcm9qZWN0L19tb2RhbC5zY3NzIiwidGhlbWUtcHJvamVjdC9fcnNjZS0xLTAwMS1pbnRyby10ZXh0LnNjc3MiLCJ0aGVtZS1wcm9qZWN0L19yc2NlLTItMDAxLW1lZGlhLXRlYXNlci5zY3NzIiwidGhlbWUtcHJvamVjdC9fcnNjZS0xLTAzMC10ZWFzZXIuc2NzcyIsInRoZW1lLXByb2plY3QvX3JzY2UtMi0wMTAtb3JiaXQtc2xpZGVyLnNjc3MiLCJfdGhlbWUtZGV2ZWxvcG1lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNDakI7Ozs7OztFQU1FO0FDUEY7O3NIQUVzSDtBQUt0SDtFQUNDLG9CQUFvQjtFQUNwQixnSEFDbUQ7RUFDbkQsaUJBQWlCO0VBQ2pCLG1CQUFvQjtDRklwQjs7QUVERDtFQUNDLG9CQUFvQjtFQUNwQiw0SEFDeUQ7RUFDekQsaUJBQWlCO0VBQ2pCLG1CQUFvQjtDRkdwQjs7QUVBRDtFQUNDLG9CQUFvQjtFQUNwQixvSEFDcUQ7RUFDckQsaUJBQWlCO0VBQ2pCLG1CQUFvQjtDRkVwQjs7QUVDRDtFQUNDLG9CQUFvQjtFQUNwQixrSEFDb0Q7RUFDcEQsaUJBQWlCO0VBQ2pCLG1CQUFvQjtDRkNw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L0NnQjtVQStDaEIsd0JBL0NnQjtDREViOztBQUZEO0VDK0NGLDBCQTlDd0I7TUE4Q3hCLHVCQTlDd0I7VUE4Q3hCLCtCQTlDd0I7Q0RDckI7O0FBRkQ7RUMrQ0YsMEJBN0NzQjtNQTZDdEIsOEJBN0NzQjtDREFuQjs7QUFLRDtFQ3lDRix5QkExQ2lCO01BMENqQixzQkExQ2lCO1VBMENqQix3QkExQ2lCO0NER2Q7O0FBRUQ7RUNxREYsMkJBMURpQjtNQTBEakIsdUJBMURpQjtDRE9kOztBQU5EO0VDeUNGLHVCQXpDa0I7TUF5Q2xCLG9CQXpDa0I7VUF5Q2xCLHNCQXpDa0I7Q0RFZjs7QUFFRDtFQ3FERix5QkF6RGtCO01BeURsQixxQkF6RGtCO0NETWY7O0FBTkQ7RUN5Q0YsMEJBeENnQjtNQXdDaEIsdUJBeENnQjtVQXdDaEIsb0JBeENnQjtDRENiOztBQUVEO0VDcURGLDRCQXhEZ0I7TUF3RGhCLG1CQXhEZ0I7Q0RLYjs7QUFORDtFQ3lDRiwyQkF2Q2tCO01BdUNsQix3QkF2Q2tCO1VBdUNsQixxQkF2Q2tCO0NEQWY7O0FBRUQ7RUNxREYsNkJBdkRrQjtNQXVEbEIsb0JBdkRrQjtDRElmOztBQU1DO0VDbURKLDZCRHBEZ0I7TUNvRGhCLGtCRHBEZ0I7VUNvRGhCLFNEcERnQjtDQUdYOztBQUZEO0VDbURKLDZCRHBEZ0I7TUNvRGhCLGtCRHBEZ0I7VUNvRGhCLFNEcERnQjtDQUdYOztBQUZEO0VDbURKLDZCRHBEZ0I7TUNvRGhCLGtCRHBEZ0I7VUNvRGhCLFNEcERnQjtDQUdYOztBQUZEO0VDbURKLDZCRHBEZ0I7TUNvRGhCLGtCRHBEZ0I7VUNvRGhCLFNEcERnQjtDQUdYOztBQUZEO0VDbURKLDZCRHBEZ0I7TUNvRGhCLGtCRHBEZ0I7VUNvRGhCLFNEcERnQjtDQUdYOztBQUZEO0VDbURKLDZCRHBEZ0I7TUNvRGhCLGtCRHBEZ0I7VUNvRGhCLFNEcERnQjtDQUdYOztBVm1JRDtFVXJJQTtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0VBRkQ7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7RUFGRDtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0VBRkQ7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7Q2Q0MkROOztBSXp1REs7RVVySUE7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7RUFGRDtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0VBRkQ7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7RUFGRDtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0NkaTRETjs7QUk5dkRLO0VVcklBO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0VBRkQ7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7RUFGRDtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0VBRkQ7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7RUFGRDtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtDZHM1RE47O0FJOXdESztFVTFJQTtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0VBRkQ7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7RUFGRDtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0VBRkQ7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7Q2QyNkROOztBSW55REs7RVUxSUE7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7RUFGRDtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0VBRkQ7SUNtREosNkJEcERnQjtRQ29EaEIsa0JEcERnQjtZQ29EaEIsU0RwRGdCO0dBR1g7RUFGRDtJQ21ESiw2QkRwRGdCO1FDb0RoQixrQkRwRGdCO1lDb0RoQixTRHBEZ0I7R0FHWDtFQUZEO0lDbURKLDZCRHBEZ0I7UUNvRGhCLGtCRHBEZ0I7WUNvRGhCLFNEcERnQjtHQUdYO0NkZzhETjs7QWdCdDFEQztFQ2pDQSxpQkNUdUQ7RUZuRHJELG1CQUFrQjtFQUNsQixrQkFBaUI7RUFJakIscUJBQWE7RUFBYixxQkFBYTtFQUFiLGNBQWE7RUFDYiwrQkFsQm1CO0VBa0JuQiw4QkFsQm1CO01Ba0JuQix3QkFsQm1CO1VBa0JuQixvQkFsQm1CO0NBNElwQjs7QUFuQ0Q7RUM5Q0Usd0JBRitEO0VBRy9ELHVCQUgrRDtDRDJEOUQ7O0FaY0M7RVl6Qko7SUM5Q0Usd0JBRitEO0lBRy9ELHVCQUgrRDtHRDJEOUQ7Q2hCKzFESjs7QUlqMURLO0VZekJKO0lDOUNFLHlCQUYrRDtJQUcvRCx3QkFIK0Q7R0QyRDlEO0NoQnMyREo7O0FJeDFESztFWXpCSjtJQzlDRSx5QkFGK0Q7SUFHL0Qsd0JBSCtEO0dEMkQ5RDtDaEI2MkRKOztBSTExREs7RVk5Qko7SUM5Q0UseUJBRitEO0lBRy9ELHdCQUgrRDtHRDJEOUQ7Q2hCbzNESjs7QUlqMkRLO0VZOUJKO0lDOUNFLHlCQUYrRDtJQUcvRCx3QkFIK0Q7R0QyRDlEO0NoQjIzREo7O0FnQnQ0REM7RUFRTSxnQkFBZTtFQUNmLGVBQWM7Q0FDZjs7QUFWTDtFQ2pDQSxnQkFIYTtDRG9EVjs7QUFoQkg7RUNqQ0EsZ0JBSGE7Q0R3RFY7O0FBcEJIO0VHNUdFLGlCQUZxQztFQUdyQyxnQkFIcUM7Q0h1SWxDOztBQXpCTDs7O0VBZ0NJLGdCQUFlO0VBQ2YsZUFBYztDQUNmOztBQUlIO0VBakRBLG9CQTVEYztNQTREZCxrQkE1RGM7VUE0RGQsY0E1RGM7RUdyQ1osd0JBRnFDO0VBR3JDLHVCQUhxQztFSG9FckMsbUJBQWtCO0NBa0ZuQjs7QVpmRztFWWFKO0lHbEpFLHlCQUZxQztJQUdyQyx3QkFIcUM7R0hzSnRDO0NoQnE0REY7O0FnQmo0REM7RUFDRSxZQUFXO0VBQ1gsZUFBYztDQUNmOztBQUdEO0VBQ0UsZ0JBQWU7RUFDZixlQUFjO0VBQ2QsaUJBQWdCO0VBQ2hCLGdCQUFlO0NBQ2hCOztBQUdEO0VEcEtBLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0NDc0taOztBQUVEO0VBQ0Usb0JBQWM7TUFBZCxtQkFBYztVQUFkLGVBQWM7Q0FDZjs7QUFFRDtFQUNFLG9CQUFjO01BQWQsbUJBQWM7VUFBZCxlQUFjO0NBQ2Y7O0FBRUQ7RUFDRSxvQkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztDQUNmOztBQUdDO0VEMUhGLCtCQW5FVTtFQW1FViw4QkFuRVU7TUFtRVYsd0JBbkVVO1VBbUVWLG9CQW5FVTtDQytMUDs7QUFGRDtFRDFIRiwrQkFsRTBCO0VBa0UxQiwrQkFsRTBCO01Ba0UxQixnQ0FsRTBCO1VBa0UxQiw0QkFsRTBCO0NDOEx2Qjs7QUFGRDtFRDFIRiw2QkFqRWdCO0VBaUVoQiw4QkFqRWdCO01BaUVoQiwyQkFqRWdCO1VBaUVoQix1QkFqRWdCO0NDNkxiOztBQUZEO0VEMUhGLDZCQWhFZ0M7RUFnRWhDLCtCQWhFZ0M7TUFnRWhDLG1DQWhFZ0M7VUFnRWhDLCtCQWhFZ0M7Q0M0TDdCOztBQU1DO0VBQ0Usb0JJekwrQztNSnlML0MsdUJJekwrQztVSnlML0MsbUJJekwrQztFSjBML0Msb0JJMUwrQztDSjJMaEQ7O0FBS0Q7RUtuTEosZ0JEaEJnQztDSnFNM0I7O0FBVkQ7RUFDRSxvQkl6TCtDO01KeUwvQyx3Qkl6TCtDO1VKeUwvQyxvQkl6TCtDO0VKMEwvQyxxQkkxTCtDO0NKMkxoRDs7QUFLRDtFS25MSixzQkRicUQ7Q0prTWhEOztBQVZEO0VBQ0Usb0JJekwrQztNSnlML0Msa0JJekwrQztVSnlML0MsY0l6TCtDO0VKMEwvQyxlSTFMK0M7Q0oyTGhEOztBQUtEO0VLbkxKLHVCRGJxRDtDSmtNaEQ7O0FBVkQ7RUFDRSxvQkl6TCtDO01KeUwvQyx3Qkl6TCtDO1VKeUwvQyxvQkl6TCtDO0VKMEwvQyxxQkkxTCtDO0NKMkxoRDs7QUFLRDtFS25MSixpQkRicUQ7Q0prTWhEOztBQVZEO0VBQ0Usb0JJekwrQztNSnlML0Msd0JJekwrQztVSnlML0Msb0JJekwrQztFSjBML0MscUJJMUwrQztDSjJMaEQ7O0FBS0Q7RUtuTEosdUJEYnFEO0NKa01oRDs7QUFWRDtFQUNFLG9CSXpMK0M7TUp5TC9DLGtCSXpMK0M7VUp5TC9DLGNJekwrQztFSjBML0MsZUkxTCtDO0NKMkxoRDs7QUFLRDtFS25MSix1QkRicUQ7Q0prTWhEOztBQVZEO0VBQ0Usb0JJekwrQztNSnlML0Msd0JJekwrQztVSnlML0Msb0JJekwrQztFSjBML0MscUJJMUwrQztDSjJMaEQ7O0FBS0Q7RUtuTEosaUJEYnFEO0NKa01oRDs7QUFWRDtFQUNFLG9CSXpMK0M7TUp5TC9DLHdCSXpMK0M7VUp5TC9DLG9CSXpMK0M7RUowTC9DLHFCSTFMK0M7Q0oyTGhEOztBQUtEO0VLbkxKLHVCRGJxRDtDSmtNaEQ7O0FBVkQ7RUFDRSxvQkl6TCtDO01KeUwvQyxrQkl6TCtDO1VKeUwvQyxjSXpMK0M7RUowTC9DLGVJMUwrQztDSjJMaEQ7O0FBS0Q7RUtuTEosdUJEYnFEO0NKa01oRDs7QUFWRDtFQUNFLG9CSXpMK0M7TUp5TC9DLHdCSXpMK0M7VUp5TC9DLG9CSXpMK0M7RUowTC9DLHFCSTFMK0M7Q0oyTGhEOztBQUtEO0VLbkxKLGlCRGJxRDtDSmtNaEQ7O0FBVkQ7RUFDRSxvQkl6TCtDO01KeUwvQyx3Qkl6TCtDO1VKeUwvQyxvQkl6TCtDO0VKMEwvQyxxQkkxTCtDO0NKMkxoRDs7QUFLRDtFS25MSix1QkRicUQ7Q0prTWhEOztBQVZEO0VBQ0Usb0JJekwrQztNSnlML0MsbUJJekwrQztVSnlML0MsZUl6TCtDO0VKMEwvQyxnQkkxTCtDO0NKMkxoRDs7QUFLRDtFS25MSix1QkRicUQ7Q0prTWhEOztBQUtEO0VEM0pKLDZCQzBKZ0I7TUQxSmhCLGtCQzBKZ0I7VUQxSmhCLFNDMEpnQjtDQUdYOztBQUZEO0VEM0pKLDZCQzBKZ0I7TUQxSmhCLGtCQzBKZ0I7VUQxSmhCLFNDMEpnQjtDQUdYOztBQUZEO0VEM0pKLDZCQzBKZ0I7TUQxSmhCLGtCQzBKZ0I7VUQxSmhCLFNDMEpnQjtDQUdYOztBQUZEO0VEM0pKLDZCQzBKZ0I7TUQxSmhCLGtCQzBKZ0I7VUQxSmhCLFNDMEpnQjtDQUdYOztBQUZEO0VEM0pKLDZCQzBKZ0I7TUQxSmhCLGtCQzBKZ0I7VUQxSmhCLFNDMEpnQjtDQUdYOztBQUZEO0VEM0pKLDZCQzBKZ0I7TUQxSmhCLGtCQzBKZ0I7VUQxSmhCLFNDMEpnQjtDQUdYOztBQUtEO0VBbklKLG9CQUFlO01BQWYsZ0JBQWU7Q0FxSVY7O0FBbklIO0VBR0Esb0JBRnNCO01BRXRCLG1CQUZzQjtVQUV0QixlQUZzQjtFQUd0QixnQkFIc0I7Q0FJdkI7O0FBNEhHO0VBbklKLG9CQUFlO01BQWYsZ0JBQWU7Q0FxSVY7O0FBbklIO0VBR0Esb0JBRnNCO01BRXRCLGtCQUZzQjtVQUV0QixjQUZzQjtFQUd0QixlQUhzQjtDQUl2Qjs7QUE0SEc7RUFuSUosb0JBQWU7TUFBZixnQkFBZTtDQXFJVjs7QUFuSUg7RUFHQSxvQkFGc0I7TUFFdEIsd0JBRnNCO1VBRXRCLG9CQUZzQjtFQUd0QixxQkFIc0I7Q0FJdkI7O0FBNEhHO0VBbklKLG9CQUFlO01BQWYsZ0JBQWU7Q0FxSVY7O0FBbklIO0VBR0Esb0JBRnNCO01BRXRCLGtCQUZzQjtVQUV0QixjQUZzQjtFQUd0QixlQUhzQjtDQUl2Qjs7QUE0SEc7RUFuSUosb0JBQWU7TUFBZixnQkFBZTtDQXFJVjs7QUFuSUg7RUFHQSxvQkFGc0I7TUFFdEIsa0JBRnNCO1VBRXRCLGNBRnNCO0VBR3RCLGVBSHNCO0NBSXZCOztBQTRIRztFQW5JSixvQkFBZTtNQUFmLGdCQUFlO0NBcUlWOztBQW5JSDtFQUdBLG9CQUZzQjtNQUV0Qix3QkFGc0I7VUFFdEIsb0JBRnNCO0VBR3RCLHFCQUhzQjtDQUl2Qjs7QUE0SEc7RUFuSUosb0JBQWU7TUFBZixnQkFBZTtDQXFJVjs7QUFuSUg7RUFHQSxvQkFGc0I7TUFFdEIsd0JBRnNCO1VBRXRCLG9CQUZzQjtFQUd0QixxQkFIc0I7Q0FJdkI7O0FBNEhHO0VBbklKLG9CQUFlO01BQWYsZ0JBQWU7Q0FxSVY7O0FBbklIO0VBR0Esb0JBRnNCO01BRXRCLG9CQUZzQjtVQUV0QixnQkFGc0I7RUFHdEIsaUJBSHNCO0NBSXZCOztBQTJLQztFR3BRQSxpQkFGcUM7RUFHckMsZ0JBSHFDO0NIdVFPOztBQUc1QztFR3hRQSx3QkFGcUM7RUFHckMsdUJBSHFDO0NIMlFnQjs7QVpwSW5EO0VZMERBO0lBQ0Usb0JJekwrQztRSnlML0MsdUJJekwrQztZSnlML0MsbUJJekwrQztJSjBML0Msb0JJMUwrQztHSjJMaEQ7RUFLRDtJS25MSixnQkRoQmdDO0dKcU0zQjtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSixzQkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyxrQkl6TCtDO1lKeUwvQyxjSXpMK0M7SUowTC9DLGVJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLGlCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msa0JJekwrQztZSnlML0MsY0l6TCtDO0lKMEwvQyxlSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSixpQkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLGtCSXpMK0M7WUp5TC9DLGNJekwrQztJSjBML0MsZUkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosaUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0pr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QUkvMUVLO0VZK0hGO0lHcFFBLGlCQUZxQztJQUdyQyxnQkFIcUM7R0h1UU87RUFHNUM7SUd4UUEsd0JBRnFDO0lBR3JDLHVCQUhxQztHSDJRZ0I7Q2hCc3VFeEQ7O0FJMTJFSztFWTBEQTtJQUNFLG9CSXpMK0M7UUp5TC9DLHVCSXpMK0M7WUp5TC9DLG1CSXpMK0M7SUowTC9DLG9CSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosZ0JEaEJnQztHSnFNM0I7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosc0JEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msa0JJekwrQztZSnlML0MsY0l6TCtDO0lKMEwvQyxlSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSixpQkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLGtCSXpMK0M7WUp5TC9DLGNJekwrQztJSjBML0MsZUkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosaUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyxrQkl6TCtDO1lKeUwvQyxjSXpMK0M7SUowTC9DLGVJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLGlCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0MsbUJJekwrQztZSnlML0MsZUl6TCtDO0lKMEwvQyxnQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFLRDtJRDNKSiw2QkMwSmdCO1FEMUpoQixrQkMwSmdCO1lEMUpoQixTQzBKZ0I7R0FHWDtFQUZEO0lEM0pKLDZCQzBKZ0I7UUQxSmhCLGtCQzBKZ0I7WUQxSmhCLFNDMEpnQjtHQUdYO0VBRkQ7SUQzSkosNkJDMEpnQjtRRDFKaEIsa0JDMEpnQjtZRDFKaEIsU0MwSmdCO0dBR1g7RUFGRDtJRDNKSiw2QkMwSmdCO1FEMUpoQixrQkMwSmdCO1lEMUpoQixTQzBKZ0I7R0FHWDtFQUZEO0lEM0pKLDZCQzBKZ0I7UUQxSmhCLGtCQzBKZ0I7WUQxSmhCLFNDMEpnQjtHQUdYO0VBRkQ7SUQzSkosNkJDMEpnQjtRRDFKaEIsa0JDMEpnQjtZRDFKaEIsU0MwSmdCO0dBR1g7RUFLRDtJQW5JSixvQkFBZTtRQUFmLGdCQUFlO0dBcUlWO0VBbklIO0lBR0Esb0JBRnNCO1FBRXRCLG1CQUZzQjtZQUV0QixlQUZzQjtJQUd0QixnQkFIc0I7R0FJdkI7RUE0SEc7SUFuSUosb0JBQWU7UUFBZixnQkFBZTtHQXFJVjtFQW5JSDtJQUdBLG9CQUZzQjtRQUV0QixrQkFGc0I7WUFFdEIsY0FGc0I7SUFHdEIsZUFIc0I7R0FJdkI7RUE0SEc7SUFuSUosb0JBQWU7UUFBZixnQkFBZTtHQXFJVjtFQW5JSDtJQUdBLG9CQUZzQjtRQUV0Qix3QkFGc0I7WUFFdEIsb0JBRnNCO0lBR3RCLHFCQUhzQjtHQUl2QjtFQTRIRztJQW5JSixvQkFBZTtRQUFmLGdCQUFlO0dBcUlWO0VBbklIO0lBR0Esb0JBRnNCO1FBRXRCLGtCQUZzQjtZQUV0QixjQUZzQjtJQUd0QixlQUhzQjtHQUl2QjtFQTRIRztJQW5JSixvQkFBZTtRQUFmLGdCQUFlO0dBcUlWO0VBbklIO0lBR0Esb0JBRnNCO1FBRXRCLGtCQUZzQjtZQUV0QixjQUZzQjtJQUd0QixlQUhzQjtHQUl2QjtFQTRIRztJQW5JSixvQkFBZTtRQUFmLGdCQUFlO0dBcUlWO0VBbklIO0lBR0Esb0JBRnNCO1FBRXRCLHdCQUZzQjtZQUV0QixvQkFGc0I7SUFHdEIscUJBSHNCO0dBSXZCO0VBNEhHO0lBbklKLG9CQUFlO1FBQWYsZ0JBQWU7R0FxSVY7RUFuSUg7SUFHQSxvQkFGc0I7UUFFdEIsd0JBRnNCO1lBRXRCLG9CQUZzQjtJQUd0QixxQkFIc0I7R0FJdkI7RUE0SEc7SUFuSUosb0JBQWU7UUFBZixnQkFBZTtHQXFJVjtFQW5JSDtJQUdBLG9CQUZzQjtRQUV0QixvQkFGc0I7WUFFdEIsZ0JBRnNCO0lBR3RCLGlCQUhzQjtHQUl2QjtDaEJ1akZGOztBSTNnRks7RVl3RkU7SUFDRSxvQkF6TE07UUF5TE4sa0JBekxNO1lBeUxOLGNBekxNO0dBMExQO0NoQnU3RVI7O0FJamhGSztFWStGRTtJRHZLTiwrQkFuRVU7SUFtRVYsOEJBbkVVO1FBbUVWLHdCQW5FVTtZQW1FVixvQkFuRVU7R0M0T0g7RUFGRDtJRHZLTiwrQkFsRTBCO0lBa0UxQiwrQkFsRTBCO1FBa0UxQixnQ0FsRTBCO1lBa0UxQiw0QkFsRTBCO0dDMk9uQjtFQUZEO0lEdktOLDZCQWpFZ0I7SUFpRWhCLDhCQWpFZ0I7UUFpRWhCLDJCQWpFZ0I7WUFpRWhCLHVCQWpFZ0I7R0MwT1Q7RUFGRDtJRHZLTiw2QkFoRWdDO0lBZ0VoQywrQkFoRWdDO1FBZ0VoQyxtQ0FoRWdDO1lBZ0VoQywrQkFoRWdDO0dDeU96QjtFQUdIO0lBQ0Usb0JBQWM7UUFBZCxtQkFBYztZQUFkLGVBQWM7R0FDZjtFQUVEO0lBQ0Usb0JBQWM7UUFBZCxtQkFBYztZQUFkLGVBQWM7R0FDZjtFQUVEO0lBQ0Usb0JBQWM7UUFBZCxtQkFBYztZQUFkLGVBQWM7R0FDZjtDaEIyN0VOOztBZ0J2N0VPO0VBRUksb0JBQTJCO01BQTNCLG1CQUEyQjtVQUEzQixlQUEyQjtDQUs1Qjs7QVp6SEw7RVlrSEU7SUFLTSxvQkF2TkU7UUF1TkYsa0JBdk5FO1lBdU5GLGNBdk5FO0dBeU5MO0NoQjA3RVY7O0FJbmpGSztFWStIRjtJR3BRQSxpQkFGcUM7SUFHckMsZ0JBSHFDO0dIdVFPO0VBRzVDO0lHeFFBLHlCQUZxQztJQUdyQyx3QkFIcUM7R0gyUWdCO0NoQjA3RXhEOztBSTlqRks7RVkwREE7SUFDRSxvQkl6TCtDO1FKeUwvQyx1Qkl6TCtDO1lKeUwvQyxtQkl6TCtDO0lKMEwvQyxvQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLGdCRGhCZ0M7R0pxTTNCO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHNCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLGtCSXpMK0M7WUp5TC9DLGNJekwrQztJSjBML0MsZUkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosaUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyxrQkl6TCtDO1lKeUwvQyxjSXpMK0M7SUowTC9DLGVJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLGlCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msa0JJekwrQztZSnlML0MsY0l6TCtDO0lKMEwvQyxlSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSixpQkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLG1CSXpMK0M7WUp5TC9DLGVJekwrQztJSjBML0MsZ0JJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBS0Q7SUQzSkosNkJDMEpnQjtRRDFKaEIsa0JDMEpnQjtZRDFKaEIsU0MwSmdCO0dBR1g7RUFGRDtJRDNKSiw2QkMwSmdCO1FEMUpoQixrQkMwSmdCO1lEMUpoQixTQzBKZ0I7R0FHWDtFQUZEO0lEM0pKLDZCQzBKZ0I7UUQxSmhCLGtCQzBKZ0I7WUQxSmhCLFNDMEpnQjtHQUdYO0VBRkQ7SUQzSkosNkJDMEpnQjtRRDFKaEIsa0JDMEpnQjtZRDFKaEIsU0MwSmdCO0dBR1g7RUFGRDtJRDNKSiw2QkMwSmdCO1FEMUpoQixrQkMwSmdCO1lEMUpoQixTQzBKZ0I7R0FHWDtFQUZEO0lEM0pKLDZCQzBKZ0I7UUQxSmhCLGtCQzBKZ0I7WUQxSmhCLFNDMEpnQjtHQUdYO0VBS0Q7SUFu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QyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLGlCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msa0JJekwrQztZSnlML0MsY0l6TCtDO0lKMEwvQyxlSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSixpQkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLGtCSXpMK0M7WUp5TC9DLGNJekwrQztJSjBML0MsZUkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosaUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyxtQkl6TCtDO1lKeUwvQyxlSXpMK0M7SUowTC9DLGdCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQUtEO0lEM0pKLDZCQzBKZ0I7UUQxSmhCLGtCQzBKZ0I7WUQxSmhCLFNDMEpnQjtHQUdYO0VBRkQ7SUQzSkosNkJDMEpnQjtRRDFKaEIsa0JDMEpnQjtZ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aEJnQztHSnFNM0I7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosc0JEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msa0JJekwrQztZSnlML0MsY0l6TCtDO0lKMEwvQyxlSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosdUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSixpQkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLGtCSXpMK0M7WUp5TC9DLGNJekwrQztJSjBML0MsZUkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLHVCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9DLG9CSXpMK0M7SUowTC9DLHFCSTFMK0M7R0oyTGhEO0VBS0Q7SUtuTEosaUJEYnFEO0dKa01oRDtFQVZEO0lBQ0Usb0JJekwrQztRSnlML0Msd0JJekwrQztZSnlML0Msb0JJekwrQztJSjBML0MscUJJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyxrQkl6TCtDO1lKeUwvQyxjSXpMK0M7SUowTC9DLGVJMUwrQztHSjJMaEQ7RUFLRDtJS25MSix1QkRicUQ7R0prTWhEO0VBVkQ7SUFDRSxvQkl6TCtDO1FKeUwvQyx3Qkl6TCtDO1lKeUwvQyxvQkl6TCtDO0lKMEwvQyxxQkkxTCtDO0dKMkxoRDtFQUtEO0lLbkxKLGlCRGJxRDtHSmtNaEQ7RUFWRDtJQUNFLG9CSXpMK0M7UUp5TC9DLHdCSXpMK0M7WUp5TC9D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SSxnQkp2UDZDO0VJbVE3QyxpQlo1T1k7RVlvUFosY0FBYTtFQU9iLHNCWjFQa0I7Q1k0UHJCOztBQWpDRDtFQUlJLGdCSnZQNkM7RUltUTdDLGlCWjVPWTtFWW9QWixjQUFhO0VBT2Isc0JaMVBrQjtDWTRQckI7O0FBakNEO0VBSUksZ0JKdlA2QztFSW1RN0MsaUJaNU9ZO0VZb1BaLGNBQWE7RUFPYixzQloxUGtCO0NZNFByQjs7QWxCak5IO0VrQmdMRTtJQUlJLGdCSnZQNkM7R0lvUmhEO0VBakNEO0lBSUksb0JKdlA2QztHSW9SaEQ7RUFqQ0Q7SUFJSSxvQkp2UDZDO0dJb1JoRDtFQWpDRDtJQUlJLGdCSnZQNkM7R0lvUmhEO0VBakNEO0lBSUksZ0JKdlA2QztHSW9SaEQ7RUFqQ0Q7SUFJSSxnQkp2UDZDO0dJb1JoRDtDdEJvb0dSOztBc0I5bkdDO0VBQ0UscUJBQW9CO0VBQ3BCLGVaalVjO0VZa1VkLHNCWnBPMEI7RVlzTzFCLGdCQUFlO0NBYWhCOztBQWxCRDtFQVNJLGFaM082RDtDWStPOUQ7O0FBYkg7RUFnQkksVUFBUztDQUNWOztBQUlIO0VBQ0UsWUFBVztFQUVYLGlCSmxUcUQ7RUltVHJELFVBQVM7RUFDVCxxQlp2UDBCO0VZeVAxQixjQUFhO0VBQ2IsZ0JBQWU7RUFDZixpQ1p0VmtCO0VZdVZsQixlQUFjO0NBQ2Y7O0FBR0Q7OztFQUdFLG9CWmpSMkI7RVlrUjNCLDZCWmhRMEI7RVlpUTFCLGlCWnBSdUI7Q1lxUnhCOztBQUdEO0VBQ0UsbUJBQWtCO0NBQ25COztBQUdEO0VBQ0UscUJaMVF1QjtFWTJRdkIsc0JaN1FtQjtDWThRcEI7O0FBR0Q7RUFDRSxxQlpoUnVCO0NZaVJ4Qjs7QUFHRDtFQUVJLHFCWnJSNEI7RVlzUjVCLGlCQUFnQjtDQUNqQjs7QUFJSDtFQUNFLG9CWjNSMEI7Q1lpUzNCOztBQVBEO0VBSUksc0JaNVIrQjtFWTZSL0Isa0JadFhvQjtDWXVYckI7O0FBSUg7RUFDRSxpQloxVDJCO0VZMlQzQix1Q0oxV3FEO0VJMldyRCwrQlp6WWtCO0NZK1luQjs7QUFURDtFQU1J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QUFFRDs7RTBCdHRIRSxlQUFjO0VBQ2QsK0JBQXNCO1VBQXRCLHVCQUFzQjtFQUN0QixZQUFXO0VBQ1gsa0JBTGlFO0VBTWpFLGlCUkt1RDtFUUp2RCxnQkFBMEI7RUFFMUIsMEJoQjVCb0I7RWdCNkJwQixpQmhCakJnQjtFZ0JrQmhCLDBCaEIzQmM7RWdCNEJkLHVEaEI3QmM7VWdCNkJkLCtDaEI3QmM7RWdCK0JkLHFCaEIyUjBCO0VnQjFSMUIsZ0JSSnVEO0VRS3ZELG9CaEJ6QjRCO0VnQjBCNUIsZWhCbENjO0VnQnFDWiw0RWhCZ1MrRDtFZ0JoUy9ELG9FaEJnUytEO0VnQmhTL0QsNERoQmdTK0Q7RWdCaFMvRCxxRmhCZ1MrRDtFZ0IzUS9ELHlCQUFnQjtLQUFoQixzQkFBZ0I7VUFBaEIsaUJBQWdCO0NBQ2pCOztBMUJrc0hIOztFMEJudEhJLGNBQWE7RUFDYiwwQmhCNUNnQjtFZ0I2Q2hCLDBCaEIzQ1k7RWdCNENaLG9DaEIvQ2tCO1VnQitDbEIsNEJoQi9Da0I7RWdCa0RoQiw0RWhCcVI2RDtFZ0JyUjdELG9FaEJxUjZEO0VnQnJSN0QsNERoQnFSNkQ7RWdCclI3RCxxRmhCcVI2RDtDZ0JuUmhFOztBQVlEO0VBQ0UsZ0JBQWU7Q0FLaEI7O0FBTkQ7RUFJSSxhQUFZO0NBQ2I7O0FBR0g7O0VBSUksZWhCNUVnQjtDZ0I2RWpCOztBQUxIOztFQUlJLGVoQjVFZ0I7Q2dCNkVqQjs7QUFMSDs7RUFJSSxlaEI1RWdCO0NnQjZFakI7O0FBTEg7OztFQVVJLDBCaEJuRmU7RWdCb0ZmLG9CaEJtUDhCO0NnQmxQL0I7O0ExQndzSEw7O0UwQmxzSEkseUJBQWdCO0tBQWhCLHNCQUFnQjtVQUFoQixpQkFBZ0I7RUFDaEIsaUJoQi9FYztDZ0JnRmY7O0FBR0Q7RUFDRSwrQkFBc0I7VUFBdEIsdUJBQXNCO0NBQ3ZCOztBMUJxc0hIOzs7RTJCcDFISSxpQlQ0RXFEO0NTM0V0RDs7QTNCeTFISDs7RTJCcDFISSxzQkFBcUI7RUFDckIseUJBQXdCO0VBRXhCLG9CQUFrRDtFQUNsRCxtQlRrRXFEO0VTakVyRCxpQkFBZ0I7Q0FLakI7O0EzQm0xSEg7O0UyQnIxSE0sZ0JBQWU7Q0FDaEI7O0FBSUg7O0VBRUUscUJBQW1EO0NBQ3BEOztBM0J1MUhIO0UyQm4xSEksWUFBVztDQUNaOztBQ0dEO0VBakJBLGVBQWM7RUFDZCxVQUFTO0VBRVQsb0JWNER1RDtFVTNEdkQsb0JsQnVDNEI7RWtCdEM1QixpQmxCa1YyQjtFa0JqVjNCLGVsQjZCYztDa0JaYjs7QUFORDtFQUxBLGlCVm1EdUQ7RVVsRHZELHFCQUE4RDtDQVMzRDs7QUMxQkg7RUFHRSxvQkFGdUM7RUFHdkMscUJYK0RxRDtFVzlEckQsbUJuQjhVeUI7RW1CN1V6QixlbkJpQ1k7Q21CaENiOztBQ0ZEO0VBQ0UscUJBQWlDO0VBQWpDLHFCQUFpQztFQUFqQyxjQUFpQztFQUNqQyxZQUFXO0VBQ1gsb0JaMkRxRDtFWXhEbkQsMkJBQW9CO01BQXBCLHdCQUFvQjtVQUFwQixxQkFBb0I7Q0FZdkI7O0FBbEJEO0VBVUksdUJwQmtDWTtDb0JqQ2I7O0FBWEg7RUFlTSx1QkFBaUg7Q0FDbEg7O0FBSUw7Ozs7RUFDRSxVQUFTO0VBQ1Qsb0JBQW1CO0NBTXBCOztBQUVEO0VBRUUsZ0JwQmtUd0I7RW9CalR4QiwwQnBCRGtCO0VvQkVsQixvQnBCSGlCO0VvQktqQixlcEJGWTtFb0JHWixtQkFBa0I7RUFDbEIsb0JBQW1CO0VBR2pCLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2Isb0JBQWM7TUFBZCxtQkFBYztVQUFkLGVBQWM7RUFDZCwwQkFBbUI7TUFBbkIsdUJBQW1CO1VBQW5CLG9CQUFtQjtDQWdCdEI7O0FBN0JEO0VBc0JNLGdCQUFpQztDQUNsQzs7QUF2Qkw7RUEwQk0sZUFBZ0M7Q0FDakM7O0FBSUw7RUFFRSxpQkFBZ0I7RUFHZCxvQkFBYTtNQUFiLGtCQUFhO1VBQWIsY0FBYTtFQUNiLGFBQVk7RUFDWixhQUFZO0NBS2Y7O0FBRUQ7RUFFRSxlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUdoQixvQkFBYztNQUFkLG1CQUFjO1VBQWQsZUFBYztDQWtCakI7O0FBekJEOzs7O0VBbUJJLGVBaEc2QztFQWlHN0MsZUFBYztFQUNkLGtCQUFpQjtFQUVqQixnQlpwQ21EO0NZcUNwRDs7QUN0Rkg7RUFDRSxVQUFTO0VBQ1QsV0FBVTtFQUNWLFVBQVM7Q0FDVjs7QUFFRDtFQUNFLGdCQUFlO0VBQ2Ysc0JBQWtDO0NBQ25DOztBQUVEO0VBekJBLG1CYm9FVztFYW5FWCxpQmI4RHVEO0VhN0R2RCwwQnJCK0JvQjtDcUJObkI7O0FBdkJEO0VBRUUsVUFBUztFQUNULHdCYndEcUQ7RWF2RHJELHFCYnVEcUQ7RWF0RHJELG9CckI0QnNCO0NxQjNCdkI7O0FDOENEO0VBMURBLGtCQUZpRTtFQUdqRSxpQmRnRXVEO0VjL0R2RCxnQkFBNEI7RUFFNUIseUJBQWdCO0tBQWhCLHNCQUFnQjtVQUFoQixpQkFBZ0I7RUFDaEIsMEJ0QjhCb0I7RXNCN0JwQixpQnRCeUNnQjtFc0J4Q2hCLDBCdEIrQmM7RXNCN0JkLHFCdEJzVjBCO0VzQnJWMUIsZ0JkdUR1RDtFY3REdkQsb0JBQW1CO0VBQ25CLGV0QnlCYztFQ2tFZCxzT0FBeU47RXFCdkZ2TiwrQkFBOEI7RUFDOUIsd0NBQTBEO0VBQzFELDZCQUE0QjtFQUM1Qix5QkFBd0I7RUFFeEIsc0JBQXVEO0VBSXZELDRFdEJpVitEO0VzQmpWL0Qsb0V0QmlWK0Q7RXNCalYvRCw0RHRCaVYrRDtFc0JqVi9ELHFGdEJpVitEO0NzQjlTaEU7O0FyQjZDRDtFcUIvQ0E7SXJCa0RJLHdXQUF1VztHcUJoRDFXO0NoQ203SEY7O0FnQ2w5SEM7RUFDRSxjQUFhO0VBQ2IsMEJ0QktnQjtFc0JKaEIsMEJ0Qk1ZO0VzQkxaLG9DdEJFa0I7VXNCRmxCLDRCdEJFa0I7RXNCQ2hCLDRFdEJzVTZEO0VzQnRVN0Qsb0V0QnNVNkQ7RXNCdFU3RCw0RHRCc1U2RDtFc0J0VTdELHFGdEJzVTZEO0NzQnBVaEU7O0FBR0Q7RUFDRSwwQnRCUmlCO0VzQlNqQixvQnRCOFRnQztDc0I3VGpDOztBQUdEO0VBQ0UsY0FBYTtDQUNkOztBQUVEO0VBQ0UsYUFBWTtFQUNa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LDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLGlDQUZ5QjtNQUV6Qiw2QkFGeUI7VUFFekIseUJBRnlCO0VDdkJ2Qix3REFBdUM7RUFBdkMsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFHekMsb0NBQTJCO1VBQTNCLDRCQUEyQjtDSlIxQjs7QUFVRDtFR29CQSxxQ0FGeUI7TUFFekIsaUNBRnlCO1VBRXpCLDZCQUZ5QjtDSGhCeEI7O0FBZEQ7RUNsQkYsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLGlDQUZ5QjtNQUV6Qiw2QkFGeUI7VUFFekIseUJBRnlCO0VDdkJ2Qix3REFBdUM7RUFBdkMsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFHekMsb0NBQTJCO1VBQTNCLDRCQUEyQjtDSlIxQjs7QUFVRDtFR29CQSxxQ0FGeUI7TUFFekIsaUNBRnlCO1VBRXpCLDZCQUZ5QjtDSGhCeEI7O0FBZEQ7RUNsQkYsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLFdGaENrQztFSUFsQyxxQ0FBNEI7RUFBNUIsNkJBQTRCO0NMRTNCOztBQVVEO0VHb0JBLFdGaENxQztDRGNwQzs7QUFkRDtFQ2xCRixtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsV0YvQmtDO0VJRGxDLHFDQUE0QjtFQUE1Qiw2QkFBNEI7Q0xFM0I7O0FBVUQ7RUdvQkEsV0YvQnFDO0NEYXBDOztBQWREO0VDbEJGLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYix1REdyQ21DO1VIcUNuQywrQ0dyQ21DO0VIcUNuQyw4QkY1Qm1EO01FNEJuRCwwQkY1Qm1EO1VFNEJuRCxzQkY1Qm1EO0VNR2pELHdEQUF1QztFQUF2QyxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQjtDUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCO0NQSjVCOztBQWREO0VDbEJGLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYix1REdwQ3FDO1VIb0NyQywrQ0dwQ3FDO0VIb0NyQyxnQ0YzQnFEO01FMkJyRCw0QkYzQnFEO1VFMkJyRCx3QkYzQnFEO0VNRW5ELHdEQUF1QztFQUF2QyxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQjtDUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCO0NQSjVCOztBQWREO0VDbEJGLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYixzREduQ2lDO1VIbUNqQyw4Q0duQ2lDO0VIbUNqQyxpQ0YxQnNEO01FMEJ0RCw2QkYxQnNEO1VFMEJ0RCx5QkYxQnNEO0VNQ3BELHdEQUF1QztFQUF2QyxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQjtDUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCO0NQSjVCOztBQWREO0VDbEJGLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYixzREdsQytCO1VIa0MvQiw4Q0dsQytCO0VIa0MvQiwrQkZ6Qm9EO01FeUJwRCwyQkZ6Qm9EO1VFeUJwRCx1QkZ6Qm9EO0VNQWxELHdEQUF1QztFQUF2QyxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUEyQjtDUE41Qjs7QUFVRDtFR29CQSxvREdWNEM7VUhVNUMsNENHVjRDO0VDSjFDLFdBQTJCO0NQSjVCOztBQWREO0VDbEJGLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYix1REdyQ21DO1VIcUNuQywrQ0dyQ21DO0VIcUNuQyxpQ0dDZTtNSERmLDZCR0NlO1VIRGYseUJHQ2U7RUMxQmIsd0RBQXVDO0VBQXZDLGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQTJCO0NQTjVCOztBQVVEO0VHb0JBLG9ER1Y0QztVSFU1Qyw0Q0dWNEM7RUNKMUMsV0FBMkI7Q1BKNUI7O0FBZEQ7RUNsQkYsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLHVER3BDcUM7VUhvQ3JDLCtDR3BDcUM7RUhvQ3JDLGlDR0NlO01IRGYsNkJHQ2U7VUhEZix5QkdDZTtFQzFCYix3REFBdUM7RUFBdkMsZ0RBQXVDO0VBQXZDLHdDQUF1QztFQUF2QywyREFBdUM7RUFDdkMsV0FBMkI7Q1BONUI7O0FBVUQ7RUdvQkEsb0RHVjRDO1VIVTVDLDRDR1Y0QztFQ0oxQyxXQUEyQjtDUEo1Qjs7QUFkRDtFQ2xCRixtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5Qyw4QkZ0Qm1EO01Fc0JuRCwwQkZ0Qm1EO1VFc0JuRCxzQkZ0Qm1EO0VNSGpELHdEQUF1QztFQUF2QyxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QjtDUE4vQjs7QUFVRDtFR29CQSx1REdyQ21DO1VIcUNuQywrQ0dyQ21DO0VDdUJqQyxXQUE4QjtDUEovQjs7QUFkRDtFQ2xCRixtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxnQ0ZyQnFEO01FcUJyRCw0QkZyQnFEO1VFcUJyRCx3QkZyQnFEO0VNSm5ELHdEQUF1QztFQUF2QyxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QjtDUE4vQjs7QUFVRDtFR29CQSx1REdwQ3FDO1VIb0NyQywrQ0dwQ3FDO0VDc0JuQyxXQUE4QjtDUEovQjs7QUFkRDtFQ2xCRixtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxpQ0ZwQnNEO01Fb0J0RCw2QkZwQnNEO1VFb0J0RCx5QkZwQnNEO0VNTHBELHdEQUF1QztFQUF2QyxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QjtDUE4vQjs7QUFVRDtFR29CQSxzREduQ2lDO1VIbUNqQyw4Q0duQ2lDO0VDcUIvQixXQUE4QjtDUEovQjs7QUFkRDtFQ2xCRixtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QywrQkZuQm9EO01FbUJwRCwyQkZuQm9EO1VFbUJwRCx1QkZuQm9EO0VNTmxELHdEQUF1QztFQUF2QyxnREFBdUM7RUFBdkMsd0NBQXVDO0VBQXZDLDJEQUF1QztFQUN2QyxXQUE4QjtDUE4vQjs7QUFVRDtFR29CQSxzREdsQytCO1VIa0MvQiw4Q0dsQytCO0VDb0I3QixXQUE4QjtDUEovQjs7QUFkRDtFQ2xCRixtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RHUjhDO1VIUTlDLDRDR1I4QztFSFE5QyxpQ0dDZTtNSERmLDZCR0NlO1VIRGYseUJHQ2U7RUMxQmIsd0RBQXVDO0VBQXZDLGdEQUF1QztFQUF2Qyx3Q0FBdUM7RUFBdkMsMkRBQXVDO0VBQ3ZDLFdBQThCO0NQTi9COztBQVVEO0VHb0JBLHVER3JDbUM7VUhxQ25DLCtDR3JDbUM7RUN1QmpDLFdBQThCO0NQSi9COztBQWREO0VDbEJGLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYixvREdSOEM7VUhROUMsNENHUjhDO0VIUTlDLGlDR0NlO01IRGYsNkJHQ2U7VUhEZix5QkdDZTtFQzFCYix3REFBdUM7RUFBdkMsZ0RBQXVDO0VBQXZDLHdDQUF1QztF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Qix1QzNDNUpvQjtFMkNpS3BCLGdCQUFxQjtFQUNyQixrQkFBbUI7RUFlbkIsMEIzQ3ZMaUI7QzJDd0xqQjs7QWpEaEZLO0VpRDZFTjtJQWpCRSxzQzNDOUptQjtJMkMrSm5CLHVDM0MvSm1CO0cyQ2tMcEI7Q3JEcXpMQTs7QXFEbnpMRDtFckN0SEUsb0JJMUZxRDtNSjBGckQsbUJJMUZxRDtVSjBGckQsZUkxRnFEO0VKOEZuRCxnQkk5Rm1EO0VEUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RUh3RXJDLGdCSS9EbUQ7Q2lDa050RDs7QWpEcEZLO0VpRGtGTjtJbEN2TkkseUJBRnFDO0lBR3JDLHdCQUhxQztHa0MyTnhDO0NyRGcwTEE7O0FxRDl6TEQ7RXJDMUhFLG9CSTFGcUQ7TUowRnJELG1CSTFGcUQ7VUowRnJELGVJMUZxRDtFSjhGbkQsZ0JJOUZtRDtFRFBuRCx3QkFGcUM7RUFHckMsdUJBSHFDO0VId0VyQyxnQkkvRG1EO0NpQ3lOdEQ7O0FqRDNGSztFaURzRk47SWxDM05JLHlCQUZxQztJQUdyQyx3QkFIcUM7R2tDa094QztDckR3MExBOztBSW42TEs7RWlEc0ZOO0lyQzFIRSxvQkkxRnFEO1FKMEZyRCxrQkkxRnFEO1lKMEZyRCxjSTFGcUQ7SUo4Rm5ELGVJOUZtRDtJRFBuRCx3QkFGcUM7SUFHckMsdUJBSHFDO0lId0VyQyxlSS9EbUQ7R2lDeU50RDtDckRrMUxBOztBSTc2TEs7RWlEc0ZOO0lsQzNOSSx5QkFGcUM7SUFHckMsd0JBSHFDO0drQ2tPeEM7Q3JEeTFMQTs7QXFEdjFMRDtFckNqSUUsb0JJMUZxRDtNSjBGckQsbUJJMUZxRDtVSjBGckQsZUkxRnFEO0VKOEZuRCxnQkk5Rm1EO0VEUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RUh3RXJDLGdCSS9EbUQ7Q2lDbU90RDs7QWpEckdLO0VpRDZGTjtJbENsT0kseUJBRnFDO0lBR3JDLHdCQUhxQztHa0M0T3hDO0NyRDgxTEE7O0FJbjhMSztFaUQ2Rk47SXJDaklFLG9CSTFGcUQ7UUowRnJELGtCSTFGcUQ7WUowRnJELGNJMUZxRDtJSjhGbkQsZUk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLGVJL0RtRDtHaUNtT3REO0NyRHcyTEE7O0FJNzhMSztFaUQ2Rk47SWxDbE9JLHlCQUZxQztJQUdyQyx3QkFIcUM7R2tDNE94QztDckQrMkxBOztBSXA5TEs7RWlENkZOO0lyQ2pJRSxvQkkxRnFEO1FKMEZyRCx3QkkxRnFEO1lKMEZyRCxvQkkxRnFEO0lKOEZuRCxxQkk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLHFCSS9EbUQ7R2lDbU90RDtDckR5M0xBOztBSTk5TEs7RWlENkZOO0lsQ2xPSSx5QkFGcUM7SUFHckMsd0JBSHFDO0drQzRPeEM7Q3JEZzRMQTs7QXFEOTNMRDtFckMzSUUsb0JJMUZxRDtNSjBGckQsbUJJMUZxRDtVSjBGckQsZUkxRnFEO0VKOEZuRCxnQkk5Rm1EO0VEUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RUh3RXJDLGdCSS9EbUQ7Q2lDNk90RDs7QWpEL0dLO0VpRHVHTjtJbEM1T0kseUJBRnFDO0lBR3JDLHdCQUhxQztHa0NzUHhDO0NyRHE0TEE7O0FJcC9MSztFaUR1R047SXJDM0lFLG9CSTFGcUQ7UUowRnJELGtCSTFGcUQ7WUowRnJELGNJMUZxRDtJSjhGbkQsZUk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLGVJL0RtRDtHaUM2T3REO0NyRCs0TEE7O0FJOS9MSztFaUR1R047SWxDNU9JLHlCQUZxQztJQUdyQyx3QkFIcUM7R2tDc1B4QztDckRzNUxBOztBSXJnTUs7RWlEdUdOO0lyQzNJRSxvQkkxRnFEO1FKMEZyRCxrQkkxRnFEO1lKMEZyRCxjSTFGcUQ7SUo4Rm5ELGVJOUZtRDtJRFBuRCx3QkFGcUM7SUFHckMsdUJBSHFDO0lId0VyQyxlSS9EbUQ7R2lDNk90RDtDckRnNkxBOztBSS9nTUs7RWlEdUdOO0lsQzVPSSx5QkFGcUM7SUFHckMsd0JBSHFDO0drQ3NQeEM7Q3JEdTZMQTs7QXFEcjZMRDtFckNySkUsb0JJMUZxRDtNSjBGckQsbUJJMUZxRDtVSjBGckQsZUkxRnFEO0VKOEZuRCxnQkk5Rm1EO0VEUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RUh3RXJDLGdCSS9EbUQ7Q2lDdVB0RDs7QWpEekhLO0VpRGlITjtJbEN0UEkseUJBRnFDO0lBR3JDLHdCQUhxQztHa0NnUXhDO0NyRDQ2TEE7O0FJcmlNSztFaURpSE47SXJDckpFLG9CSTFGcUQ7UUowRnJELGtCSTFGcUQ7WUowRnJELGNJMUZxRDtJSjhGbkQsZUk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLGVJL0RtRDtHaUN1UHREO0NyRHM3TEE7O0FJL2lNSztFaURpSE47SWxDdFBJLHlCQUZxQztJQUdyQyx3QkFIcUM7R2tDZ1F4QztDckQ2N0xBOztBSXRqTUs7RWlEaUhOO0lyQ3JKRSxvQkkxRnFEO1FKMEZyRCx3QkkxRnFEO1lKMEZyRCxvQkkxRnFEO0lKOEZuRCxxQkk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLHFCSS9EbUQ7R2lDdVB0RDtDckR1OExBOztBSWhrTUs7RWlEaUhOO0lsQ3RQSSx5QkFGcUM7SUFHckMsd0JBSHFDO0drQ2dReEM7Q3JEODhMQTs7QXFENThMRDtFckMvSkUsb0JJMUZxRDtNSjBGckQsbUJJMUZxRDtVSjBGckQsZUkxRnFEO0VKOEZuRCxnQkk5Rm1EO0VEUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RUh3RXJDLGdCSS9EbUQ7Q2lDaVF0RDs7QWpEbklLO0VpRDJITjtJbENoUUkseUJBRnFDO0lBR3JDLHdCQUhxQztHa0MwUXhDO0NyRG05TEE7O0FJdGxNSztFaUQySE47SXJDL0pFLG9CSTFGcUQ7UUowRnJELGtCSTFGcUQ7WUowRnJELGNJMUZxRDtJSjhGbkQsZUk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLGVJL0RtRDtHaUNpUXREO0NyRDY5TEE7O0FJaG1NSztFaUQySE47SWxDaFFJLHlCQUZxQztJQUdyQyx3QkFIcUM7R2tDMFF4QztDckRvK0xBOztBSXZtTUs7RWlEMkhOO0lyQy9KRSxvQkkxRnFEO1FKMEZyRCx3QkkxRnFEO1lKMEZyRCxvQkkxRnFEO0lKOEZuRCxxQkk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLHFCSS9EbUQ7R2lDaVF0RDtDckQ4K0xBOztBSWpuTUs7RWlEMkhOO0lsQ2hRSSx5QkFGcUM7SUFHckMsd0JBSHFDO0drQzBReEM7Q3JEcS9MQTs7QXFEbi9MRDtFckN6S0Usb0JJMUZxRDtNSjBGckQsbUJJMUZxRDtVSjBGckQsZUkxRnFEO0VKOEZuRCxnQkk5Rm1EO0VEUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RUh3RXJDLGdCSS9EbUQ7Q2lDMlF0RDs7QWpEN0lLO0VpRHFJTjtJbEMxUUkseUJBRnFDO0lBR3JDLHdCQUhxQztHa0NvUnhDO0NyRDAvTEE7O0FJdm9NSztFaURxSU47SXJDektFLG9CSTFGcUQ7UUowRnJELGtCSTFGcUQ7WUowRnJELGNJMUZxRDtJSjhGbkQsZUk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLGVJL0RtRDtHaUMyUXREO0NyRG9nTUE7O0FJanBNSztFaURxSU47SWxDMVFJLHlCQUZxQztJQUdyQyx3QkFIcUM7R2tDb1J4QztDckQyZ01BOztBSXhwTUs7RWlEcUlOO0lyQ3pLRSxvQkkxRnFEO1FKMEZyRCx3QkkxRnFEO1lKMEZyRCxvQkkxRnFEO0lKOEZuRCxxQkk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLHFCSS9EbUQ7R2lDMlF0RDtDckRxaE1BOztBSWxxTUs7RWlEcUlOO0lsQzFRSSx5QkFGcUM7SUFHckMsd0JBSHFDO0drQ29SeEM7Q3JENGhNQTs7QXFEMWhNRDtFckNuTEUsb0JJMUZxRDtNSjBGckQsbUJJMUZxRDtVSjBGckQsZUkxRnFEO0VKOEZuRCxnQkk5Rm1EO0VEUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RUh3RXJDLGdCSS9EbUQ7Q2lDcVJ0RDs7QWpEdkpLO0VpRCtJTjtJbENwUkkseUJBRnFDO0lBR3JDLHdCQUhxQztHa0M4UnhDO0NyRGlpTUE7O0FJeHJNSztFaUQrSU47SXJDbkxFLG9CSTFGcUQ7UUowRnJELGtCSTFGcUQ7WUowRnJELGNJMUZxRDtJSjhGbkQsZUk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLGVJL0RtRDtHaUNxUnREO0NyRDJpTUE7O0FJbHNNSztFaUQrSU47SWxDcFJJLHlCQUZxQztJQUdyQyx3QkFIcUM7R2tDOFJ4QztDckRrak1BOztBSXpzTUs7RWlEK0lOO0lyQ25MRSxvQkkxRnFEO1FKMEZyRCx3QkkxRnFEO1lKMEZyRCxvQkkxRnFEO0lKOEZuRCxxQkk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLHFCSS9EbUQ7R2lDcVJ0RDtDckQ0ak1BOztBSW50TUs7RWlEK0lOO0lsQ3BSSSx5QkFGcUM7SUFHckMsd0JBSHFDO0drQzhSeEM7Q3JEbWtNQTs7QXFEamtNRDtFQUNDLHVCQUEyQjtFQUMzQiwrQkFBK0I7TUFBL0IsOEJBQStCO1VBQS9CLDBCQUErQjtFQUMvQiwyQkFBMkI7Q0FDM0I7O0FBRUQ7O3NIQUVzSDtBQUt0SDtFQUNDLHlCQUE0QjtFQUM1Qiw4QkFBOEI7Q0FDOUI7O0FBSUQ7RUFDQyxvQmxEN1NtQjtDa0Q4U25COztBQUVEO0VBQ0Msb0JsRGpUbUI7Q2tEc1RuQjs7QWpEdkxLO0VpRGlMTjtJQUdFLFlBQW1CO0lBQ25CLG1CbERwVGtCO0drRHNUbkI7Q3JEZ2tNQTs7QXFEOWpNRDtFQUNDLG9CbER6VG1CO0NrRDhUbkI7O0FqRC9MSztFaUR5TE47SUFHRSxhQUFtQjtJQUNuQixrQmxENVRrQjtHa0Q4VG5CO0NyRG1rTUE7O0FxRC9qTUQ7RUFBUyxVQUFVO0NBQUs7O0FBR3hCOzs7OztFQUlTLFdBQVc7Q0FBSzs7QUFHekI7O0VBRUMsc0JBQTBCO0VBQzFCLG1CbkNuUndEO0VtQ29SeEQsaUJsRC9WbUI7RWtEZ1duQixlM0NoVGU7RTJDaVRmLG9CM0N2VGU7QzJDd1RmOztBQUVEOztzSEFFc0g7QUFFdEg7RUFDQyx1QmxEbFc2QjtDa0RtVzdCOztBQUVEOztFQUdDLHVCbER4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MEZyRCxlSTFGcUQ7RUo4Rm5ELGdCSTlGbUQ7RURQbkQsd0JBRnFDO0VBR3JDLHVCQUhxQztFSHdFckMsZ0JJL0RtRDtDbUNvTHREOztBbkR0REs7RW1EOENOO0lwQ25MSSx5QkFGcUM7SUFHckMsd0JBSHFDO0dvQzZMeEM7Q3ZENCtOQTs7QUlsaU9LO0VtRDhDTjtJdkNsRkUsb0JJMUZxRDtRSjBGckQsa0JJMUZxRDtZSjBGckQsY0kxRnFEO0lKOEZuRCxlSTlGbUQ7SURQbkQsd0JBRnFDO0lBR3JDLHVCQUhxQztJSHdFckMsZUkvRG1EO0dtQ29MdEQ7Q3ZEcy9OQTs7QUk1aU9LO0VtRDhDTjtJcENuTEkseUJBRnFDO0lBR3JDLHdCQUhxQztHb0M2THhDO0N2RDYvTkE7O0FJbmpPSztFbUQ4Q047SXZDbEZFLG9CSTFGcUQ7UUowRnJELGtCSTFGcUQ7WUowRnJELGNJMUZxRDtJSjhGbkQsZUk5Rm1EO0lEUG5ELHdCQUZxQztJQUdyQyx1QkFIcUM7SUh3RXJDLGVJL0RtRDtHbUNvTHREO0N2RHVnT0E7O0FJN2pPSztFbUQ4Q047SXBDbkxJLHlCQUZxQztJQUdyQyx3QkFIcUM7R29DNkx4QztDdkQ4Z09BOztBdUR4L05EO0V2Q2hIRSxvQkkxRnFEO01KMEZyRCxtQkkxRnFEO1VKMEZyRCxlSTFGcUQ7RUo4Rm5ELGdCSTlGbUQ7RURQbkQsd0JBRnFDO0VBR3JDLHVCQUhxQztFSHdFckMsZ0JJL0RtRDtDbUMrTXREOztBbkRqRks7RW1ENEVOO0lwQ2pOSSx5QkFGcUM7SUFHckMsd0JBSHFDO0dvQ3dOeEM7Q3ZEa2dPQTs7QUk5a09LO0VtRHVFTjtJdkNoSEUsb0JJMUZxRDtRSjBGckQsa0JJMUZxRDtZSjBGckQsY0kxRnFEO0lKOEZuRCxlSTlGbUQ7SURQbkQsd0JBRnFDO0lBR3JDLHVCQUhxQztJSHdFckMsZUkvRG1EO0dtQytNdEQ7Q3ZENGdPQTs7QUk3bE9LO0VtRDRFTjtJcENqTkkseUJBRnFDO0lBR3JDLHdCQUhxQztHb0N3TnhDO0N2RG1oT0E7O0F1RDdnT0Q7RUFBaUMsbUJBQW1CO0NBQUs7O0FBRXpEO0VBQ0MsY0FBaUI7RUFDakIsbUJBQW1CO0NBQ25COztBQUVEO0VBQ0MsZUFBZTtFQUNmLFlBQWM7Q0FDZDs7QUFFRDtFQUNDLG9CQUFvQjtFQUNwQixtQkFBb0I7Q0FDcEI7O0FBRUQ7RUFDQyxtQkFBMEI7RUFDMUIsT0FBbUI7RUFDbkIsU0FBbUI7RUFDbkIsWUFBc0I7RUFDdEIsa0JBQTJCO0VBQzNCLFVBQW1CO0VBQ25CLG1FQUErRTtFQUMvRSwyQkFBMkI7Q0FDM0I7O0FBTUQ7RUFDQyxvQkFBb0I7Q0FDcEI7O0FBRUQ7O0VBR0MseUJBQTRCO0VBQzVCLDhCQUE4QjtDQUM5Qjs7QUFFRDtFdEM1TEUsaUJDVHVEO0VGbkRyRCxtQkFBa0I7RUFDbEIsa0JBQWlCO0VBSWpCLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsK0JBbEJtQjtFQWtCbkIsOEJBbEJtQjtNQWtCbkIsd0JBbEJtQjtVQWtCbkIsb0JBbEJtQjtFdUNzUXRCLGdCQUFnQjtFcERwT2hCLG1CQUEyQztFQUMzQyxvQkFBMkM7Q29EcU8zQzs7QW5EdElLO0VtRGtJTjtJcEQvTkUsbUJBQTRDO0lBQzVDLG9CQUE0QztHb0RrTzdDO0N2RHdoT0E7O0F1RHRoT0Q7O0V2QzVLRSxvQkkxRnFEO01KMEZyRCxtQkkxRnFEO1VKMEZyRCxlSTFGcUQ7RUo4Rm5ELGdCSTlGbUQ7RURQbkQsd0JBRnFDO0VBR3JDLHVCQUhxQztFSHdFckMsZ0JJL0RtRDtDbUM0UXREOztBbkQ5SUs7RW1Ed0lOOztJcEM3UUkseUJBRnFDO0lBR3JDLHdCQUhxQztHb0NxUnhDO0N2RGlpT0E7O0FJL3FPSztFbUR3SU47O0l2QzVLRSxvQkkxRnFEO1FKMEZyRCxrQkkxRnFEO1lKMEZyRCxjSTFGcUQ7SUo4Rm5ELGVJOUZtRDtJRFBuRCx3QkFGcUM7SUFHckMsdUJBSHFDO0lId0VyQyxlSS9EbUQ7R21DNFF0RDtDdkQ0aU9BOztBSTFyT0s7RW1Ed0lOOztJcEM3UUkseUJBRnFDO0lBR3JDLHdCQUhxQztHb0NxUnhDO0N2RG9qT0E7O0F1RGxqT0Q7RUFDQyxpQjdDMU9vQjtFTytCbkIsaUJDVHVEO0VGbkRyRCxtQkFBa0I7RUFDbEIsa0JBQWlCO0VBSWpCLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsK0JBbEJtQjtFQWtCbkIsOEJBbEJtQjtNQWtCbkIsd0JBbEJtQjtVQWtCbkIsb0JBbEJtQjtFdUNxUnRCLGdCQUFpQjtFcERuUGpCLG1CQUEyQztFQUMzQyxvQkFBMkM7Q29Eb1AzQzs7QW5EckpLO0VtRGdKTjtJcEQ3T0UsbUJBQTRDO0lBQzVDLG9CQUE0QztHb0RpUDdDO0N2RGdrT0E7O0F1RDlqT0Q7RXZDM0xFLG9CSTFGcUQ7TUowRnJELHdCSTFGcUQ7VUowRnJELG9CSTFGcUQ7RUo4Rm5ELHFCSTlGbUQ7RURQbkQsd0JBRnFDO0VBR3JDLHVCQUhxQztFSHdFckMscUJJL0RtRDtDbUN1UnREOztBbkR6Sks7RW1EdUpOO0lwQzVSSSx5QkFGcUM7SUFHckMsd0JBSHFDO0dvQ2dTeEM7Q3ZEMmtPQTs7QXVEcGtPRDtFQUNDLG1CckNwT3dEO0VxQ3FPeEQsaUI3QzNQb0I7RTZDNFBwQiwwQkFBMEI7RUFDMUIsaUJBQWtCO0VBQ2xCLGlCcER0VG1CO0NvRGdVbkI7O0FuRC9LSztFbURnS047SUFPRSxjQUFjO0dBUWY7Q3ZEbWtPQTs7QUlsdk9LO0VtRGdLTjtJQVVFLG9CckM3T3VEO0dxQ2tQeEQ7Q3ZEeWtPQTs7QUl4dk9LO0VtRGdLTjtJQWFFLG9CckNoUHVEO0dxQ2tQeEQ7Q3ZEK2tPQTs7QXVEN2tPRDtFQUNDLG9CN0MzUW9CO0U2QzRRcEIsMEJBQTBCO0VBQzFCLHNCcEQxVDhCO0NvRDJUOUI7O0FBRUQ7RUFDQyxpQkFBaUI7RUFDakIsb0JyQzVQd0Q7Q3FDZ1F4RDs7QW5EN0xLO0VtRHVMTjtJQUlFLGtCckM5UHVEO0dxQ2dReEQ7Q3ZEa2xPQTs7QXVEaGxPRDtFQUNDLG1CckNuUXdEO0VxQ29ReEQsb0JwRC9Ub0I7Q29EZ1VwQjs7QUFFRDtFQUVDLFlBQW1CO0VBQ25CLFlBQW1CO0VBQ25CLG1CQUFtQjtDQUNuQjs7QUFFRDtFQUND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Rm1EO0VEUG5ELHdCQUZxQztFQUdyQyx1QkFIcUM7RUh3RXJDLGVJL0RtRDtDdUNMdEQ7O0F2RG1JSztFdUR0SU47O0l4Q0NJLHlCQUZxQztJQUdyQyx3QkFIcUM7R3dDSXhDO0MzRG8vUUE7O0EyRGwvUUQ7Ozs7RTNDNkZFLG9CSTFGcUQ7TUowRnJELG1CSTFGcUQ7VUowRnJELGVJMUZxRDtFSjhGbkQsZ0JJOUZtRDtFRFBuRCx3QkFGcUM7RUFHckMsdUJBSHFDO0VId0VyQyxnQkkvRG1EO0N1Q0V0RDs7QXZENEhLO0V1RGpJTjs7OztJeENKSSx5QkFGcUM7SUFHckMsd0JBSHFDO0d3Q1d4QztDM0RrZ1JBOztBMkQ5L1FEOztFMUM4REUsaUJDVHVEO0VGbkRyRCxtQkFBa0I7RUFDbEIsa0JBQWlCO0VBSWpCLHFCQUFhO0VBQWIscUJBQWE7RUFBYixjQUFhO0VBQ2IsK0JBbEJtQjtFQWtCbkIsOEJBbEJtQjtNQWtCbkIsd0JBbEJtQjtVQWtCbkIsb0JBbEJtQjtFMkNhdEIsZ0JBQWdCO0V4RHFCaEIsbUJBQTJDO0VBQzNDLG9CQUEyQztDd0RwQjNDOztBdkRtSEs7RXVEeEhOOztJeEQyQkUsbUJBQTRDO0lBQzVDLG9CQUE0QztHd0R2QjdDO0MzRDZnUkE7O0EyRDNnUkQ7O0UzQzZFRSxvQkkxRnFEO01KMEZyRCxtQkkxRnFEO1VKMEZyRCxlSTFGcUQ7RUo4Rm5ELGdCSTlGbUQ7RURQbkQsd0JBRnFDO0VBR3JDLHVCQUhxQztFSHdFckMsZ0JJL0RtRDtDdUNtQnREOztBdkQyR0s7RXVEakhOOztJeENwQkkseUJBRnFDO0lBR3JDLHdCQUhxQztHd0M0QnhDO0MzRHNoUkE7O0FJMzZRSztFdURqSE47O0kzQzZFRSxvQkkxRnFEO1FKMEZyRCxrQkkxRnFEO1lKMEZyRCxjSTFGcUQ7SUo4Rm5ELGVJOUZtRDtJRFBuRCx3QkFGcUM7SUFHckMsdUJBSHFDO0lId0VyQyxlSS9EbUQ7R3VDbUJ0RDtDM0RpaVJBOztBSXQ3UUs7RXVEakhOOztJeENwQkkseUJBRnFDO0lBR3JDLHdCQUhxQztHd0M0QnhDO0MzRHlp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LFVBQW9CO0VBQ3BCLFNBQW9CO0VBQ3BCLHdCdkRnQ2U7RXVEL0JmLG1DQUE0QztFQUM1QyxZQUF1QjtDQU92Qjs7QTdEc0hLO0U2RHBJTjtJQVNFLG1CQUEyQjtJQUMzQixZQUFzQjtJQUN0QixZQUF1QjtJQUN2QixxQ3ZEeUJjO0d1RHZCZjtDakV3d1JBOztBaUV0d1JEO0VBQ0MsMEJBQTBCO0VBQzFCLG9CL0MrQ3dEO0UrQzlDeEQsaUI5RC9CbUI7QzhEbUNuQjs7QTdENkdLO0U2RHBITjtJQUtFLG9CL0M0Q3VEO0crQzFDeEQ7Q2pFMndSQTs7QWtFenpSRDs7dUhBRXVIO0FBTXZIO0UvRG1EQyxtQkFBMkM7RUFDM0Msb0JBQTJDO0MrRGxEM0M7O0E5RGlKSztFOERuSk47SS9Ec0RFLG1CQUE0QztJQUM1QyxvQkFBNEM7RytEckQ3QztDbEU4elJBIiwiZmlsZSI6InByb2plY3QuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyohXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcm9qZWt0OiBCdWVobGVyIFNpbGJlcnNjaG11Y2sgLSBXZWJzaG9wIFNjaHdhZXJtZXRhbGxcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFJlYWxpc2llcnVuZzogTmV1YmVydCBXZXJidW5nIGUuSy4gLSBodHRwczovL3d3dy5uZXViZXJ0LXdlcmJ1bmcuZGUgfCBDb250YW8gU2VydmljZSAtIGh0dHBzOi8vY29udGFvLXNlcnZpY2UuZGVcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTZXR0aW5ncyAtIEZvbnRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9MYXRvTGF0aW4tTGlnaHQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL0xhdG9MYXRpbi1MaWdodC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0byc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvTGF0b0xhdGluLUxpZ2h0SXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9MYXRvTGF0aW4tTGlnaHRJdGFsaWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0xhdG8nO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0xhdG9MYXRpbi1SZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9MYXRvTGF0aW4tUmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0byc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvTGF0b0xhdGluLUl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvTGF0b0xhdGluLUl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0byc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvTGF0b0xhdGluLU1lZGl1bS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvTGF0b0xhdGluLU1lZGl1bS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTGF0byc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvTGF0b0xhdGluLUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL0xhdG9MYXRpbi1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSWNvbnNcIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9pY29tb29uLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9pY29tb29uLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvaWNvbW9vbi5zdmdcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbmksXG4udG9wLW5hdmlnYXRpb25fc2hvcCAubGlua19iYXNrZXQ6YWZ0ZXIsXG4ucGFnZV9zaWRlYmFyLWJhY2tsaW5rIC5iYWNrbGluazpiZWZvcmUsXG4uY29udGVudF90eXBlLXNvY2lhbCBhOmJlZm9yZSxcbi5jb250ZW50X3R5cGUtc29jaWFsIGEucGludGVyZXN0OmJlZm9yZSxcbi5jb250ZW50X3R5cGUtc29jaWFsIGEuaW5zdGFncmFtOmJlZm9yZSxcbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsLmRyb3Bkb3duID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOmFmdGVyLFxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6YWZ0ZXIsXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5wcm9wZXJ0eV9zdGF0dXMtb3JkZXJlZCBzcGFuOmJlZm9yZSxcbi5iYXNrZXQtbWF4aV9jb250ZW50IC5yZW1vdmUgYTpiZWZvcmUsXG4ucGFnZV9jb250ZW50LWJhc2tldC1taW5pIGgyOmJlZm9yZSxcbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLnJlbW92ZSBhOmFmdGVyLFxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAuY291cG9uIGgyOmJlZm9yZSxcbi5jZV9hY2NvcmRpb24gLnRvZ2dsZXI6YmVmb3JlLFxuLmNlX2FjY29yZGlvbiAudG9nZ2xlcjphZnRlcixcbi5jZV9hY2NvcmRpb24gLnRvZ2dsZXIuYWN0aXZlOmFmdGVyLFxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19saW5rIGE6YmVmb3JlLFxuW2NsYXNzXj1cImljb25fXCJdLFxuW2NsYXNzKj1cIiBpY29uX1wiXSB7XG4gIGZvbnQtZmFtaWx5OiBcIkljb25zXCIgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uX2luc3RhZ3JhbSB7XG4gIGNvbnRlbnQ6IFwi7ruxXCI7XG59XG5cbi5pY29uX3BpbnRlcmVzdCB7XG4gIGNvbnRlbnQ6IFwi7rywXCI7XG59XG5cbi5pY29uX2hvbWUge1xuICBjb250ZW50OiBcIu6kgFwiO1xufVxuXG4uaWNvbl9ob21lMiB7XG4gIGNvbnRlbnQ6IFwi7qSBXCI7XG59XG5cbi5pY29uX2hvbWU1IHtcbiAgY29udGVudDogXCLupIRcIjtcbn1cblxuLmljb25fbmV3c3BhcGVyIHtcbiAgY29udGVudDogXCLupItcIjtcbn1cblxuLmljb25fbWFnYXppbmUge1xuICBjb250ZW50OiBcIu6kjFwiO1xufVxuXG4uaWNvbl9pbWFnZTIge1xuICBjb250ZW50OiBcIu6kvFwiO1xufVxuXG4uaWNvbl9pbWFnZTQge1xuICBjb250ZW50OiBcIu6lgVwiO1xufVxuXG4uaWNvbl9pbWFnZTUge1xuICBjb250ZW50OiBcIu6lglwiO1xufVxuXG4uaWNvbl9jYW1lcmEge1xuICBjb250ZW50OiBcIu6lhFwiO1xufVxuXG4uaWNvbl9jYW1lcmEyIHtcbiAgY29udGVudDogXCLupYVcIjtcbn1cblxuLmljb25fcGxheSB7XG4gIGNvbnRlbnQ6IFwi7qWXXCI7XG59XG5cbi5pY29uX2ZpbG0zIHtcbiAgY29udGVudDogXCLupaBcIjtcbn1cblxuLmljb25fYnVsbGhvcm4ge1xuICBjb250ZW50OiBcIu6luVwiO1xufVxuXG4uaWNvbl9tZWdhcGhvbmUge1xuICBjb250ZW50OiBcIu6lulwiO1xufVxuXG4uaWNvbl9uZXcge1xuICBjb250ZW50OiBcIu6lu1wiO1xufVxuXG4uaWNvbl9jb25uZWN0aW9uIHtcbiAgY29udGVudDogXCLupbxcIjtcbn1cblxuLmljb25fcHJpY2UtdGFnMiB7XG4gIGNvbnRlbnQ6IFwi7qeuXCI7XG59XG5cbi5pY29uX3ByaWNlLXRhZ3Mge1xuICBjb250ZW50OiBcIu6nr1wiO1xufVxuXG4uaWNvbl9wcmljZS10YWczIHtcbiAgY29udGVudDogXCLup7BcIjtcbn1cblxuLmljb25fcHJpY2UtdGFnczIge1xuICBjb250ZW50OiBcIu6nsVwiO1xufVxuXG4uaWNvbl9wcmljZS10YWc0IHtcbiAgY29udGVudDogXCLup7JcIjtcbn1cblxuLmljb25fcHJpY2UtdGFnczMge1xuICBjb250ZW50OiBcIu6ns1wiO1xufVxuXG4uaWNvbl9wcmljZS10YWc1IHtcbiAgY29udGVudDogXCLup7RcIjtcbn1cblxuLmljb25fcHJpY2UtdGFnczQge1xuICBjb250ZW50OiBcIu6ntVwiO1xufVxuXG4uaWNvbl9jYXJ0NCB7XG4gIGNvbnRlbnQ6IFwi7qiBXCI7XG59XG5cbi5pY29uX2NhcnQ1IHtcbiAgY29udGVudDogXCLuqIJcIjtcbn1cblxuLmljb25fY29pbi1ldXJvIHtcbiAgY29udGVudDogXCLuqIxcIjtcbn1cblxuLmljb25fY3JlZGl0LWNhcmQge1xuICBjb250ZW50OiBcIu6olVwiO1xufVxuXG4uaWNvbl9jcmVkaXQtY2FyZDIge1xuICBjb250ZW50OiBcIu6ollwiO1xufVxuXG4uaWNvbl9jYWxjdWxhdG9yMiB7XG4gIGNvbnRlbnQ6IFwi7qiYXCI7XG59XG5cbi5pY29uX3Bob25lIHtcbiAgY29udGVudDogXCLuqJxcIjtcbn1cblxuLmljb25fcGhvbmUyIHtcbiAgY29udGVudDogXCLuqJ1cIjtcbn1cblxuLmljb25fcGhvbmUtd2F2ZSB7XG4gIGNvbnRlbnQ6IFwi7qifXCI7XG59XG5cbi5pY29uX2F0LXNpZ24ge1xuICBjb250ZW50OiBcIu6or1wiO1xufVxuXG4uaWNvbl9lbnZlbG9wIHtcbiAgY29udGVudDogXCLuqLBcIjtcbn1cblxuLmljb25fZW52ZWxvcDIge1xuICBjb250ZW50OiBcIu6osVwiO1xufVxuXG4uaWNvbl9lbnZlbG9wMyB7XG4gIGNvbnRlbnQ6IFwi7qiyXCI7XG59XG5cbi5pY29uX2xvY2F0aW9uIHtcbiAgY29udGVudDogXCLuqLhcIjtcbn1cblxuLmljb25fbG9jYXRpb24yIHtcbiAgY29udGVudDogXCLuqLlcIjtcbn1cblxuLmljb25fbG9jYXRpb24zIHtcbiAgY29udGVudDogXCLuqLpcIjtcbn1cblxuLmljb25fbG9jYXRpb240IHtcbiAgY29udGVudDogXCLuqLtcIjtcbn1cblxuLmljb25fbG9jYXRpb241IHtcbiAgY29udGVudDogXCLuqLxcIjtcbn1cblxuLmljb25fbG9jYXRpb242IHtcbiAgY29udGVudDogXCLuqL1cIjtcbn1cblxuLmljb25fY2FsZW5kYXIyIHtcbiAgY29udGVudDogXCLuqaBcIjtcbn1cblxuLmljb25fY2FsZW5kYXIzIHtcbiAgY29udGVudDogXCLuqaFcIjtcbn1cblxuLmljb25fY2FsZW5kYXI0IHtcbiAgY29udGVudDogXCLuqaJcIjtcbn1cblxuLmljb25fcHJpbnRlcjQge1xuICBjb250ZW50OiBcIu6pqlwiO1xufVxuXG4uaWNvbl9xdW90ZXMtbGVmdCB7XG4gIGNvbnRlbnQ6IFwi7qybXCI7XG59XG5cbi5pY29uX3F1b3Rlcy1yaWdodCB7XG4gIGNvbnRlbnQ6IFwi7qycXCI7XG59XG5cbi5pY29uX3F1b3Rlcy1sZWZ0MiB7XG4gIGNvbnRlbnQ6IFwi7qydXCI7XG59XG5cbi5pY29uX3F1b3Rlcy1yaWdodDIge1xuICBjb250ZW50OiBcIu6snlwiO1xufVxuXG4uaWNvbl9zZWFyY2gge1xuICBjb250ZW50OiBcIu6ssFwiO1xufVxuXG4uaWNvbl9zZWFyY2gzIHtcbiAgY29udGVudDogXCLurLZcIjtcbn1cblxuLmljb25fbGFtcDcge1xuICBjb250ZW50OiBcIu6vuVwiO1xufVxuXG4uaWNvbl9sYW1wOCB7XG4gIGNvbnRlbnQ6IFwi7q+6XCI7XG59XG5cbi5pY29uX2NsaXBib2FyZCB7XG4gIGNvbnRlbnQ6IFwi7rGQXCI7XG59XG5cbi5pY29uX2NsaXBib2FyZDIge1xuICBjb250ZW50OiBcIu6xkVwiO1xufVxuXG4uaWNvbl9jbGlwYm9hcmQzIHtcbiAgY29udGVudDogXCLusZJcIjtcbn1cblxuLmljb25fY2xpcGJvYXJkNCB7XG4gIGNvbnRlbnQ6IFwi7rGTXCI7XG59XG5cbi5pY29uX2NsaXBib2FyZDUge1xuICBjb250ZW50OiBcIu6xlFwiO1xufVxuXG4uaWNvbl9jbGlwYm9hcmQ2IHtcbiAgY29udGVudDogXCLusZVcIjtcbn1cblxuLmljb25fbW9yZSB7XG4gIGNvbnRlbnQ6IFwi7rGbXCI7XG59XG5cbi5pY29uX21vcmUyIHtcbiAgY29udGVudDogXCLusZxcIjtcbn1cblxuLmljb25fZ3JpZCB7XG4gIGNvbnRlbnQ6IFwi7rGdXCI7XG59XG5cbi5pY29uX2dyaWQyIHtcbiAgY29udGVudDogXCLusZ5cIjtcbn1cblxuLmljb25fZ3JpZDMge1xuICBjb250ZW50OiBcIu6xn1wiO1xufVxuXG4uaWNvbl9ncmlkNCB7XG4gIGNvbnRlbnQ6IFwi7rGgXCI7XG59XG5cbi5pY29uX2dyaWQ1IHtcbiAgY29udGVudDogXCLusaFcIjtcbn1cblxuLmljb25fZ3JpZDYge1xuICBjb250ZW50OiBcIu6xolwiO1xufVxuXG4uaWNvbl9tZW51IHtcbiAgY29udGVudDogXCLusapcIjtcbn1cblxuLmljb25fY2lyY2xlLXNtYWxsIHtcbiAgY29udGVudDogXCLusatcIjtcbn1cblxuLmljb25fbWVudTMge1xuICBjb250ZW50OiBcIu6xrVwiO1xufVxuXG4uaWNvbl9tZW51NCB7XG4gIGNvbnRlbnQ6IFwi7rGuXCI7XG59XG5cbi5pY29uX21lbnU1IHtcbiAgY29udGVudDogXCLusa9cIjtcbn1cblxuLmljb25fbWVudTYge1xuICBjb250ZW50OiBcIu6xsFwiO1xufVxuXG4uaWNvbl9tZW51NyB7XG4gIGNvbnRlbnQ6IFwi7rGxXCI7XG59XG5cbi5pY29uX21lbnU4IHtcbiAgY29udGVudDogXCLusbJcIjtcbn1cblxuLmljb25fbWVudTkge1xuICBjb250ZW50OiBcIu6xs1wiO1xufVxuXG4uaWNvbl9tZW51MTAge1xuICBjb250ZW50OiBcIu6xtFwiO1xufVxuXG4uaWNvbl9saW5rIHtcbiAgY29udGVudDogXCLusplcIjtcbn1cblxuLmljb25fbGluazIge1xuICBjb250ZW50OiBcIu6ym1wiO1xufVxuXG4uaWNvbl9saW5rMyB7XG4gIGNvbnRlbnQ6IFwi7rKdXCI7XG59XG5cbi5pY29uX2xpbms1IHtcbiAgY29udGVudDogXCLusqFcIjtcbn1cblxuLmljb25fc3Rhci1lbXB0eTIge1xuICBjb250ZW50OiBcIu6zoVwiO1xufVxuXG4uaWNvbl9zdGFyLWZ1bGwge1xuICBjb250ZW50OiBcIu6zolwiO1xufVxuXG4uaWNvbl9zdGFyLWVtcHR5MyB7XG4gIGNvbnRlbnQ6IFwi7rOjXCI7XG59XG5cbi5pY29uX3RodW1icy11cCB7XG4gIGNvbnRlbnQ6IFwi7rO0XCI7XG59XG5cbi5pY29uX3RodW1icy11cDIge1xuICBjb250ZW50OiBcIu6ztVwiO1xufVxuXG4uaWNvbl90aHVtYnMtZG93biB7XG4gIGNvbnRlbnQ6IFwi7rO2XCI7XG59XG5cbi5pY29uX3RodW1icy1kb3duMiB7XG4gIGNvbnRlbnQ6IFwi7rO3XCI7XG59XG5cbi5pY29uX3dhcm5pbmcge1xuICBjb250ZW50OiBcIu61j1wiO1xufVxuXG4uaWNvbl93YXJuaW5nMiB7XG4gIGNvbnRlbnQ6IFwi7rWQXCI7XG59XG5cbi5pY29uX25vdGlmaWNhdGlvbiB7XG4gIGNvbnRlbnQ6IFwi7rWRXCI7XG59XG5cbi5pY29uX25vdGlmaWNhdGlvbjIge1xuICBjb250ZW50OiBcIu61klwiO1xufVxuXG4uaWNvbl9xdWVzdGlvbjMge1xuICBjb250ZW50OiBcIu61lVwiO1xufVxuXG4uaWNvbl9xdWVzdGlvbjQge1xuICBjb250ZW50OiBcIu61llwiO1xufVxuXG4uaWNvbl9wbHVzIHtcbiAgY29udGVudDogXCLutZlcIjtcbn1cblxuLmljb25fbWludXMge1xuICBjb250ZW50OiBcIu61mlwiO1xufVxuXG4uaWNvbl9wbHVzMiB7XG4gIGNvbnRlbnQ6IFwi7rWbXCI7XG59XG5cbi5pY29uX21pbnVzMiB7XG4gIGNvbnRlbnQ6IFwi7rWcXCI7XG59XG5cbi5pY29uX3BsdXMzIHtcbiAgY29udGVudDogXCLutZ1cIjtcbn1cblxuLmljb25fbWludXMzIHtcbiAgY29udGVudDogXCLutZ5cIjtcbn1cblxuLmljb25fcGx1cy1jaXJjbGUge1xuICBjb250ZW50OiBcIu61n1wiO1xufVxuXG4uaWNvbl9taW51cy1jaXJjbGUge1xuICBjb250ZW50OiBcIu61oFwiO1xufVxuXG4uaWNvbl9wbHVzLWNpcmNsZTIge1xuICBjb250ZW50OiBcIu61oVwiO1xufVxuXG4uaWNvbl9taW51cy1jaXJjbGUyIHtcbiAgY29udGVudDogXCLutaJcIjtcbn1cblxuLmljb25faW5mbyB7XG4gIGNvbnRlbnQ6IFwi7rWjXCI7XG59XG5cbi5pY29uX2luZm8yIHtcbiAgY29udGVudDogXCLutaRcIjtcbn1cblxuLmljb25fY2FuY2VsLWNpcmNsZSB7XG4gIGNvbnRlbnQ6IFwi7rWlXCI7XG59XG5cbi5pY29uX2NhbmNlbC1jaXJjbGUyIHtcbiAgY29udGVudDogXCLutaZcIjtcbn1cblxuLmljb25fY2FuY2VsLXNxdWFyZSB7XG4gIGNvbnRlbnQ6IFwi7rWoXCI7XG59XG5cbi5pY29uX2NhbmNlbC1zcXVhcmUyIHtcbiAgY29udGVudDogXCLutalcIjtcbn1cblxuLmljb25fY2FuY2VsIHtcbiAgY29udGVudDogXCLutapcIjtcbn1cblxuLmljb25fY3Jvc3Mge1xuICBjb250ZW50OiBcIu61rFwiO1xufVxuXG4uaWNvbl9jcm9zczIge1xuICBjb250ZW50OiBcIu61rVwiO1xufVxuXG4uaWNvbl9jcm9zczMge1xuICBjb250ZW50OiBcIu61rlwiO1xufVxuXG4uaWNvbl9jaGVja21hcmsge1xuICBjb250ZW50OiBcIu61r1wiO1xufVxuXG4uaWNvbl9jaGVja21hcmsyIHtcbiAgY29udGVudDogXCLutbBcIjtcbn1cblxuLmljb25fY2hlY2ttYXJrMyB7XG4gIGNvbnRlbnQ6IFwi7rWxXCI7XG59XG5cbi5pY29uX2NoZWNrbWFyazQge1xuICBjb250ZW50OiBcIu61slwiO1xufVxuXG4uaWNvbl9jaGVja21hcms1IHtcbiAgY29udGVudDogXCLutbNcIjtcbn1cblxuLmljb25fZW50ZXIge1xuICBjb250ZW50OiBcIu61tlwiO1xufVxuXG4uaWNvbl9leGl0IHtcbiAgY29udGVudDogXCLutbdcIjtcbn1cblxuLmljb25fcGxheTQge1xuICBjb250ZW50OiBcIu62hVwiO1xufVxuXG4uaWNvbl9hcnJvdy11cCB7XG4gIGNvbnRlbnQ6IFwi7ra3XCI7XG59XG5cbi5pY29uX2Fycm93LXVwMiB7XG4gIGNvbnRlbnQ6IFwi7ra4XCI7XG59XG5cbi5pY29uX2Fycm93LXVwMyB7XG4gIGNvbnRlbnQ6IFwi7ra5XCI7XG59XG5cbi5pY29uX2Fycm93LXVwNCB7XG4gIGNvbnRlbnQ6IFwi7ra6XCI7XG59XG5cbi5pY29uX2Fycm93LXJpZ2h0IHtcbiAgY29udGVudDogXCLutrtcIjtcbn1cblxuLmljb25fYXJyb3ctcmlnaHQyIHtcbiAgY29udGVudDogXCLutrxcIjtcbn1cblxuLmljb25fYXJyb3ctcmlnaHQzIHtcbiAgY29udGVudDogXCLutr1cIjtcbn1cblxuLmljb25fYXJyb3ctcmlnaHQ0IHtcbiAgY29udGVudDogXCLutr5cIjtcbn1cblxuLmljb25fYXJyb3ctZG93biB7XG4gIGNvbnRlbnQ6IFwi7ra/XCI7XG59XG5cbi5pY29uX2Fycm93LWRvd24yIHtcbiAgY29udGVudDogXCLut4BcIjtcbn1cblxuLmljb25fYXJyb3ctZG93bjMge1xuICBjb250ZW50OiBcIu63gVwiO1xufVxuXG4uaWNvbl9hcnJvdy1kb3duNCB7XG4gIGNvbnRlbnQ6IFwi7reCXCI7XG59XG5cbi5pY29uX2Fycm93LWxlZnQge1xuICBjb250ZW50OiBcIu63g1wiO1xufVxuXG4uaWNvbl9hcnJvdy1sZWZ0MiB7XG4gIGNvbnRlbnQ6IFwi7reEXCI7XG59XG5cbi5pY29uX2Fycm93LWxlZnQzIHtcbiAgY29udGVudDogXCLut4VcIjtcbn1cblxuLmljb25fYXJyb3ctbGVmdDQge1xuICBjb250ZW50OiBcIu63hlwiO1xufVxuXG4uaWNvbl9hcnJvdy11cDUge1xuICBjb250ZW50OiBcIu63h1wiO1xufVxuXG4uaWNvbl9hcnJvdy1yaWdodDUge1xuICBjb250ZW50OiBcIu63iFwiO1xufVxuXG4uaWNvbl9hcnJvdy1kb3duNSB7XG4gIGNvbnRlbnQ6IFwi7reJXCI7XG59XG5cbi5pY29uX2Fycm93LWxlZnQ1IHtcbiAgY29udGVudDogXCLut4pcIjtcbn1cblxuLmljb25fYXJyb3ctdXA2IHtcbiAgY29udGVudDogXCLut4xcIjtcbn1cblxuLmljb25fYXJyb3ctcmlnaHQ2IHtcbiAgY29udGVudDogXCLut45cIjtcbn1cblxuLmljb25fYXJyb3ctZG93bjYge1xuICBjb250ZW50OiBcIu63kFwiO1xufVxuXG4uaWNvbl9hcnJvdy1sZWZ0NiB7XG4gIGNvbnRlbnQ6IFwi7reSXCI7XG59XG5cbi5pY29uX2Fycm93LXVwNyB7XG4gIGNvbnRlbnQ6IFwi7reUXCI7XG59XG5cbi5pY29uX2Fycm93LXJpZ2h0NyB7XG4gIGNvbnRlbnQ6IFwi7reWXCI7XG59XG5cbi5pY29uX2Fycm93LWRvd243IHtcbiAgY29udGVudDogXCLut5hcIjtcbn1cblxuLmljb25fYXJyb3ctbGVmdDcge1xuICBjb250ZW50OiBcIu63mlwiO1xufVxuXG4uaWNvbl9hcnJvdy11cC1sZWZ0MyB7XG4gIGNvbnRlbnQ6IFwi7rebXCI7XG59XG5cbi5pY29uX2Fycm93LXVwOCB7XG4gIGNvbnRlbnQ6IFwi7recXCI7XG59XG5cbi5pY29uX2Fycm93LXVwLXJpZ2h0MyB7XG4gIGNvbnRlbnQ6IFwi7redXCI7XG59XG5cbi5pY29uX2Fycm93LXJpZ2h0OCB7XG4gIGNvbnRlbnQ6IFwi7reeXCI7XG59XG5cbi5pY29uX2Fycm93LWRvd24tcmlnaHQzIHtcbiAgY29udGVudDogXCLut59cIjtcbn1cblxuLmljb25fYXJyb3ctZG93bjgge1xuICBjb250ZW50OiBcIu63oFwiO1xufVxuXG4uaWNvbl9hcnJvdy1kb3duLWxlZnQzIHtcbiAgY29udGVudDogXCLut6FcIjtcbn1cblxuLmljb25fYXJyb3ctbGVmdDgge1xuICBjb250ZW50OiBcIu63olwiO1xufVxuXG4uaWNvbl9jaXJjbGUtdXAyIHtcbiAgY29udGVudDogXCLut6dcIjtcbn1cblxuLmljb25fY2lyY2xlLXJpZ2h0MiB7XG4gIGNvbnRlbnQ6IFwi7reoXCI7XG59XG5cbi5pY29uX2NpcmNsZS1kb3duMiB7XG4gIGNvbnRlbnQ6IFwi7repXCI7XG59XG5cbi5pY29uX2NpcmNsZS1sZWZ0MiB7XG4gIGNvbnRlbnQ6IFwi7reqXCI7XG59XG5cbi5pY29uX2NpcmNsZS11cDMge1xuICBjb250ZW50OiBcIu63rFwiO1xufVxuXG4uaWNvbl9jaXJjbGUtcmlnaHQzIHtcbiAgY29udGVudDogXCLut65cIjtcbn1cblxuLmljb25fY2lyY2xlLWRvd24zIHtcbiAgY29udGVudDogXCLut7BcIjtcbn1cblxuLmljb25fY2lyY2xlLWxlZnQzIHtcbiAgY29udGVudDogXCLut7JcIjtcbn1cblxuLmljb25fY2lyY2xlLXVwNCB7XG4gIGNvbnRlbnQ6IFwi7re0XCI7XG59XG5cbi5pY29uX2NpcmNsZS1yaWdodDQge1xuICBjb250ZW50OiBcIu63tlwiO1xufVxuXG4uaWNvbl9jaXJjbGUtZG93bjQge1xuICBjb250ZW50OiBcIu63uFwiO1xufVxuXG4uaWNvbl9jaXJjbGUtbGVmdDQge1xuICBjb250ZW50OiBcIu63ulwiO1xufVxuXG4uaWNvbl9zcXVhcmUtdXAge1xuICBjb250ZW50OiBcIu64hFwiO1xufVxuXG4uaWNvbl9zcXVhcmUtcmlnaHQge1xuICBjb250ZW50OiBcIu64hlwiO1xufVxuXG4uaWNvbl9zcXVhcmUtZG93biB7XG4gIGNvbnRlbnQ6IFwi7riIXCI7XG59XG5cbi5pY29uX3NxdWFyZS1sZWZ0IHtcbiAgY29udGVudDogXCLuuIpcIjtcbn1cblxuLmljb25fYXJyb3ctdXA5IHtcbiAgY29udGVudDogXCLuuItcIjtcbn1cblxuLmljb25fYXJyb3ctcmlnaHQ5IHtcbiAgY29udGVudDogXCLuuIxcIjtcbn1cblxuLmljb25fYXJyb3ctZG93bjkge1xuICBjb250ZW50OiBcIu64jVwiO1xufVxuXG4uaWNvbl9hcnJvdy1sZWZ0OSB7XG4gIGNvbnRlbnQ6IFwi7riOXCI7XG59XG5cbi5pY29uX2Fycm93LXVwMTIge1xuICBjb250ZW50OiBcIu64nFwiO1xufVxuXG4uaWNvbl9hcnJvdy1yaWdodDEyIHtcbiAgY29udGVudDogXCLuuJ5cIjtcbn1cblxuLmljb25fYXJyb3ctZG93bjEyIHtcbiAgY29udGVudDogXCLuuKBcIjtcbn1cblxuLmljb25fYXJyb3ctbGVmdDEyIHtcbiAgY29udGVudDogXCLuuKJcIjtcbn1cblxuLmljb25fYXJyb3ctdXAxNCB7XG4gIGNvbnRlbnQ6IFwi7rinXCI7XG59XG5cbi5pY29uX2Fycm93LXJpZ2h0MTQge1xuICBjb250ZW50OiBcIu64qFwiO1xufVxuXG4uaWNvbl9hcnJvdy1kb3duMTQge1xuICBjb250ZW50OiBcIu64qVwiO1xufVxuXG4uaWNvbl9hcnJvdy1sZWZ0MTQge1xuICBjb250ZW50OiBcIu64qlwiO1xufVxuXG4uaWNvbl9jaXJjbGUtdXA1IHtcbiAgY29udGVudDogXCLuuKtcIjtcbn1cblxuLmljb25fY2lyY2xlLXJpZ2h0NSB7XG4gIGNvbnRlbnQ6IFwi7risXCI7XG59XG5cbi5pY29uX2NpcmNsZS1kb3duNSB7XG4gIGNvbnRlbnQ6IFwi7ritXCI7XG59XG5cbi5pY29uX2NpcmNsZS1sZWZ0NSB7XG4gIGNvbnRlbnQ6IFwi7riuXCI7XG59XG5cbi5pY29uX2NpcmNsZS11cDYge1xuICBjb250ZW50OiBcIu64r1wiO1xufVxuXG4uaWNvbl9jaXJjbGUtcmlnaHQ2IHtcbiAgY29udGVudDogXCLuuLBcIjtcbn1cblxuLmljb25fY2lyY2xlLWRvd242IHtcbiAgY29udGVudDogXCLuuLFcIjtcbn1cblxuLmljb25fY2lyY2xlLWxlZnQ2IHtcbiAgY29udGVudDogXCLuuLJcIjtcbn1cblxuLmljb25fYXJyb3ctdXAxNSB7XG4gIGNvbnRlbnQ6IFwi7rizXCI7XG59XG5cbi5pY29uX2Fycm93LXJpZ2h0MTUge1xuICBjb250ZW50OiBcIu64tFwiO1xufVxuXG4uaWNvbl9hcnJvdy1kb3duMTUge1xuICBjb250ZW50OiBcIu64tVwiO1xufVxuXG4uaWNvbl9hcnJvdy1sZWZ0MTUge1xuICBjb250ZW50OiBcIu64tlwiO1xufVxuXG4uaWNvbl9hcnJvdy11cDE2IHtcbiAgY29udGVudDogXCLuuLdcIjtcbn1cblxuLmljb25fYXJyb3ctcmlnaHQxNiB7XG4gIGNvbnRlbnQ6IFwi7ri4XCI7XG59XG5cbi5pY29uX2Fycm93LWRvd24xNiB7XG4gIGNvbnRlbnQ6IFwi7ri5XCI7XG59XG5cbi5pY29uX2Fycm93LWxlZnQxNiB7XG4gIGNvbnRlbnQ6IFwi7ri6XCI7XG59XG5cbi5pY29uX2NoZWNrYm94LWNoZWNrZWQge1xuICBjb250ZW50OiBcIu65plwiO1xufVxuXG4uaWNvbl9jaGVja2JveC11bmNoZWNrZWQge1xuICBjb250ZW50OiBcIu65p1wiO1xufVxuXG4uaWNvbl9jaGVja2JveC1wYXJ0aWFsIHtcbiAgY29udGVudDogXCLuuahcIjtcbn1cblxuLmljb25fc3F1YXJlIHtcbiAgY29udGVudDogXCLuualcIjtcbn1cblxuLmljb25fZGlhbW9uZDMge1xuICBjb250ZW50OiBcIu65rFwiO1xufVxuXG4uaWNvbl9kaWFtb25kNCB7XG4gIGNvbnRlbnQ6IFwi7rmtXCI7XG59XG5cbi5pY29uX2NoZWNrYm94LWNoZWNrZWQyIHtcbiAgY29udGVudDogXCLuua5cIjtcbn1cblxuLmljb25fY2hlY2tib3gtdW5jaGVja2VkMiB7XG4gIGNvbnRlbnQ6IFwi7rmvXCI7XG59XG5cbi5pY29uX3JhZGlvLWNoZWNrZWQge1xuICBjb250ZW50OiBcIu65sVwiO1xufVxuXG4uaWNvbl9yYWRpby1jaGVja2VkMiB7XG4gIGNvbnRlbnQ6IFwi7rmyXCI7XG59XG5cbi5pY29uX3JhZGlvLXVuY2hlY2tlZCB7XG4gIGNvbnRlbnQ6IFwi7rmzXCI7XG59XG5cbi5pY29uX2NoZWNrbWFyay1jaXJjbGUge1xuICBjb250ZW50OiBcIu65tlwiO1xufVxuXG4uaWNvbl9jaXJjbGUge1xuICBjb250ZW50OiBcIu65t1wiO1xufVxuXG4uaWNvbl9jaXJjbGUyIHtcbiAgY29udGVudDogXCLuubhcIjtcbn1cblxuLmljb25fZmlsdGVyIHtcbiAgY29udGVudDogXCLuuolcIjtcbn1cblxuLmljb25fZmlsdGVyMiB7XG4gIGNvbnRlbnQ6IFwi7rqKXCI7XG59XG5cbi5pY29uX2ZpbHRlcjMge1xuICBjb250ZW50OiBcIu66i1wiO1xufVxuXG4uaWNvbl9maWx0ZXI0IHtcbiAgY29udGVudDogXCLuuoxcIjtcbn1cblxuLmljb25fbmV3LXRhYiB7XG4gIGNvbnRlbnQ6IFwi7ruJXCI7XG59XG5cbi5pY29uX25ldy10YWIyIHtcbiAgY29udGVudDogXCLuu4pcIjtcbn1cblxuLmljb25fc2hhcmUzIHtcbiAgY29udGVudDogXCLuu6BcIjtcbn1cblxuLmljb25fYW1hem9uIHtcbiAgY29udGVudDogXCLuu6ZcIjtcbn1cblxuLmljb25fZ29vZ2xlMiB7XG4gIGNvbnRlbnQ6IFwi7ruoXCI7XG59XG5cbi5pY29uX2dvb2dsZS1wbHVzIHtcbiAgY29udGVudDogXCLuu6pcIjtcbn1cblxuLmljb25fZ29vZ2xlLXBsdXMyIHtcbiAgY29udGVudDogXCLuu6tcIjtcbn1cblxuLmljb25fZmFjZWJvb2sge1xuICBjb250ZW50OiBcIu67r1wiO1xufVxuXG4uaWNvbl9mYWNlYm9vazIge1xuICBjb250ZW50OiBcIu67sFwiO1xufVxuXG4uaWNvbl90d2l0dGVyIHtcbiAgY29udGVudDogXCLuu7VcIjtcbn1cblxuLmljb25feW91dHViZSB7XG4gIGNvbnRlbnQ6IFwi7ru8XCI7XG59XG5cbi5pY29uX3lvdXR1YmUyIHtcbiAgY29udGVudDogXCLuu71cIjtcbn1cblxuLmljb25feGluZyB7XG4gIGNvbnRlbnQ6IFwi7ryyXCI7XG59XG5cbi5pY29uX3hpbmcyIHtcbiAgY29udGVudDogXCLuvLNcIjtcbn1cblxuLmljb25fZmlsZS1wZGYge1xuICBjb250ZW50OiBcIu68vlwiO1xufVxuXG4ubWFyZ2luLXktbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDYwcHggIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1hcmdpbi15LWxhcmdlIHtcbiAgICBtYXJnaW4tdG9wOiA4MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTEwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbiAqIFZlcnNpb24gNi4zLjFcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG4vKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAyICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5maWdjYXB0aW9uLFxuZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovXG59XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZS13aWR0aDogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG59XG5cbi8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICAgICAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG59XG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLyoqXG4gICAgICAgKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICAgICAgICovXG4gIC8qKlxuICAgICAgICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICAgICAgICovXG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAgICAgKi9cbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gICAgICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xufVxuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICAgICAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgICAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwic21hbGw9MGVtJnhzbWFsbD0zMGVtJm1lZGl1bT00MGVtJmxhcmdlPTY0ZW0meGxhcmdlPTc1ZW0meHhsYXJnZT0xMDBlbVwiO1xufVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlO1xufVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZTllN2U4O1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbn1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbnNlbGVjdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4ubWFwX2NhbnZhcyBpbWcsXG4ubWFwX2NhbnZhcyBlbWJlZCxcbi5tYXBfY2FudmFzIG9iamVjdCxcbi5tcWEtZGlzcGxheSBpbWcsXG4ubXFhLWRpc3BsYXkgZW1iZWQsXG4ubXFhLWRpc3BsYXkgb2JqZWN0IHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gYnV0dG9uIHtcbiAgb3V0bGluZTogMDtcbn1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI5LjkzNzVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5oaWRlLWZvci14c21hbGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLXhzbWFsbCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLXhzbWFsbC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjkuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5zaG93LWZvci14c21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuaGlkZS1mb3IteGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC5zaG93LWZvci14bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSBhbmQgKG1heC13aWR0aDogOTkuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci14bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwZW0pIHtcbiAgLnNob3ctZm9yLXhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwZW0pIHtcbiAgLmhpZGUtZm9yLXh4bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLXh4bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDBlbSkge1xuICAuaGlkZS1mb3IteHhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkuOTM3NWVtKSB7XG4gIC5zaG93LWZvci14eGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbn1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZmxvYXQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuXG4uZmxvYXQtY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5jbGVhcmZpeDo6YmVmb3JlLCAuY2xlYXJmaXg6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZmxleC1iYXNpczogMDtcbiAgb3JkZXI6IDE7XG59XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmFsaWduLXJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLmFsaWduLWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYWxpZ24tanVzdGlmeSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmFsaWduLXNwYWNlZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG4uYWxpZ24tdG9wIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG5cbi5hbGlnbi1ib3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi5hbGlnbi1zZWxmLWJvdHRvbSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmFsaWduLXNlbGYtbWlkZGxlIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG4uYWxpZ24tc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLnNtYWxsLW9yZGVyLTEge1xuICBvcmRlcjogMTtcbn1cblxuLnNtYWxsLW9yZGVyLTIge1xuICBvcmRlcjogMjtcbn1cblxuLnNtYWxsLW9yZGVyLTMge1xuICBvcmRlcjogMztcbn1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDtcbn1cblxuLnNtYWxsLW9yZGVyLTUge1xuICBvcmRlcjogNTtcbn1cblxuLnNtYWxsLW9yZGVyLTYge1xuICBvcmRlcjogNjtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLnhzbWFsbC1vcmRlci0xIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAueHNtYWxsLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC54c21hbGwtb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLnhzbWFsbC1vcmRlci00IHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAueHNtYWxsLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC54c21hbGwtb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lZGl1bS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAubWVkaXVtLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC5tZWRpdW0tb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLm1lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAubWVkaXVtLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC5tZWRpdW0tb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxO1xuICB9XG4gIC5sYXJnZS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAubGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLmxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0O1xuICB9XG4gIC5sYXJnZS1vcmRlci01IHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAubGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAueGxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxO1xuICB9XG4gIC54bGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbiAgLnhsYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMztcbiAgfVxuICAueGxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0O1xuICB9XG4gIC54bGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7XG4gIH1cbiAgLnhsYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDBlbSkge1xuICAueHhsYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAueHhsYXJnZS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAueHhsYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMztcbiAgfVxuICAueHhsYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAueHhsYXJnZS1vcmRlci01IHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAueHhsYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjtcbiAgfVxufVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cblxuLnJvdyAucm93IHtcbiAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMGVtKSB7XG4gIC5yb3cgLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC45Mzc1cmVtO1xuICB9XG59XG5cbi5yb3cgLnJvdy5jb2xsYXBzZSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5yb3cuZXhwYW5kZWQge1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbi5yb3c6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4sIC5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLnJvdy5pcy1jb2xsYXBzZS1jaGlsZCxcbi5yb3cuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyxcbi5yb3cuY29sbGFwc2UgPiAuY29sdW1ucyA+IC5yb3cge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtaW4td2lkdGg6IGluaXRpYWw7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucm93IC5jb2x1bW4ucm93LnJvdywgLnJvdyAucm93LnJvdy5jb2x1bW5zIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZmxleC1jaGlsZC1hdXRvIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cbi5mbGV4LWNoaWxkLWdyb3cge1xuICBmbGV4OiAxIDAgYXV0bztcbn1cblxuLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgZmxleDogMCAxIGF1dG87XG59XG5cbi5mbGV4LWRpci1yb3cge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uZmxleC1kaXItcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi5mbGV4LWRpci1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG59XG5cbi5zbWFsbC0xIHtcbiAgZmxleDogMCAwIDguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDguMzMzMzMlO1xufVxuXG4uc21hbGwtb2Zmc2V0LTAge1xuICBtYXJnaW4tbGVmdDogMCU7XG59XG5cbi5zbWFsbC0yIHtcbiAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgbWF4LXdpZHRoOiAxNi42NjY2NyU7XG59XG5cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTtcbn1cblxuLnNtYWxsLTMge1xuICBmbGV4OiAwIDAgMjUlO1xuICBtYXgtd2lkdGg6IDI1JTtcbn1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTtcbn1cblxuLnNtYWxsLTQge1xuICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbn1cblxuLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IDI1JTtcbn1cblxuLnNtYWxsLTUge1xuICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY3JTtcbn1cblxuLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTtcbn1cblxuLnNtYWxsLTYge1xuICBmbGV4OiAwIDAgNTAlO1xuICBtYXgtd2lkdGg6IDUwJTtcbn1cblxuLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTtcbn1cblxuLnNtYWxsLTcge1xuICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzJTtcbn1cblxuLnNtYWxsLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbn1cblxuLnNtYWxsLTgge1xuICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDY2LjY2NjY3JTtcbn1cblxuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTtcbn1cblxuLnNtYWxsLTkge1xuICBmbGV4OiAwIDAgNzUlO1xuICBtYXgtd2lkdGg6IDc1JTtcbn1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTtcbn1cblxuLnNtYWxsLTEwIHtcbiAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA4My4zMzMzMyU7XG59XG5cbi5zbWFsbC1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7XG59XG5cbi5zbWFsbC0xMSB7XG4gIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gIG1heC13aWR0aDogOTEuNjY2NjclO1xufVxuXG4uc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTtcbn1cblxuLnNtYWxsLTEyIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7XG59XG5cbi5zbWFsbC1vcmRlci0xIHtcbiAgb3JkZXI6IDE7XG59XG5cbi5zbWFsbC1vcmRlci0yIHtcbiAgb3JkZXI6IDI7XG59XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7XG59XG5cbi5zbWFsbC1vcmRlci00IHtcbiAgb3JkZXI6IDQ7XG59XG5cbi5zbWFsbC1vcmRlci01IHtcbiAgb3JkZXI6IDU7XG59XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7XG59XG5cbi5zbWFsbC11cC0xIHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc21hbGwtdXAtMSA+IC5jb2x1bW4sIC5zbWFsbC11cC0xID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uc21hbGwtdXAtMiB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNtYWxsLXVwLTIgPiAuY29sdW1uLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7XG59XG5cbi5zbWFsbC11cC0zIHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc21hbGwtdXAtMyA+IC5jb2x1bW4sIC5zbWFsbC11cC0zID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbn1cblxuLnNtYWxsLXVwLTQge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAyNSU7XG4gIG1heC13aWR0aDogMjUlO1xufVxuXG4uc21hbGwtdXAtNSB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNtYWxsLXVwLTUgPiAuY29sdW1uLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDIwJTtcbiAgbWF4LXdpZHRoOiAyMCU7XG59XG5cbi5zbWFsbC11cC02IHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc21hbGwtdXAtNiA+IC5jb2x1bW4sIC5zbWFsbC11cC02ID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDE2LjY2NjY3JTtcbn1cblxuLnNtYWxsLXVwLTcge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zbWFsbC11cC03ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTcgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gIG1heC13aWR0aDogMTQuMjg1NzElO1xufVxuXG4uc21hbGwtdXAtOCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNtYWxsLXVwLTggPiAuY29sdW1uLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEyLjUlO1xuICBtYXgtd2lkdGg6IDEyLjUlO1xufVxuXG4uc21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC54c21hbGwtMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7XG4gIH1cbiAgLnhzbWFsbC1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG4gIC54c21hbGwtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTtcbiAgfVxuICAueHNtYWxsLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7XG4gIH1cbiAgLnhzbWFsbC0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC54c21hbGwtb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7XG4gIH1cbiAgLnhzbWFsbC00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICB9XG4gIC54c21hbGwtb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLnhzbWFsbC01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclO1xuICB9XG4gIC54c21hbGwtb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7XG4gIH1cbiAgLnhzbWFsbC02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC54c21hbGwtb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7XG4gIH1cbiAgLnhzbWFsbC03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlO1xuICB9XG4gIC54c21hbGwtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLnhzbWFsbC04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclO1xuICB9XG4gIC54c21hbGwtb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7XG4gIH1cbiAgLnhzbWFsbC05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC54c21hbGwtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7XG4gIH1cbiAgLnhzbWFsbC0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTtcbiAgfVxuICAueHNtYWxsLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC54c21hbGwtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7XG4gIH1cbiAgLnhzbWFsbC1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7XG4gIH1cbiAgLnhzbWFsbC0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC54c21hbGwtb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclO1xuICB9XG4gIC54c21hbGwtb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLnhzbWFsbC1vcmRlci0yIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAueHNtYWxsLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzO1xuICB9XG4gIC54c21hbGwtb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLnhzbWFsbC1vcmRlci01IHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAueHNtYWxsLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2O1xuICB9XG4gIC54c21hbGwtdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54c21hbGwtdXAtMSA+IC5jb2x1bW4sIC54c21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnhzbWFsbC11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnhzbWFsbC11cC0yID4gLmNvbHVtbiwgLnhzbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLnhzbWFsbC11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnhzbWFsbC11cC0zID4gLmNvbHVtbiwgLnhzbWFsbC11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG4gIH1cbiAgLnhzbWFsbC11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnhzbWFsbC11cC00ID4gLmNvbHVtbiwgLnhzbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLnhzbWFsbC11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnhzbWFsbC11cC01ID4gLmNvbHVtbiwgLnhzbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7XG4gIH1cbiAgLnhzbWFsbC11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnhzbWFsbC11cC02ID4gLmNvbHVtbiwgLnhzbWFsbC11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7XG4gIH1cbiAgLnhzbWFsbC11cC03IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnhzbWFsbC11cC03ID4gLmNvbHVtbiwgLnhzbWFsbC11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7XG4gIH1cbiAgLnhzbWFsbC11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnhzbWFsbC11cC04ID4gLmNvbHVtbiwgLnhzbWFsbC11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICBtYXgtd2lkdGg6IDEyLjUlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAueHNtYWxsLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAueHNtYWxsLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAueHNtYWxsLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLnhzbWFsbC1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnhzbWFsbC1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC54c21hbGwtZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuICAueHNtYWxsLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbiAgLnhzbWFsbC1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbn1cblxuLnJvdy54c21hbGwtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cueHNtYWxsLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAucm93LnhzbWFsbC11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy54c21hbGwtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC54c21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAueHNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC54c21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC54c21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG4gIC5tZWRpdW0tMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLm1lZGl1bS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLm1lZGl1bS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTtcbiAgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5tZWRpdW0tMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclO1xuICB9XG4gIC5tZWRpdW0tb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbiAgLm1lZGl1bS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAubWVkaXVtLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzO1xuICB9XG4gIC5tZWRpdW0tb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7XG4gIH1cbiAgLm1lZGl1bS1vcmRlci01IHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAubWVkaXVtLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2O1xuICB9XG4gIC5tZWRpdW0tdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lZGl1bS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLm1lZGl1bS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG4gIH1cbiAgLm1lZGl1bS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLm1lZGl1bS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7XG4gIH1cbiAgLm1lZGl1bS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7XG4gIH1cbiAgLm1lZGl1bS11cC03IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7XG4gIH1cbiAgLm1lZGl1bS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICBtYXgtd2lkdGg6IDEyLjUlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbn1cblxuLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG4gIC5sYXJnZS0yIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlO1xuICB9XG4gIC5sYXJnZS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmxhcmdlLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlO1xuICB9XG4gIC5sYXJnZS02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmxhcmdlLTgge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlO1xuICB9XG4gIC5sYXJnZS05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7XG4gIH1cbiAgLmxhcmdlLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5sYXJnZS0xMSB7XG4gICAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTtcbiAgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlO1xuICB9XG4gIC5sYXJnZS0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5sYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7XG4gIH1cbiAgLmxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxO1xuICB9XG4gIC5sYXJnZS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjtcbiAgfVxuICAubGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLmxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0O1xuICB9XG4gIC5sYXJnZS1vcmRlci01IHtcbiAgICBvcmRlcjogNTtcbiAgfVxuICAubGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7XG4gIH1cbiAgLmxhcmdlLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4sIC5sYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAubGFyZ2UtdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5sYXJnZS11cC0yID4gLmNvbHVtbiwgLmxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuICAubGFyZ2UtdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgfVxuICAubGFyZ2UtdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5sYXJnZS11cC00ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuICAubGFyZ2UtdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDIwJTtcbiAgICBtYXgtd2lkdGg6IDIwJTtcbiAgfVxuICAubGFyZ2UtdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTtcbiAgfVxuICAubGFyZ2UtdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5sYXJnZS11cC03ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICBtYXgtd2lkdGg6IDE0LjI4NTcxJTtcbiAgfVxuICAubGFyZ2UtdXAtOCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5sYXJnZS11cC04ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDEyLjUlO1xuICAgIG1heC13aWR0aDogMTIuNSU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAubGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbn1cblxuLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnhsYXJnZS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbiAgLnhsYXJnZS0yIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclO1xuICB9XG4gIC54bGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTtcbiAgfVxuICAueGxhcmdlLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTtcbiAgfVxuICAueGxhcmdlLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAueGxhcmdlLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTtcbiAgfVxuICAueGxhcmdlLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTtcbiAgfVxuICAueGxhcmdlLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAueGxhcmdlLTgge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTtcbiAgfVxuICAueGxhcmdlLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTtcbiAgfVxuICAueGxhcmdlLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlO1xuICB9XG4gIC54bGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLnhsYXJnZS0xMSB7XG4gICAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTtcbiAgfVxuICAueGxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTtcbiAgfVxuICAueGxhcmdlLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnhsYXJnZS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7XG4gIH1cbiAgLnhsYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAueGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC54bGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7XG4gIH1cbiAgLnhsYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDtcbiAgfVxuICAueGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC54bGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7XG4gIH1cbiAgLnhsYXJnZS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLnhsYXJnZS11cC0xID4gLmNvbHVtbiwgLnhsYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAueGxhcmdlLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueGxhcmdlLXVwLTIgPiAuY29sdW1uLCAueGxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxuICAueGxhcmdlLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueGxhcmdlLXVwLTMgPiAuY29sdW1uLCAueGxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgfVxuICAueGxhcmdlLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueGxhcmdlLXVwLTQgPiAuY29sdW1uLCAueGxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgfVxuICAueGxhcmdlLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueGxhcmdlLXVwLTUgPiAuY29sdW1uLCAueGxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDIwJTtcbiAgICBtYXgtd2lkdGg6IDIwJTtcbiAgfVxuICAueGxhcmdlLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueGxhcmdlLXVwLTYgPiAuY29sdW1uLCAueGxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTtcbiAgfVxuICAueGxhcmdlLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueGxhcmdlLXVwLTcgPiAuY29sdW1uLCAueGxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICBtYXgtd2lkdGg6IDE0LjI4NTcxJTtcbiAgfVxuICAueGxhcmdlLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueGxhcmdlLXVwLTggPiAuY29sdW1uLCAueGxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDEyLjUlO1xuICAgIG1heC13aWR0aDogMTIuNSU7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkgYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnhsYXJnZS1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAueGxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAueGxhcmdlLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLnhsYXJnZS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnhsYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC54bGFyZ2UtZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuICAueGxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbiAgLnhsYXJnZS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbn1cblxuLnJvdy54bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cueGxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5yb3cueGxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93LnhsYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDEgMSAwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAueGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLnhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuICAueGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAueGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMGVtKSB7XG4gIC54eGxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbiAgLnh4bGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTtcbiAgfVxuICAueHhsYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2UtNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgfVxuICAueHhsYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAueHhsYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclO1xuICB9XG4gIC54eGxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2UtNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTtcbiAgfVxuICAueHhsYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgfVxuICAueHhsYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclO1xuICB9XG4gIC54eGxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2UtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLnh4bGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlO1xuICB9XG4gIC54eGxhcmdlLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclO1xuICB9XG4gIC54eGxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxO1xuICB9XG4gIC54eGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC54eGxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzO1xuICB9XG4gIC54eGxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0O1xuICB9XG4gIC54eGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1O1xuICB9XG4gIC54eGxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2O1xuICB9XG4gIC54eGxhcmdlLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAueHhsYXJnZS11cC0xID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTIgPiAuY29sdW1uLCAueHhsYXJnZS11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTMgPiAuY29sdW1uLCAueHhsYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTQgPiAuY29sdW1uLCAueHhsYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTUgPiAuY29sdW1uLCAueHhsYXJnZS11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTYgPiAuY29sdW1uLCAueHhsYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTcgPiAuY29sdW1uLCAueHhsYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7XG4gIH1cbiAgLnh4bGFyZ2UtdXAtOCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC54eGxhcmdlLXVwLTggPiAuY29sdW1uLCAueHhsYXJnZS11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICBtYXgtd2lkdGg6IDEyLjUlO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMGVtKSBhbmQgKG1pbi13aWR0aDogMTAwZW0pIHtcbiAgLnh4bGFyZ2UtZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMGVtKSB7XG4gIC54eGxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuICAueHhsYXJnZS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC54eGxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAueHhsYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC54eGxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cbiAgLnh4bGFyZ2UtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuICAueHhsYXJnZS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cbn1cblxuLnJvdy54eGxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93Lnh4bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMGVtKSB7XG4gIC5yb3cueHhsYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy54eGxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDBlbSkge1xuICAueHhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC54eGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC54eGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAueHhsYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4uc2hyaW5rIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmNvbHVtbi1ibG9jayB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG5cbi5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDEuODc1cmVtO1xuICB9XG4gIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5kaXYsXG5kbCxcbmR0LFxuZGQsXG51bCxcbm9sLFxubGksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wcmUsXG5mb3JtLFxucCxcbmJsb2NrcXVvdGUsXG50aCxcbnRkIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5wIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5zdHJvbmcsXG5iIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbmgxIHNtYWxsLFxuaDIgc21hbGwsXG5oMyBzbWFsbCxcbmg0IHNtYWxsLFxuaDUgc21hbGwsXG5oNiBzbWFsbCB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBjb2xvcjogI2NhY2FjYTtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICB9XG4gIGgzIHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICB9XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5hOmhvdmVyLCBhOmZvY3VzIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG5hIGltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbnVsLFxub2wsXG5kbCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbmxpIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xufVxuXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbm9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG59XG5cbnVsIHVsLCBvbCB1bCwgdWwgb2wsIG9sIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuZGwgZHQge1xuICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDEuMjVyZW0gMCAxLjE4NzVyZW07XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NhY2FjYTtcbn1cblxuYmxvY2txdW90ZSwgYmxvY2txdW90ZSBwIHtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6ICMxYTFhMWE7XG59XG5cbmNpdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGNvbG9yOiAjMWExYTFhO1xufVxuXG5jaXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCUIFwiO1xufVxuXG5hYmJyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjMDAwMDAwO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgY3Vyc29yOiBoZWxwO1xufVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbmNvZGUge1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjMxMjVyZW0gMC4wNjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbmtiZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICMxYTFhMWE7XG59XG5cbi5sZWFkIHtcbiAgZm9udC1zaXplOiAxMjUlO1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4uc3RhdCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxucCArIC5zdGF0IHtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG59XG5cbi5uby1idWxsZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC54c21hbGwtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC54c21hbGwtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgLnhzbWFsbC10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC54c21hbGwtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAueGxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAueGxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC54bGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAueGxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDBlbSkge1xuICAueHhsYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLnh4bGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgLnh4bGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAueHhsYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIH1cbn1cblxuLnNob3ctZm9yLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xuICB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzFhMWExYTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTtcbiAgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzO1xuICB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbn1cblxuW3R5cGU9J3RleHQnXSwgW3R5cGU9J3Bhc3N3b3JkJ10sIFt0eXBlPSdkYXRlJ10sIFt0eXBlPSdkYXRldGltZSddLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgW3R5cGU9J21vbnRoJ10sIFt0eXBlPSd3ZWVrJ10sIFt0eXBlPSdlbWFpbCddLCBbdHlwZT0nbnVtYmVyJ10sIFt0eXBlPSdzZWFyY2gnXSwgW3R5cGU9J3RlbCddLCBbdHlwZT0ndGltZSddLCBbdHlwZT0ndXJsJ10sIFt0eXBlPSdjb2xvciddLFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuW3R5cGU9J3RleHQnXTpmb2N1cywgW3R5cGU9J3Bhc3N3b3JkJ106Zm9jdXMsIFt0eXBlPSdkYXRlJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXTpmb2N1cywgW3R5cGU9J21vbnRoJ106Zm9jdXMsIFt0eXBlPSd3ZWVrJ106Zm9jdXMsIFt0eXBlPSdlbWFpbCddOmZvY3VzLCBbdHlwZT0nbnVtYmVyJ106Zm9jdXMsIFt0eXBlPSdzZWFyY2gnXTpmb2N1cywgW3R5cGU9J3RlbCddOmZvY3VzLCBbdHlwZT0ndGltZSddOmZvY3VzLCBbdHlwZT0ndXJsJ106Zm9jdXMsIFt0eXBlPSdjb2xvciddOmZvY3VzLFxudGV4dGFyZWE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWExYTFhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xufVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxudGV4dGFyZWFbcm93c10ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2FjYWNhO1xufVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5bdHlwZT0nc3VibWl0J10sXG5bdHlwZT0nYnV0dG9uJ10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsW2Zvcl0sXG5bdHlwZT0ncmFkaW8nXSArIGxhYmVsW2Zvcl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG5sYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cblt0eXBlPSdmaWxlJ10ge1xuICB3aWR0aDogMTAwJTtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxubGFiZWwubWlkZGxlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41NjI1cmVtIDA7XG59XG5cbi5oZWxwLXRleHQge1xuICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZCA+ICoge1xuICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWwsIC5pbnB1dC1ncm91cC1maWVsZCwgLmlucHV0LWdyb3VwLWJ1dHRvbiwgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIG1hcmdpbjogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZTRlNGU0O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtZmllbGQge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmbGV4OiAxIDEgMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBpbnB1dCxcbi5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uLFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gIGhlaWdodDogMi41cmVtO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbn1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5maWVsZHNldCB7XG4gIG1hcmdpbjogMS4xMjVyZW0gMDtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbn1cblxuLmZpZWxkc2V0IGxlZ2VuZCB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWxlZnQ6IC0wLjE4NzVyZW07XG4gIHBhZGRpbmc6IDAgMC4xODc1cmVtO1xuICBiYWNrZ3JvdW5kOiAjZTllN2U4O1xufVxuXG5zZWxlY3Qge1xuICBoZWlnaHQ6IDIuNDM3NXJlbTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiByZ2IlMjgyNiwgMjYsIDI2JTI5Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gIHNlbGVjdCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PVwiKTtcbiAgfVxufVxuXG5zZWxlY3Q6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWExYTFhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xufVxuXG5zZWxlY3Q6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5zZWxlY3Q6Oi1tcy1leHBhbmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5zZWxlY3RbbXVsdGlwbGVdIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4uaXMtaW52YWxpZC1pbnB1dDpub3QoOmZvY3VzKSB7XG4gIGJvcmRlci1jb2xvcjogI2VjNTg0MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZWRlYjtcbn1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlYzU4NDA7XG59XG5cbi5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgY29sb3I6ICNlYzU4NDA7XG59XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNlYzU4NDA7XG59XG5cbi5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0LCBjb2xvciAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuYnV0dG9uIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi50aW55IHtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5idXR0b24uc21hbGwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5idXR0b24ubGFyZ2Uge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi5idXR0b24uZXhwYW5kZWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5idXR0b24ucHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi5zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MTUxNTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMmJiNWI7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uYnV0dG9uLndhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2M4YjAwO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmJ1dHRvbi5hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzU4NDA7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhMzExNjtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5idXR0b24uaG9sbG93IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5idXR0b24uaG9sbG93LCAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4uYnV0dG9uLmhvbGxvdy5wcmltYXJ5IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5idXR0b24uaG9sbG93LnByaW1hcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnByaW1hcnk6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IGJsYWNrO1xuICBjb2xvcjogYmxhY2s7XG59XG5cbi5idXR0b24uaG9sbG93LnNlY29uZGFyeSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxYTFhMWE7XG4gIGNvbG9yOiAjMWExYTFhO1xufVxuXG4uYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzBkMGQwZDtcbiAgY29sb3I6ICMwZDBkMGQ7XG59XG5cbi5idXR0b24uaG9sbG93LnN1Y2Nlc3Mge1xuICBib3JkZXI6IDFweCBzb2xpZCAjM2FkYjc2O1xuICBjb2xvcjogIzNhZGI3Njtcbn1cblxuLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgY29sb3I6ICMxNTc1Mzk7XG59XG5cbi5idXR0b24uaG9sbG93Lndhcm5pbmcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZhZTAwO1xuICBjb2xvcjogI2ZmYWUwMDtcbn1cblxuLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgY29sb3I6ICM4MDU3MDA7XG59XG5cbi5idXR0b24uaG9sbG93LmFsZXJ0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VjNTg0MDtcbiAgY29sb3I6ICNlYzU4NDA7XG59XG5cbi5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzg4MWYwZTtcbiAgY29sb3I6ICM4ODFmMGU7XG59XG5cbi5idXR0b24uZGlzYWJsZWQsIC5idXR0b25bZGlzYWJsZWRdIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbi5kaXNhYmxlZDpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZDpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0sIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLnByaW1hcnksIC5idXR0b25bZGlzYWJsZWRdLnByaW1hcnkge1xuICBvcGFjaXR5OiAwLjI1O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLnByaW1hcnksIC5idXR0b24uZGlzYWJsZWQucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5kaXNhYmxlZC5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXS5wcmltYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5LCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnkge1xuICBvcGFjaXR5OiAwLjI1O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLnNlY29uZGFyeSwgLmJ1dHRvbi5kaXNhYmxlZC5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuc2Vjb25kYXJ5OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXS5zZWNvbmRhcnksIC5idXR0b25bZGlzYWJsZWRdLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbi5idXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmJ1dHRvbltkaXNhYmxlZF0uc3VjY2VzcyB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5idXR0b24uZGlzYWJsZWQuc3VjY2VzcywgLmJ1dHRvbi5kaXNhYmxlZC5zdWNjZXNzOmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkLnN1Y2Nlc3M6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3MsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdLnN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nLCAuYnV0dG9uW2Rpc2FibGVkXS53YXJuaW5nIHtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmJ1dHRvbi5kaXNhYmxlZC53YXJuaW5nLCAuYnV0dG9uLmRpc2FibGVkLndhcm5pbmc6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQud2FybmluZzpmb2N1cywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZywgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0ud2FybmluZzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uYnV0dG9uLmRpc2FibGVkLmFsZXJ0LCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydCB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5idXR0b24uZGlzYWJsZWQuYWxlcnQsIC5idXR0b24uZGlzYWJsZWQuYWxlcnQ6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQuYWxlcnQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdLmFsZXJ0LCAuYnV0dG9uW2Rpc2FibGVkXS5hbGVydDpob3ZlciwgLmJ1dHRvbltkaXNhYmxlZF0uYWxlcnQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM1ODQwO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCAwLjRlbTtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNmZWZlZmUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwLjRlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG5cbi5idXR0b24uYXJyb3ctb25seTo6YWZ0ZXIge1xuICB0b3A6IC0wLjFlbTtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uY2FsbG91dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmNhbGxvdXQgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jYWxsb3V0LnByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDlkOWQ5O1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmNhbGxvdXQuc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZGRkZDtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG5cbi5jYWxsb3V0LnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFmYWVhO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmNhbGxvdXQud2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYzZDk7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uY2FsbG91dC5hbGVydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2U2ZTI7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uY2FsbG91dC5zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG59XG5cbi5jYWxsb3V0LmxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDNyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICBwYWRkaW5nLWxlZnQ6IDNyZW07XG59XG5cbi5jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAjMWExYTFhO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmNsb3NlLWJ1dHRvbjpob3ZlciwgLmNsb3NlLWJ1dHRvbjpmb2N1cyB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uY2xvc2UtYnV0dG9uLnNtYWxsIHtcbiAgcmlnaHQ6IDAuNjZyZW07XG4gIHRvcDogMC4zM2VtO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmNsb3NlLWJ1dHRvbiwgLmNsb3NlLWJ1dHRvbi5tZWRpdW0ge1xuICByaWdodDogMXJlbTtcbiAgdG9wOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLm1lbnUge1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWVudSA+IGxpIHtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAubWVudSA+IGxpIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLm1lbnUgPiBsaSA+IGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubWVudSBpbnB1dCxcbi5tZW51IHNlbGVjdCxcbi5tZW51IGEsXG4ubWVudSBidXR0b24ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWVudSA+IGxpID4gYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5tZW51ID4gbGkgPiBhIHtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xufVxuXG4ubWVudSA+IGxpID4gYSBpbWcsXG4ubWVudSA+IGxpID4gYSBpLFxuLm1lbnUgPiBsaSA+IGEgc3ZnIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xufVxuXG4ubWVudSwgLm1lbnUuaG9yaXpvbnRhbCB7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuXG4ubWVudSA+IGxpLCAubWVudS5ob3Jpem9udGFsID4gbGkge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLm1lbnUuZXhwYW5kZWQgPiBsaSB7XG4gIGZsZXg6IDEgMSAwcHg7XG59XG5cbi5tZW51LmV4cGFuZGVkID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubWVudS52ZXJ0aWNhbCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLm1lbnUudmVydGljYWwgPiBsaSB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5tZW51LnZlcnRpY2FsID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLm1lbnUueHNtYWxsLWhvcml6b250YWwge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG4gIC5tZW51LnhzbWFsbC1ob3Jpem9udGFsID4gbGkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIC5tZW51LnhzbWFsbC1leHBhbmRlZCA+IGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG4gIC5tZW51LnhzbWFsbC1leHBhbmRlZCA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5tZW51LnhzbWFsbC12ZXJ0aWNhbCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5tZW51LnhzbWFsbC12ZXJ0aWNhbCA+IGxpIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lbnUueHNtYWxsLXZlcnRpY2FsID4gbGkgPiBhIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1lbnUubWVkaXVtLWhvcml6b250YWwge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG4gIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIC5tZW51Lm1lZGl1bS1leHBhbmRlZCA+IGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG4gIC5tZW51Lm1lZGl1bS1leHBhbmRlZCA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiBhIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuICAubWVudS5sYXJnZS1leHBhbmRlZCA+IGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICB9XG4gIC5tZW51LmxhcmdlLWV4cGFuZGVkID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lbnUubGFyZ2UtdmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSA+IGEge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5tZW51LnhsYXJnZS1ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICAubWVudS54bGFyZ2UtaG9yaXpvbnRhbCA+IGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuICAubWVudS54bGFyZ2UtZXhwYW5kZWQgPiBsaSB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxuICAubWVudS54bGFyZ2UtZXhwYW5kZWQgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubWVudS54bGFyZ2UtdmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5tZW51LnhsYXJnZS12ZXJ0aWNhbCA+IGxpID4gYSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMGVtKSB7XG4gIC5tZW51Lnh4bGFyZ2UtaG9yaXpvbnRhbCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgLm1lbnUueHhsYXJnZS1ob3Jpem9udGFsID4gbGkge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG4gIC5tZW51Lnh4bGFyZ2UtZXhwYW5kZWQgPiBsaSB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgfVxuICAubWVudS54eGxhcmdlLWV4cGFuZGVkID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLm1lbnUueHhsYXJnZS12ZXJ0aWNhbCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaSA+IGEge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxufVxuXG4ubWVudS5zaW1wbGUgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubWVudS5zaW1wbGUgYSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tZW51LnNpbXBsZSBsaSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG5cbi5tZW51LnNpbXBsZS5hbGlnbi1yaWdodCBsaSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG59XG5cbi5tZW51LmFsaWduLXJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEge1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG59XG5cbi5tZW51Lmljb24tdG9wID4gbGkgPiBhIGltZyxcbi5tZW51Lmljb24tdG9wID4gbGkgPiBhIGksXG4ubWVudS5pY29uLXRvcCA+IGxpID4gYSBzdmcge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW51Lmljb24tdG9wLnZlcnRpY2FsIGEgPiBzcGFuIHtcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4ubWVudS5uZXN0ZWQge1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbn1cblxuLm1lbnUgLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLm1lbnUubWVudS1ib3JkZXJlZCBsaSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7XG59XG5cbi5tZW51Lm1lbnUtYm9yZGVyZWQgbGk6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4ubWVudS5tZW51LWhvdmVyIGxpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcbn1cblxuLm1lbnUtdGV4dCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5tZW51LWNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWVudS1jZW50ZXJlZCA+IC5tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4ubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tZW51LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWVudS1pY29uOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBib3gtc2hhZG93OiAwIDdweCAwICNmZWZlZmUsIDAgMTRweCAwICNmZWZlZmU7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4ubWVudS1pY29uOmhvdmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNjYWNhY2E7XG4gIGJveC1zaGFkb3c6IDAgN3B4IDAgI2NhY2FjYSwgMCAxNHB4IDAgI2NhY2FjYTtcbn1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBib3gtc2hhZG93OiAwIDdweCAwICMwMDAwMDAsIDAgMTRweCAwICMwMDAwMDA7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4ubWVudS1pY29uLmRhcms6aG92ZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzFhMWExYTtcbiAgYm94LXNoYWRvdzogMCA3cHggMCAjMWExYTFhLCAwIDE0cHggMCAjMWExYTFhO1xufVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG59XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG59XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIHJpZ2h0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC0zcHg7XG59XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHJvcGRvd24ubWVudSBhIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLm5vLWpzIC5kcm9wZG93bi5tZW51IHVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMDtcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bztcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwMCU7XG59XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxNHB4O1xufVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5kcm9wZG93bi5tZW51LnhzbWFsbC1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuZHJvcGRvd24ubWVudS54c21hbGwtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LnhzbWFsbC1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LnhzbWFsbC1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54c21hbGwtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LnhzbWFsbC12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuZHJvcGRvd24ubWVudS54c21hbGwtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LnhzbWFsbC12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4O1xuICB9XG4gIC5kcm9wZG93bi5tZW51LnhzbWFsbC12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIC5kcm9wZG93bi5tZW51LnhzbWFsbC12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwMDAwMDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4O1xuICB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUueGxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUueGxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUueGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzAwMDAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUueHhsYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUueHhsYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDtcbiAgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgLmRyb3Bkb3duLm1lbnUueHhsYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwMDAwMDtcbiAgfVxufVxuXG4uZHJvcGRvd24ubWVudS5hbGlnbi1yaWdodCAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDtcbn1cblxuLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwuYWxpZ24tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IGE6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXRvcDogLTZweDtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bztcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwMDAwMDAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzAwMDAwMDtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ub3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm9yYml0LXNsaWRlLm5vLW1vdGlvbnVpLmlzLWFjdGl2ZSB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuLm9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLm9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4ub3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLm9yYml0LXByZXZpb3VzLCAub3JiaXQtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGNvbG9yOiAjZmVmZWZlO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LXByZXZpb3VzLCBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LW5leHQge1xuICBvdXRsaW5lOiAwO1xufVxuXG4ub3JiaXQtcHJldmlvdXM6aG92ZXIsIC5vcmJpdC1uZXh0OmhvdmVyLCAub3JiaXQtcHJldmlvdXM6YWN0aXZlLCAub3JiaXQtbmV4dDphY3RpdmUsIC5vcmJpdC1wcmV2aW91czpmb2N1cywgLm9yYml0LW5leHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbi5vcmJpdC1wcmV2aW91cyB7XG4gIGxlZnQ6IDA7XG59XG5cbi5vcmJpdC1uZXh0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG59XG5cbi5vcmJpdC1idWxsZXRzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAwLjhyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LWJ1bGxldHMge1xuICBvdXRsaW5lOiAwO1xufVxuXG4ub3JiaXQtYnVsbGV0cyBidXR0b24ge1xuICB3aWR0aDogMC43NXJlbTtcbiAgaGVpZ2h0OiAwLjc1cmVtO1xuICBtYXJnaW46IDAuMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhO1xufVxuXG4ub3JiaXQtYnVsbGV0cyBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhO1xufVxuXG4ub3JiaXQtYnVsbGV0cyBidXR0b24uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTtcbn1cblxuYm9keS5pcy1yZXZlYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmh0bWwuaXMtcmV2ZWFsLW9wZW4sXG5odG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnJldmVhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLnJldmVhbCB7XG4gIHotaW5kZXg6IDEwMDY7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG5bZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnJldmVhbCB7XG4gIG91dGxpbmU6IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yZXZlYWwge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cbn1cblxuLnJldmVhbCAuY29sdW1uLCAucmV2ZWFsIC5jb2x1bW5zLFxuLnJldmVhbCAuY29sdW1ucyB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnJldmVhbCA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbCB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbCAucmV2ZWFsIHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbi5yZXZlYWwuY29sbGFwc2Uge1xuICBwYWRkaW5nOiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmV2ZWFsLnRpbnkge1xuICAgIHdpZHRoOiAzMCU7XG4gICAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmV2ZWFsLnNtYWxsIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1heC13aWR0aDogNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJldmVhbC5sYXJnZSB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDc1cmVtO1xuICB9XG59XG5cbi5yZXZlYWwuZnVsbCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjkuOTM3NWVtKSB7XG4gIC5yZXZlYWwge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4ucmV2ZWFsLndpdGhvdXQtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLnNsaWRlLWluLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWRlLWluLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4uc2xpZGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbn1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbn1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG5cbi5zbGlkZS1vdXQtbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbn1cblxuLmZhZGUtaW4ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG59XG5cbi5mYWRlLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xufVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGluZ2UtaW4tZnJvbS1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS1ib3R0b20ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zcGluLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7XG59XG5cbi5mYXN0IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMjUwbXMgIWltcG9ydGFudDtcbn1cblxuLmxpbmVhciB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDtcbn1cblxuLmVhc2Uge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50O1xufVxuXG4uZWFzZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluICFpbXBvcnRhbnQ7XG59XG5cbi5lYXNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50O1xufVxuXG4uZWFzZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDtcbn1cblxuLmJvdW5jZS1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDtcbn1cblxuLmJvdW5jZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50O1xufVxuXG4uYm91bmNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDtcbn1cblxuLnNob3J0LWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMzAwbXMgIWltcG9ydGFudDtcbn1cblxuLmxvbmctZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50O1xufVxuXG4uc2hha2Uge1xuICBhbmltYXRpb24tbmFtZTogc2hha2UtNztcbn1cblxuQGtleWZyYW1lcyBzaGFrZS03IHtcbiAgMCUsIDEwJSwgMjAlLCAzMCUsIDQwJSwgNTAlLCA2MCUsIDcwJSwgODAlLCA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3JSk7XG4gIH1cbiAgNSUsIDE1JSwgMjUlLCAzNSUsIDQ1JSwgNTUlLCA2NSUsIDc1JSwgODUlLCA5NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNyUpO1xuICB9XG59XG5cbi5zcGluLWN3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47XG59XG5cbkBrZXlmcmFtZXMgc3Bpbi1jdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB9XG59XG5cbi5zcGluLWNjdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuO1xufVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pO1xuICB9XG59XG5cbi53aWdnbGUge1xuICBhbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7XG59XG5cbkBrZXlmcmFtZXMgd2lnZ2xlLTdkZWcge1xuICA0MCUsIDUwJSwgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg3ZGVnKTtcbiAgfVxuICAzNSUsIDQ1JSwgNTUlLCA2NSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC03ZGVnKTtcbiAgfVxuICAwJSwgMzAlLCA3MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB9XG59XG5cbi5zaGFrZSxcbi5zcGluLWN3LFxuLnNwaW4tY2N3LFxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7XG59XG5cbi5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuXG4uc2xvdyB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDtcbn1cblxuLmZhc3Qge1xuICBhbmltYXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7XG59XG5cbi5saW5lYXIge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDtcbn1cblxuLmVhc2Uge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7XG59XG5cbi5lYXNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50O1xufVxuXG4uZWFzZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50O1xufVxuXG4uZWFzZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50O1xufVxuXG4uYm91bmNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7XG59XG5cbi5ib3VuY2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50O1xufVxuXG4uYm91bmNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50O1xufVxuXG4uc2hvcnQtZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5sb25nLWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQYWdlIExheW91dFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xufVxuXG5ib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG5ib2R5Lm92ZXJmbG93LWhpZGRlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wYWdlX3dyYXBwZXIge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5wYWdlX2NvbHVtbi13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnBhZ2VfbGF5b3V0LTAtMS0wIC5wYWdlX2NvbHVtbi0xIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnBhZ2VfbGF5b3V0LTMtMS0wIC5wYWdlX2NvbHVtbi0xIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAucGFnZV9sYXlvdXQtMy0xLTAgLnBhZ2VfY29sdW1uLTMge1xuICAgIG1hcmdpbjogMCA3NSUgMCAwO1xuICB9XG4gIC5wYWdlX2xheW91dC0zLTEtMCAucGFnZV9jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgfVxuICAucGFnZV9sYXlvdXQtMy0xLTAgLnBhZ2Vfc2lkZWJhciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wYWdlX2xheW91dC0xLTMtMCAucGFnZV9jb2x1bW4tMSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAucGFnZV9sYXlvdXQtMS0zLTAgLnBhZ2VfY29sdW1uLTMge1xuICAgIG1hcmdpbjogMCAwIDAgMjUlO1xuICB9XG4gIC5wYWdlX2xheW91dC0xLTMtMCAucGFnZV9jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgfVxuICAucGFnZV9sYXlvdXQtMS0zLTAgLnBhZ2Vfc2lkZWJhciB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjI1cmVtO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEdyaWQgLSBGb3VuZGF0aW9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uZXhwYW5kZWQgLnJvdyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogNzVyZW07XG59XG5cbi5iZy1jb2xvci1saWdodGdyZXkge1xuICBib3JkZXItbGVmdDogMC42OTQ0NHJlbSBzb2xpZCAjZTRlNGU0O1xuICBib3JkZXItcmlnaHQ6IDAuNjk0NDRyZW0gc29saWQgI2U0ZTRlNDtcbiAgcGFkZGluZzogMS41cmVtO1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmJnLWNvbG9yLWxpZ2h0Z3JleSB7XG4gICAgYm9yZGVyLWxlZnQ6IDEuMDQxNjdyZW0gc29saWQgI2U0ZTRlNDtcbiAgICBib3JkZXItcmlnaHQ6IDEuMDQxNjdyZW0gc29saWQgI2U0ZTRlNDtcbiAgfVxufVxuXG4uYmctY29sb3ItcHJpbWFyeSB7XG4gIGJvcmRlci1sZWZ0OiAwLjY5NDQ0cmVtIHNvbGlkICNlNGU0ZTQ7XG4gIGJvcmRlci1yaWdodDogMC42OTQ0NHJlbSBzb2xpZCAjZTRlNGU0O1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYmctY29sb3ItcHJpbWFyeSB7XG4gICAgYm9yZGVyLWxlZnQ6IDEuMDQxNjdyZW0gc29saWQgI2U0ZTRlNDtcbiAgICBib3JkZXItcmlnaHQ6IDEuMDQxNjdyZW0gc29saWQgI2U0ZTRlNDtcbiAgfVxufVxuXG4ucm93LW9uZS1jb2x1bW4gPiAqIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1vbmUtY29sdW1uID4gKiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5yb3ctdHdvLWNvbHVtbnMgPiAqIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy10d28tY29sdW1ucyA+ICoge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucm93LXR3by1jb2x1bW5zID4gKiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LXR3by1jb2x1bW5zID4gKiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5yb3ctdGhyZWUtY29sdW1ucyA+ICoge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LXRocmVlLWNvbHVtbnMgPiAqIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy10aHJlZS1jb2x1bW5zID4gKiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LXRocmVlLWNvbHVtbnMgPiAqIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnJvdy10aHJlZS1jb2x1bW5zID4gKiB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LXRocmVlLWNvbHVtbnMgPiAqIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLnJvdy1mb3VyLWNvbHVtbnMgPiAqIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1mb3VyLWNvbHVtbnMgPiAqIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1mb3VyLWNvbHVtbnMgPiAqIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yb3ctZm91ci1jb2x1bW5zID4gKiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5yb3ctZm91ci1jb2x1bW5zID4gKiB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LWZvdXItY29sdW1ucyA+ICoge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ucm93LWJpZy1zbWFsbCA+ICo6bnRoLWNoaWxkKG9kZCkge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LWJpZy1zbWFsbCA+ICo6bnRoLWNoaWxkKG9kZCkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LWJpZy1zbWFsbCA+ICo6bnRoLWNoaWxkKG9kZCkge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1iaWctc21hbGwgPiAqOm50aC1jaGlsZChvZGQpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnJvdy1iaWctc21hbGwgPiAqOm50aC1jaGlsZChvZGQpIHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yb3ctYmlnLXNtYWxsID4gKjpudGgtY2hpbGQob2RkKSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5yb3ctYmlnLXNtYWxsID4gKjpudGgtY2hpbGQoZXZlbikge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LWJpZy1zbWFsbCA+ICo6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1iaWctc21hbGwgPiAqOm50aC1jaGlsZChldmVuKSB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LWJpZy1zbWFsbCA+ICo6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnJvdy1iaWctc21hbGwgPiAqOm50aC1jaGlsZChldmVuKSB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LWJpZy1zbWFsbCA+ICo6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLnJvdy1zbWFsbC1iaWcgPiAqOm50aC1jaGlsZChvZGQpIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1zbWFsbC1iaWcgPiAqOm50aC1jaGlsZChvZGQpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1zbWFsbC1iaWcgPiAqOm50aC1jaGlsZChvZGQpIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yb3ctc21hbGwtYmlnID4gKjpudGgtY2hpbGQob2RkKSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5yb3ctc21hbGwtYmlnID4gKjpudGgtY2hpbGQob2RkKSB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucm93LXNtYWxsLWJpZyA+ICo6bnRoLWNoaWxkKG9kZCkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ucm93LXNtYWxsLWJpZyA+ICo6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1zbWFsbC1iaWcgPiAqOm50aC1jaGlsZChldmVuKSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5yb3ctc21hbGwtYmlnID4gKjpudGgtY2hpbGQoZXZlbikge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1zbWFsbC1iaWcgPiAqOm50aC1jaGlsZChldmVuKSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5yb3ctc21hbGwtYmlnID4gKjpudGgtY2hpbGQoZXZlbikge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnJvdy1zbWFsbC1iaWcgPiAqOm50aC1jaGlsZChldmVuKSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5yZW1vdmUtZ3JpZCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGZsZXg6IDAgMCAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNaXNjZWxsYW5lb3VzIC0gR2xvYmFsXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uaW52aXNpYmxlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmZsb2F0X2Fib3ZlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmZsb2F0X2xlZnQge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZmxvYXRfbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICB9XG59XG5cbi5mbG9hdF9yaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5mbG9hdF9yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICB9XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uLFxuc2VsZWN0LFxuLnN1Ym1pdCxcbi5yZXZlYWwsXG5hLmVkaXQge1xuICBvdXRsaW5lOiAwO1xufVxuXG5wLmVycm9yLFxuLm1vZF9pc29fY2FydCAuY291cG9uIC5mYWlsZWQge1xuICBwYWRkaW5nOiAwLjg1ZW0gMC41ZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQ6ICNlYzU4NDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFR5cG9ncmFwaHkgLSBHbG9iYWxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmJvZHkge1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19zdWJoZWFkbGluZSB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmgxIHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbmgzIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxucCwgdGQsIGxpIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLnJldmVhbCBvbCxcbi5wYWdlX2NvbnRlbnQgb2wge1xuICBtYXJnaW4tbGVmdDogMS43NXJlbTtcbn1cblxuc2VsZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbiAgbWFyZ2luOiAwIDAgMC41cmVtO1xufVxuXG4ucGFnZV9jb2x1bW4tMSBzZWxlY3Qge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG4jY3RybF90YXJnZXQge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG59XG5cbm9wdGlvbiB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQYWdlIE1haW4gRWxlbWVudHMgLSBIZWFkZXIsIFRlYXNlciwgQ29udGVudCwgU2lkZWJhciwgRm9vdGVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udG9wLW5hdmlnYXRpb24ge1xuICB6LWluZGV4OiAxMDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2U5ZTdlODtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnRvcC1uYXZpZ2F0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgfVxufVxuXG4udG9wLW5hdmlnYXRpb25fbG9nbyB7XG4gIG1hcmdpbi10b3A6IDEuMjVlbTtcbiAgei1pbmRleDogMTAwO1xufVxuXG4udG9wLW5hdmlnYXRpb25fbG9nbyAuaW1hZ2VfY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG5cbi50b3AtbmF2aWdhdGlvbl9zaG9wIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC50b3AtbmF2aWdhdGlvbl9zaG9wIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLnRvcC1uYXZpZ2F0aW9uX3Nob3AgLmxpbmtfYmFza2V0OmFmdGVyIHtcbiAgY29udGVudDogXCLuqIJcIjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ucGFnZV90ZWFzZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDdlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnBhZ2VfdGVhc2VyIHtcbiAgICBtYXJnaW4tdG9wOiAtMS41ZW07XG4gIH1cbn1cblxuLnBhZ2VfdGVhc2VyIC5tb2RfbmF2aWdhdGlvbiB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ucGFnZV90ZWFzZXIgLm1vZF9uYXZpZ2F0aW9uIGxpIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbn1cblxuLnBhZ2VfdGVhc2VyIC5tb2RfbmF2aWdhdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLnBhZ2Vfd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucGFnZV93cmFwcGVyIHtcbiAgICB0b3A6IDEyZW07XG4gIH1cbn1cblxuLnBhZ2VfY29sdW1uLXdyYXBwZXIge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wYWdlX2NvbHVtbi13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnBhZ2VfY29sdW1uLXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDQ1cHg7XG4gIH1cbn1cblxuLnBhZ2VfdHlwZS1ob21lIC5wYWdlX2NvbHVtbi13cmFwcGVyLFxuLnBhZ2VfdHlwZS1zaG9wbGlzdCAucGFnZV9jb2x1bW4td3JhcHBlciB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucGFnZV90eXBlLWhvbWUgLnBhZ2VfY29sdW1uLXdyYXBwZXIsXG4gIC5wYWdlX3R5cGUtc2hvcGxpc3QgLnBhZ2VfY29sdW1uLXdyYXBwZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbi5wYWdlX2NvbnRlbnQgLmNlX3RleHQgYSwgLnBhZ2VfY29udGVudCAuY2VfaXRlbS1pbnRyby10ZXh0X19jb250ZW50IGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2VfY29udGVudCAuY2VfdGV4dCBhLmJ1dHRvbiB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmltYWdlX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuXG4uY2VfaW1hZ2UgLmNhcHRpb24ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBib3R0b206IDA7XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMXJlbTtcbiAgei1pbmRleDogMjtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNlX2ltYWdlIC5jYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICB9XG59XG5cbi5wYWdlX2NvbnRlbnQgLmNlX2ltYWdlIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucGFnZV9jb250ZW50IC5pbWFnZV9jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucGFnZV9jb250ZW50IC5pbWFnZV9jb250YWluZXIgYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wYWdlX2NvbnRlbnQgLmltYWdlX2NvbnRhaW5lciBhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjYsIDI2LCAyNiwgMC43KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NpZ25ldC1hdGVsaWVyLWNpbmNpbi13aGl0ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiAwLjJzIG9wYWNpdHkgbGluZWFyO1xufVxuXG4ucGFnZV9jb250ZW50IC5pbWFnZV9jb250YWluZXIgYTpob3ZlcjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucGFnZV9zaWRlYmFyIC5jZV9pbWFnZSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5wYWdlX3NpZGViYXItcXVpY2tuYXZpZ2F0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLnBhZ2Vfc2lkZWJhci1xdWlja25hdmlnYXRpb24gc2VsZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnBhZ2Vfc2lkZWJhci1xdWlja25hdmlnYXRpb24sXG4ucGFnZV9zaWRlYmFyLWJhc2tldC1taW5pIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gIC5wYWdlX3NpZGViYXItcXVpY2tuYXZpZ2F0aW9uLFxuICAucGFnZV9zaWRlYmFyLWJhc2tldC1taW5pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnBhZ2Vfc2lkZWJhci1pc290b3BlLWZpbHRlcixcbi5wYWdlX3NpZGViYXItYmFza2V0LW1pbmkge1xuICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgYmFja2dyb3VuZDogI2RkZGFkYjtcbn1cblxuLnBhZ2Vfc2lkZWJhci1pc290b3BlLWZpbHRlciB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5wYWdlX3NpZGViYXItYmFja2xpbmsge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucGFnZV9zaWRlYmFyLWJhY2tsaW5rIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5wYWdlX3NpZGViYXItYmFja2xpbmsgLmJhY2tsaW5rIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbn1cblxuLnBhZ2Vfc2lkZWJhci1iYWNrbGluayAuYmFja2xpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCLut4pcIjtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIHRvcDogM3B4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLnBhZ2Vfc2lkZWJhci1zdWJuYXZpZ2F0aW9uIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnBhZ2Vfc2lkZWJhci1zdWJuYXZpZ2F0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5wYWdlX3NpZGViYXItc3VibmF2aWdhdGlvbiB1bCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5wYWdlX3NpZGViYXItc3VibmF2aWdhdGlvbiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubW9kX2JyZWFkY3J1bWIsXG4ubW9kX2JyZWFkY3J1bWIgYSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5wYWdlX2Zvb3RlciB7XG4gIGJhY2tncm91bmQ6ICNkN2Q3ZDc7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBwYWRkaW5nLXRvcDogMC4xcmVtO1xufVxuXG4ucGFnZV9mb290ZXIgYSB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4ucGFnZV9mb290ZXIgYTpmb2N1cyxcbi5wYWdlX2Zvb3RlciBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5wYWdlX2Zvb3RlciBhLmJ1dHRvbjpmb2N1cyxcbi5wYWdlX2Zvb3RlciBhLmJ1dHRvbjpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnBhZ2VfZm9vdGVyIC5yb3c6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4ucGFnZV9mb290ZXIgLmNlX3RleHQge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ucGFnZV9mb290ZXIgLmNlX3RleHQ6bnRoLWNoaWxkKDMpIGltZyB7XG4gIG1heC13aWR0aDogNTBweDtcbn1cblxuLnBhZ2VfZm9vdGVyIGgyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGFnZSBUeXBlIEVsZW1lbnRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb250ZW50IFR5cGUgRWxlbWVudHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jb250ZW50X3R5cGUtc29jaWFsIC5zb2NpYWwtbGlua3Mge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5jb250ZW50X3R5cGUtc29jaWFsIGEge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi5jb250ZW50X3R5cGUtc29jaWFsIGE6YmVmb3JlIHtcbiAgY29udGVudDogXCLuu7BcIjtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4uY29udGVudF90eXBlLXNvY2lhbCBhOmhvdmVyLCAuY29udGVudF90eXBlLXNvY2lhbCBhOmZvY3VzLCAuY29udGVudF90eXBlLXNvY2lhbCBhOmFjdGl2ZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmNvbnRlbnRfdHlwZS1zb2NpYWwgYSBzcGFuIHtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmNvbnRlbnRfdHlwZS1zb2NpYWwgYS5waW50ZXJlc3Qge1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xufVxuXG4uY29udGVudF90eXBlLXNvY2lhbCBhLnBpbnRlcmVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIu68sFwiO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5jb250ZW50X3R5cGUtc29jaWFsIGEuaW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7ruxXCI7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLmNvbnRlbnRfdHlwZS1jb3B5cmlnaHQgcCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTmF2aWdhdGlvbiAtIEZvdW5kYXRpb25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI5LjkzNzVlbSkge1xuICAubm8tanMgLnRvcC1iYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm5vLWpzIC50aXRsZS1iYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxvZ28ge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmxvZ28ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4udGl0bGUtYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi50b3AtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTk5O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnRvcC1iYXIge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuXG4udGl0bGUtYmFyIC5tZW51LWljb24ge1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLm1lbnUtaWNvbjphZnRlciB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDAgI2ZlZmVmZSwgMCAxMnB4IDAgI2ZlZmVmZTtcbn1cblxuLm1lbnUtaWNvbjpob3ZlcjphZnRlciB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDAgI2ZlZmVmZSwgMCAxMnB4IDAgI2ZlZmVmZTtcbn1cblxuLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIH1cbn1cblxuLnRvcC1iYXIgYSB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnRvcC1iYXIgYSB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgfVxufVxuXG4udG9wLWJhciBhLmFjdGl2ZSwgLnRvcC1iYXIgYS50cmFpbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAudG9wLWJhciBhLmFjdGl2ZSwgLnRvcC1iYXIgYS50cmFpbCB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cbn1cblxuLnRvcC1iYXIgLm1lbnUubmVzdGVkIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC50b3AtYmFyIC5tZW51Lm5lc3RlZCB7XG4gICAgYm94LXNoYWRvdzogMnB4IDJweCA3cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgYmFja2dyb3VuZDogIzFhMWExYTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAudG9wLWJhciB1bCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5cbi50b3AtYmFyIHVsIHVsIGEge1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTQsIDI1NCwgMjU0LCAwLjA1KTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnRvcC1iYXIgdWwgdWwgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHJnYmEoMjU0LCAyNTQsIDI1NCwgMC4wNSk7XG4gIH1cbn1cblxuLnRvcC1iYXIgdWwgdWwgYS5hY3RpdmUsXG4udG9wLWJhciB1bCB1bCBhLnRyYWlsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxMDEwMTtcbiAgY29sb3I6ICNmZWZlZmU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC50b3AtYmFyIHVsIHVsIGE6aG92ZXIsXG4gIC50b3AtYmFyIHVsIHVsIGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICB9XG59XG5cbi50b3AtYmFyIHVsLnZlcnRpY2FsLmRyb3Bkb3duIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgbWluLXdpZHRoOiAyNzBweDtcbiAgYm9yZGVyOiAwO1xufVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbC5kcm9wZG93biA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTphZnRlcixcbi5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmVmZWZlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDAgc29saWQ7XG59XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsLmRyb3Bkb3duID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOmFmdGVyLFxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6YWZ0ZXIge1xuICBjb250ZW50OiBcIu63gFwiO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgZm9udC1zaXplOiAuNXJlbTtcbiAgcmlnaHQ6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUudmVydGljYWwuZHJvcGRvd24gPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6YWZ0ZXIsXG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOmFmdGVyIHtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICB0b3A6IDExcHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuICB9XG59XG5cbi50b3AtYmFyIC5hY2NvcmRpb24tbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLnRvcC1iYXIgLmFjY29yZGlvbi1tZW51IGxpIGEge1xuICBjb2xvcjogI2ZlZmVmZTtcbn1cblxuLnRvcC1iYXIgLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1pdGVtIGEge1xuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIElzb3RvcGVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbltjbGFzcyo9XCJtb2RfaXNvXCJdIC5jbGVhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbltjbGFzcyo9XCJtb2RfaXNvXCJdIC5yZXZpZXcgYS5lZGl0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0bGlzdCAuaW1hZ2VfY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0bGlzdCAuZW1wdHkubWVzc2FnZSB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5tb2RfaXNvX3Byb2R1Y3RsaXN0IC5lbXB0eS5tZXNzYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cbi5wcm9kdWN0X2xpc3Qge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xufVxuXG4ucHJvZHVjdF9saXN0IC5wcm9kdWN0IHtcbiAgZmxleDogMCAwIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgbWFyZ2luLWJvdHRvbTogMzdweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnByb2R1Y3RfbGlzdCAucHJvZHVjdCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wcm9kdWN0X2xpc3QgLnByb2R1Y3Qge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICBtYXJnaW4tYm90dG9tOiA0N3B4O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucHJvZHVjdF9saXN0IC5wcm9kdWN0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLnByb2R1Y3RfbGlzdC5zaW1pbGFyX3Byb2R1Y3RzIHtcbiAgbWFyZ2luLXRvcDogM3JlbTtcbiAgcGFkZGluZy10b3A6IDNyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2FjYWNhO1xufVxuXG4ucHJvZHVjdF9saXN0LnNpbWlsYXJfcHJvZHVjdHMgLnByb2R1Y3Qge1xuICBmbGV4OiAwIDAgNTAlO1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNTAlO1xuICBtYXJnaW4tYm90dG9tOiAzN3B4O1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucHJvZHVjdF9saXN0LnNpbWlsYXJfcHJvZHVjdHMgLnByb2R1Y3Qge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucHJvZHVjdF9saXN0LnNpbWlsYXJfcHJvZHVjdHMgLnByb2R1Y3Qge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7XG4gICAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTtcbiAgICBtYXJnaW4tYm90dG9tOiA0N3B4O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucHJvZHVjdF9saXN0LnNpbWlsYXJfcHJvZHVjdHMgLnByb2R1Y3Qge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ucHJvZHVjdF9saXN0IC5mb3JtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnByb2R1Y3RfbGlzdCAuaW1hZ2VfY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbn1cblxuLnByb2R1Y3RfbGlzdCAuaW1hZ2VfY29udGFpbmVyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvZHVjdF9saXN0IC5wcmljZSB7XG4gIHotaW5kZXg6IDI7XG59XG5cbi5wcm9kdWN0X2xpc3QgLmRldGFpbHMge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ucHJvZHVjdF9saXN0IC5wcm9wZXJ0eV9zdGF0dXMtbmV3IHtcbiAgei1pbmRleDogMjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xufVxuXG4ucHJvZHVjdF9saXN0IC5wcm9wZXJ0eV9zdGF0dXMtbmV3OmJlZm9yZSB7XG4gIHotaW5kZXg6IDI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJ05FVSc7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDAuNWVtO1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgcGFkZGluZzogNHB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RmaWx0ZXIgLmNvbHVtbl9maWx0ZXIge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kX2lzb19wcm9kdWN0ZmlsdGVyIC5jb2x1bW5fZmlsdGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuY29sdW1uX2ZpbHRlciB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNTAlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kX2lzb19wcm9kdWN0ZmlsdGVyIC5jb2x1bW5fZmlsdGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuY29sdW1uX2ZpbHRlciB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1heC13aWR0aDogMjUlO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kX2lzb19wcm9kdWN0ZmlsdGVyIC5jb2x1bW5fZmlsdGVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuY29sdW1uX2NsZWFyIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuY29sdW1uX2NsZWFyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDYuODc1ZW0pIHtcbiAgLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuY29sdW1uX2NsZWFyIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiAyNSU7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDYuODc1ZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2RfaXNvX3Byb2R1Y3RmaWx0ZXIgLmNvbHVtbl9jbGVhciB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RmaWx0ZXIgLnNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuc2VhcmNoIGxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0ZmlsdGVyIC5zZWFyY2ggLmF3ZXNvbXBsZXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0ZmlsdGVyIC5zZWFyY2ggaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RmaWx0ZXIgLnNlYXJjaCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogIzAwMDAwMCB1cmwoXCIuLi9pbWcvaWNvbi1zZWFyY2guc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMjBweCAyMHB4O1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIGltZyB7XG4gIGJhY2tncm91bmQ6ICM1MzUxNTI7XG59XG5cbi5wcm9kdWN0X2luZm9ybWF0aW9uIC5uYW1lLFxuLnByb2R1Y3RfaW5mb3JtYXRpb24gLnF1YW50aXR5X2NvbnRhaW5lciBsYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLmZvcm1ib2R5IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLmZvcm1ib2R5IHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgfVxufVxuXG4ucHJvZHVjdF9nYWxsZXJ5LFxuLnByb2R1Y3RfaW5mb3JtYXRpb24ge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucHJvZHVjdF9nYWxsZXJ5LFxuICAucHJvZHVjdF9pbmZvcm1hdGlvbiB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5wcm9kdWN0X2dhbGxlcnksXG4gIC5wcm9kdWN0X2luZm9ybWF0aW9uIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wcm9kdWN0X2dhbGxlcnksXG4gIC5wcm9kdWN0X2luZm9ybWF0aW9uIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuLnByb2R1Y3RfZ2FsbGVyeS10aHVtYm5haWxzIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wcm9kdWN0X2dhbGxlcnktdGh1bWJuYWlscyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIH1cbn1cblxuLnByb2R1Y3RfZ2FsbGVyeS10aHVtYm5haWxzIGZpZ3VyZSB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wcm9kdWN0X2dhbGxlcnktdGh1bWJuYWlscyBmaWd1cmUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ucHJvZHVjdF9pbmZvcm1hdGlvbiAucHJvZHVjdF9jYXRlZ29yeSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLnByb2R1Y3RfaW5mb3JtYXRpb24gLnByb2R1Y3RfY2F0ZWdvcnkge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnByb2R1Y3RfaW5mb3JtYXRpb24gLnByb2R1Y3RfY2F0ZWdvcnkge1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLnByb2R1Y3RfaW5mb3JtYXRpb24gLnByb2R1Y3RfY2F0ZWdvcnkge1xuICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gIH1cbn1cblxuLnByb2R1Y3RfaW5mb3JtYXRpb24gLnNrdSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbn1cblxuLnByb2R1Y3RfaW5mb3JtYXRpb24gLnByaWNlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLnByb2R1Y3RfaW5mb3JtYXRpb24gLnByaWNlIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxufVxuXG4ucHJvZHVjdF9hZGRpdGlvbmFsLWluZm9ybWF0aW9uIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5xdWFudGl0eV9jb250YWluZXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDQwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLnByb2R1Y3RfaW5mb3JtYXRpb24gLnF1YW50aXR5X2NvbnRhaW5lciBpbnB1dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAuc3VibWl0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5wcm9kdWN0X3Byb3BlcnRpZXMge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5wcm9wZXJ0eV9maW5pc2ggdWwge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLnByb3BlcnR5X2ZpbmlzaCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAucHJvZHVjdF9pbmZvcm1hdGlvbi1yaW5nLW1lYXN1cmUgcCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAucHJvZHVjdF9pbmZvcm1hdGlvbi1yaW5nLW1lYXN1cmUgYSB7XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMjMyMzIzO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5wcm9kdWN0X2luZm9ybWF0aW9uLWRlbGl2ZXJ5IHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAucHJvcGVydHlfc3RhdHVzLW5ldzpiZWZvcmUge1xuICB6LWluZGV4OiAyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbnRlbnQ6ICdORVUnO1xuICB0b3A6IC0xMHB4O1xuICByaWdodDogMDtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIHBhZGRpbmc6IDRweDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5wcm9wZXJ0eV9zdGF0dXMtb3JkZXJlZCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLnByb3BlcnR5X3N0YXR1cy1vcmRlcmVkIHNwYW46YmVmb3JlIHtcbiAgY29udGVudDogXCLutZBcIjtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ucGFnZV9jb250ZW50LWJhc2tldC1tYXhpIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IHRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDAwMDA7XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IHRkLnJlbW92ZSxcbi5iYXNrZXQtbWF4aV9zdW1tYXJ5IHRkLnJlbW92ZSxcbi5iYXNrZXQtbWF4aV9zdW1tYXJ5IHRkLmNvbF8wLFxuLmJhc2tldC1tYXhpX3N1bW1hcnkgdGQuY29sXzMge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uYmFza2V0LW1heGlfY29udGVudCAuaW1hZ2Uge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMGVtKSB7XG4gIC5iYXNrZXQtbWF4aV9jb250ZW50IC5pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB3aWR0aDogNTBweDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuYmFza2V0LW1heGlfY29udGVudCAuaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgfVxufVxuXG4uYmFza2V0LW1heGlfY29udGVudCAucmVtb3ZlIGEge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IC5yZW1vdmUgYTpiZWZvcmUge1xuICBjb250ZW50OiBcIu61qVwiO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IC5uYW1lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuMjVlbSAwLjVlbSAwLjI1ZW0gMDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLmJhc2tldC1tYXhpX2NvbnRlbnQgLm5hbWUge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5iYXNrZXQtbWF4aV9jb250ZW50IC5uYW1lIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwMHB4O1xuICB9XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IC5uYW1lIHVsIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLm5hbWUgdWwgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLm5hbWUgYSxcbi5iYXNrZXQtbWF4aV9jb250ZW50IC5uYW1lIHVsIGxpIHAge1xuICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IC5xdWFudGl0eSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDIwJTtcbiAgcGFkZGluZzogMC4yNWVtIDAuNWVtIDAuMjVlbSAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAuYmFza2V0LW1heGlfY29udGVudCAucXVhbnRpdHkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDIuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIH1cbn1cblxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLnF1YW50aXR5IGlucHV0IHtcbiAgd2lkdGg6IDIuNXJlbTtcbiAgaGVpZ2h0OiAxLjM3NXJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IC5wcmljZSxcbi5iYXNrZXQtbWF4aV9jb250ZW50IC5wcmljZS50b3RhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDQwJTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmc6IDAuMjVlbTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLmJhc2tldC1tYXhpX2NvbnRlbnQgLnByaWNlLFxuICAuYmFza2V0LW1heGlfY29udGVudCAucHJpY2UudG90YWwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDcuNXJlbTtcbiAgICBwYWRkaW5nOiAwLjI1ZW0gMC41ZW07XG4gIH1cbn1cblxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLnByaWNlLnRvdGFsIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLmJhc2tldC1tYXhpX3N1bW1hcnkgLm5hbWUge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmJhc2tldC1tYXhpX3N1bW1hcnkgLnByaWNlLnRvdGFsIHtcbiAgd2lkdGg6IDcuNXJlbTtcbiAgcGFkZGluZzogMC4yNWVtIDAuNWVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmJhc2tldC1tYXhpX3N1bW1hcnkgLnByaWNlLnRvdGFsIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLmJhc2tldC1tYXhpX3N1bW1hcnkgLnRvdGFsIC5uYW1lLFxuLmJhc2tldC1tYXhpX3N1bW1hcnkgLnRvdGFsIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5tb2RfaXNvX2NhcnQgLmNvdXBvbiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5tb2RfaXNvX2NhcnQgLmNvdXBvbiBpbnB1dCB7XG4gIG1heC13aWR0aDogMjAwcHg7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLmNvdXBvbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgaDIge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSBoMjpiZWZvcmUge1xuICBjb250ZW50OiBcIu6oglwiO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAucHJvZHVjdCB7XG4gIG1hcmdpbi1ib3R0b206IDAuMzEyNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDAwMDtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAubmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLnJlbW92ZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAucmVtb3ZlIGE6YWZ0ZXIge1xuICBjb250ZW50OiBcIu61qVwiO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAucHJpY2Uge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAuaW5mbyB1bCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLmluZm8gdWwgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAuc3VidG90YWwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAuY291cG9uIGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLmNvdXBvbiBoMjpiZWZvcmUge1xuICBjb250ZW50OiBcIu6nslwiO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLm1vZF9pc29fY2hlY2tvdXQgLmFkZHJlc3NfbmV3IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2RfaXNvX2NoZWNrb3V0IC5hZGRyZXNzX25ldyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIH1cbn1cblxuLm1vZF9pc29fY2hlY2tvdXQgLmFkZHJlc3NfbmV3IC53aWRnZXQge1xuICBmbGV4OiAwIDAgNTAlO1xuICBtYXgtd2lkdGg6IDUwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNTAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kX2lzb19jaGVja291dCAuYWRkcmVzc19uZXcgLndpZGdldCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5hZGRyZXNzX25ldyAud2lkZ2V0Om50aC1jaGlsZCgxKSxcbi5tb2RfaXNvX2NoZWNrb3V0IC5hZGRyZXNzX25ldyAud2lkZ2V0Om50aC1jaGlsZCgxMCkge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kX2lzb19jaGVja291dCAuYWRkcmVzc19uZXcgLndpZGdldDpudGgtY2hpbGQoMSksXG4gIC5tb2RfaXNvX2NoZWNrb3V0IC5hZGRyZXNzX25ldyAud2lkZ2V0Om50aC1jaGlsZCgxMCkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ubW9kX2lzb19jaGVja291dCAuc2hpcHBpbmdhZGRyZXNzIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwMDAwO1xufVxuXG4ubW9kX2lzb19jaGVja291dCAuc2hpcHBpbmdhZGRyZXNzIC53aWRnZXQtcmFkaW8gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubW9kX2lzb19jaGVja291dCAuc2hpcHBpbmdtZXRob2QgLndpZGdldC1yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1vZF9pc29fY2hlY2tvdXQgLnNoaXBwaW5nbWV0aG9kIC53aWRnZXQtcmFkaW8gLnJhZGlvX2NvbnRhaW5lciA+IHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1vZF9pc29fY2hlY2tvdXQgLnNoaXBwaW5nbWV0aG9kIC53aWRnZXQtcmFkaW8gPiAqIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4ubW9kX2lzb19jaGVja291dCAuc2hpcHBpbmdtZXRob2QgLndpZGdldC1yYWRpbyBsYWJlbCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLm1vZF9pc29fY2hlY2tvdXQgLnBheW1lbnRtZXRob2QgLnJhZGlvX2NvbnRhaW5lciBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5vcmRlcmluZm8gLmluZm9fY29udGFpbmVyOmZpcnN0LW9mLXR5cGUsXG4ubW9kX2lzb19vcmRlcmRldGFpbHMgLmluZm9fY29udGFpbmVyOmZpcnN0LW9mLXR5cGUge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDAwMDA7XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5vcmRlcmluZm8gLmluZm9fY29udGFpbmVyLFxuLm1vZF9pc29fb3JkZXJkZXRhaWxzIC5pbmZvX2NvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDAwMDtcbn1cblxuLm1vZF9pc29fY2hlY2tvdXQgLm9yZGVyaW5mbyAuaW5mb19jb250YWluZXIubGFzdCxcbi5tb2RfaXNvX29yZGVyZGV0YWlscyAuaW5mb19jb250YWluZXIubGFzdCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5vcmRlcmluZm8gLmluZm9fY29udGFpbmVyLnNoaXBwaW5nX21ldGhvZCBhLmVkaXQge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5vcmRlcmNvbmRpdGlvbnNhZnRlcnByb2R1Y3RzIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwMDAwO1xufVxuXG4ubW9kX2lzb19vcmRlcmRldGFpbHMgaDIge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuXG4ubW9kX2lzb19vcmRlcmhpc3RvcnkgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1vZF9pc29fb3JkZXJoaXN0b3J5IHRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDAwMDA7XG59XG5cbi5tb2RfaXNvX29yZGVyaGlzdG9yeSB0ZCB7XG4gIHBhZGRpbmc6IDEwcHggMDtcbn1cblxuLm1vZF9pc29fb3JkZXJoaXN0b3J5IHRoOm50aC1jaGlsZCgyKSxcbi5tb2RfaXNvX29yZGVyaGlzdG9yeSB0ZDpudGgtY2hpbGQoMikge1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuXG4ubW9kX2lzb19vcmRlcmhpc3RvcnkgLm9kZXJfc3RhdHVzIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbiNpc29fYWpheEJveCB7XG4gIHdpZHRoOiA4MCU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHB4O1xuICBsZWZ0OiAxMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gIC8qXHRmb250LWZhbWlseTpcIlRyZWJ1Y2hldCBNU1wiLFZlcmRhbmEsc2Fucy1zZXJpZjtcblx0XHRmb250LXNpemU6MTVweDtcblx0XHRsaW5lLWhlaWdodDogMThweDsqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG4jaXNvX2FqYXhCb3guYnRuQ2xvc2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNpc29fYWpheEJveCBwIHtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgcGFkZGluZzogMDtcbn1cblxuI2lzb19hamF4Qm94IC5pc29fZXJyb3Ige1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAvKlx0cGFkZGluZy1sZWZ0OiAzNHB4O1xuXHRcdGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jcm9zcy0yNC5wbmdcIikgbGVmdCBjZW50ZXIgbm8tcmVwZWF0OyovXG59XG5cbiNpc29fYWpheEJveCAuaXNvX2NvbmZpcm0ge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAvKlx0cGFkZGluZy1sZWZ0OiAzNHB4O1xuXHRcdGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy90aWNrLTI0LnBuZ1wiKSBsZWZ0IGNlbnRlciBuby1yZXBlYXQ7Ki9cbn1cblxuI2lzb19hamF4Qm94IC5pc29faW5mbyB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIC8qXHRwYWRkaW5nLWxlZnQ6IDM0cHg7XG5cdFx0YmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2luZm9ybWF0aW9uLTI0LnBuZ1wiKSBsZWZ0IGNlbnRlciBuby1yZXBlYXQ7Ki9cbn1cblxuI2lzb19hamF4T3ZlcmxheSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAzNCwgMzQsIDAuODUpO1xuICB6LWluZGV4OiA5OTk4O1xuICAvKlx0YmFja2dyb3VuZC1jb2xvciA6ICMwMDAwMDA7XG5cdFx0LW1vei1vcGFjaXR5ICAgICA6IDAuNTtcblx0XHRvcGFjaXR5ICAgICAgICAgIDogMC41O1xuXHRcdF9kaXNwbGF5ICAgICAgICAgOiBub25lO1xuXHRcdGZpbHRlciAgICAgICAgICAgOiBBbHBoYShvcGFjaXR5PTUwKTsqL1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQYWdpbmF0aW9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ucGFnaW5hdGlvbiB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG59XG5cbi5wYWdpbmF0aW9uIHVsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucGFnaW5hdGlvbiB1bCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5wYWdpbmF0aW9uIHAsXG4ucGFnaW5hdGlvbiB1bCBsaS5uZXh0LFxuLnBhZ2luYXRpb24gdWwgbGkubGFzdCxcbi5wYWdpbmF0aW9uIHVsIGxpLmZpcnN0LFxuLnBhZ2luYXRpb24gdWwgbGkucHJldmlvdXMge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnBhZ2luYXRpb24gdWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5wYWdpbmF0aW9uIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuXG4ucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ucGFnaW5hdGlvbiBsaSBhLFxuLnBhZ2luYXRpb24gbGkgc3BhbiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xufVxuXG4ucGFnaW5hdGlvbiBsaSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ucGFnaW5hdGlvbiBsaSBzcGFuIHtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG59XG5cbi5wYWdpbmF0aW9uIGxpIGE6aG92ZXIsXG4ucGFnaW5hdGlvbiBsaSBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQ6ICMxYTFhMWE7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJyZWFkY3J1bWJzIE11bHRpIFN0ZXAgSW5kaWNhdG9yXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc3RlcHMgb2wge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnN0ZXBzIC50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5CYXNpYyBTdHlsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jZC1icmVhZGNydW1iLFxuLmNkLW11bHRpLXN0ZXBzIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZC1icmVhZGNydW1iOmFmdGVyLFxuLmNkLW11bHRpLXN0ZXBzOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uY2QtYnJlYWRjcnVtYiBsaSxcbi5jZC1tdWx0aS1zdGVwcyBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMC41ZW0gMDtcbn1cblxuLmNkLWJyZWFkY3J1bWIgbGk6OmFmdGVyLFxuLmNkLW11bHRpLXN0ZXBzIGxpOjphZnRlciB7XG4gIC8qIHRoaXMgaXMgdGhlIHNlcGFyYXRvciBiZXR3ZWVuIGl0ZW1zICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogJ1xcMDBiYic7XG4gIG1hcmdpbjogMCAuNmVtO1xuICBjb2xvcjogIzk1OWZhNTtcbn1cblxuLmNkLWJyZWFkY3J1bWIgbGk6bGFzdC1vZi10eXBlOjphZnRlcixcbi5jZC1tdWx0aS1zdGVwcyBsaTpsYXN0LW9mLXR5cGU6OmFmdGVyIHtcbiAgLyogaGlkZSBzZXBhcmF0b3IgYWZ0ZXIgdGhlIGxhc3QgaXRlbSAqL1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2QtYnJlYWRjcnVtYiBsaSA+ICosXG4uY2QtbXVsdGktc3RlcHMgbGkgPiAqIHtcbiAgLyogc2luZ2xlIHN0ZXAgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzJjM2Y0Yztcbn1cblxuLmNkLWJyZWFkY3J1bWIgbGkuY3VycmVudCA+ICosXG4uY2QtbXVsdGktc3RlcHMgbGkuY3VycmVudCA+ICoge1xuICAvKiBzZWxlY3RlZCBzdGVwICovXG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubm8tdG91Y2ggLmNkLWJyZWFkY3J1bWIgYTpob3Zlcixcbi5uby10b3VjaCAuY2QtbXVsdGktc3RlcHMgYTpob3ZlciB7XG4gIC8qIHN0ZXBzIGFscmVhZHkgdmlzaXRlZCAqL1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuLmNkLWJyZWFkY3J1bWIuY3VzdG9tLXNlcGFyYXRvciBsaTo6YWZ0ZXIsXG4uY2QtbXVsdGktc3RlcHMuY3VzdG9tLXNlcGFyYXRvciBsaTo6YWZ0ZXIge1xuICAvKiByZXBsYWNlIHRoZSBkZWZhdWx0IGFycm93IHNlcGFyYXRvciB3aXRoIGEgY3VzdG9tIGljb24gKi9cbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMTZweDtcbiAgd2lkdGg6IDE2cHg7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvY2QtY3VzdG9tLXNlcGFyYXRvci5zdmcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uY2QtYnJlYWRjcnVtYi5jdXN0b20taWNvbnMgbGkgPiAqOjpiZWZvcmUsXG4uY2QtbXVsdGktc3RlcHMuY3VzdG9tLWljb25zIGxpID4gKjo6YmVmb3JlIHtcbiAgLyogYWRkIGEgY3VzdG9tIGljb24gYmVmb3JlIGVhY2ggaXRlbSAqL1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC40ZW07XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGJhY2tncm91bmQ6IHVybCguLi9pbWcvY2QtY3VzdG9tLWljb25zLTAxLnN2Zykgbm8tcmVwZWF0IDAgMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmNkLWJyZWFkY3J1bWIuY3VzdG9tLWljb25zIGxpOm5vdCguY3VycmVudCk6bnRoLW9mLXR5cGUoMikgPiAqOjpiZWZvcmUsXG4uY2QtbXVsdGktc3RlcHMuY3VzdG9tLWljb25zIGxpOm5vdCguY3VycmVudCk6bnRoLW9mLXR5cGUoMikgPiAqOjpiZWZvcmUge1xuICAvKiBjaGFuZ2UgY3VzdG9tIGljb24gdXNpbmcgaW1hZ2Ugc3ByaXRlcyAqL1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjBweCAwO1xufVxuXG4uY2QtYnJlYWRjcnVtYi5jdXN0b20taWNvbnMgbGk6bm90KC5jdXJyZW50KTpudGgtb2YtdHlwZSgzKSA+ICo6OmJlZm9yZSxcbi5jZC1tdWx0aS1zdGVwcy5jdXN0b20taWNvbnMgbGk6bm90KC5jdXJyZW50KTpudGgtb2YtdHlwZSgzKSA+ICo6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IDA7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaTpub3QoLmN1cnJlbnQpOm50aC1vZi10eXBlKDQpID4gKjo6YmVmb3JlLFxuLmNkLW11bHRpLXN0ZXBzLmN1c3RvbS1pY29ucyBsaTpub3QoLmN1cnJlbnQpOm50aC1vZi10eXBlKDQpID4gKjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHggMDtcbn1cblxuLmNkLWJyZWFkY3J1bWIuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6Zmlyc3Qtb2YtdHlwZSA+ICo6OmJlZm9yZSxcbi5jZC1tdWx0aS1zdGVwcy5jdXN0b20taWNvbnMgbGkuY3VycmVudDpmaXJzdC1vZi10eXBlID4gKjo6YmVmb3JlIHtcbiAgLyogY2hhbmdlIGN1c3RvbSBpY29uIGZvciB0aGUgY3VycmVudCBpdGVtICovXG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIwcHg7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDIpID4gKjo6YmVmb3JlLFxuLmNkLW11bHRpLXN0ZXBzLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDIpID4gKjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwcHggLTIwcHg7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDMpID4gKjo6YmVmb3JlLFxuLmNkLW11bHRpLXN0ZXBzLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDMpID4gKjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwcHggLTIwcHg7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDQpID4gKjo6YmVmb3JlLFxuLmNkLW11bHRpLXN0ZXBzLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDQpID4gKjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTYwcHggLTIwcHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gIC5jZC1icmVhZGNydW1iLCAuY2QtbXVsdGktc3RlcHMge1xuICAgIHBhZGRpbmc6IDAgMS4yZW07XG4gIH1cbiAgLmNkLWJyZWFkY3J1bWIgbGksIC5jZC1tdWx0aS1zdGVwcyBsaSB7XG4gICAgbWFyZ2luOiAxLjJlbSAwO1xuICB9XG4gIC5jZC1icmVhZGNydW1iIGxpOjphZnRlciwgLmNkLW11bHRpLXN0ZXBzIGxpOjphZnRlciB7XG4gICAgbWFyZ2luOiAwIDFlbTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuVHJpYW5nbGUgYnJlYWRjcnVtYlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gIC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIHtcbiAgICAvKiByZXNldCBiYXNpYyBzdHlsZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogNHB4IDRweCA0cHggMDtcbiAgfVxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaTpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaSA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxZW0gLjhlbSAxZW0gMi41ZW07XG4gICAgY29sb3I6ICMyYzNmNGM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWZmMDtcbiAgICAvKiB0aGUgYm9yZGVyIGNvbG9yIGlzIHVzZWQgdG8gc3R5bGUgaXRzIDo6YWZ0ZXIgcHNldWRvLWVsZW1lbnQgKi9cbiAgICBib3JkZXItY29sb3I6ICNlZGVmZjA7XG4gIH1cbiAgLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUgbGkuY3VycmVudCA+ICoge1xuICAgIC8qIHNlbGVjdGVkIHN0ZXAgKi9cbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTZjMDNkO1xuICAgIGJvcmRlci1jb2xvcjogIzk2YzAzZDtcbiAgfVxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaTpmaXJzdC1vZi10eXBlID4gKiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjZlbTtcbiAgICBib3JkZXItcmFkaXVzOiAuMjVlbSAwIDAgLjI1ZW07XG4gIH1cbiAgLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUgbGk6bGFzdC1vZi10eXBlID4gKiB7XG4gICAgcGFkZGluZy1yaWdodDogMS42ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCAuMjVlbSAuMjVlbSAwO1xuICB9XG4gIC5uby10b3VjaCAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBhOmhvdmVyIHtcbiAgICAvKiBzdGVwcyBhbHJlYWR5IHZpc2l0ZWQgKi9cbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmMzZjRjO1xuICAgIGJvcmRlci1jb2xvcjogIzJjM2Y0YztcbiAgfVxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaTo6YWZ0ZXIsXG4gIC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpID4gKjo6YWZ0ZXIge1xuICAgIC8qXG5cdFx0XHRsaSA+ICo6OmFmdGVyIGlzIHRoZSBjb2xvcmVkIHRyaWFuZ2xlIGFmdGVyIGVhY2ggaXRlbVxuXHRcdFx0bGk6OmFmdGVyIGlzIHRoZSB3aGl0ZSBzZXBhcmF0b3IgYmV0d2VlbiB0d28gaXRlbXNcblx0XHQqL1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMTAwJTtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgLyogNDhweCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSA8YT4gZWxlbWVudCAqL1xuICAgIGJvcmRlcjogMjRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDIwcHg7XG4gIH1cbiAgLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUgbGk6OmFmdGVyIHtcbiAgICAvKiB0aGlzIGlzIHRoZSB3aGl0ZSBzZXBhcmF0b3IgYmV0d2VlbiB0d28gaXRlbXMgKi9cbiAgICB6LWluZGV4OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmZmZmO1xuICAgIC8qIHJlc2V0IHN0eWxlICovXG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpID4gKjo6YWZ0ZXIge1xuICAgIC8qIHRoaXMgaXMgdGhlIGNvbG9yZWQgdHJpYW5nbGUgYWZ0ZXIgZWFjaCBlbGVtZW50ICovXG4gICAgei1pbmRleDogMjtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogaW5oZXJpdDtcbiAgfVxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaTpsYXN0LW9mLXR5cGU6OmFmdGVyLFxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaTpsYXN0LW9mLXR5cGUgPiAqOjphZnRlciB7XG4gICAgLyogaGlkZSB0aGUgdHJpYW5nbGUgYWZ0ZXIgdGhlIGxhc3Qgc3RlcCAqL1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUuY3VzdG9tLXNlcGFyYXRvciBsaTo6YWZ0ZXIge1xuICAgIC8qIHJlc2V0IHN0eWxlICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGk6OmFmdGVyLFxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGkgPiAqOjphZnRlciB7XG4gICAgLyogNTBweCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSA8YT4gZWxlbWVudCAqL1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDI1cHg7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjVweDtcbiAgfVxuICBALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpOjphZnRlcixcbiAgICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaSA+ICo6OmFmdGVyIHtcbiAgICAgIC8qIGZpeCBhIGJ1ZyBvbiBGaXJlZml4IC0gdG9vdGggZWRnZSBvbiBjc3MgdHJpYW5nbGUgKi9cbiAgICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBkYXNoZWQ7XG4gICAgfVxuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5DdXN0b20gaWNvbnMgaG92ZXIgZWZmZWN0cyAtIGJyZWFkY3J1bWIgYW5kIG11bHRpLXN0ZXBzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgLm5vLXRvdWNoIC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlLmN1c3RvbS1pY29ucyBsaTpmaXJzdC1vZi10eXBlIGE6aG92ZXI6OmJlZm9yZSxcbiAgLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6Zmlyc3Qtb2YtdHlwZSBlbTo6YmVmb3JlLFxuICAubm8tdG91Y2ggLmNkLW11bHRpLXN0ZXBzLnRleHQtY2VudGVyLmN1c3RvbS1pY29ucyBsaTpmaXJzdC1vZi10eXBlIGE6aG92ZXI6OmJlZm9yZSxcbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtY2VudGVyLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50OmZpcnN0LW9mLXR5cGUgZW06OmJlZm9yZSB7XG4gICAgLyogY2hhbmdlIGN1c3RvbSBpY29uIHVzaW5nIGltYWdlIHNwcml0ZXMgLSBob3ZlciBlZmZlY3Qgb3IgY3VycmVudCBpdGVtICovXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNDBweDtcbiAgfVxuICAubm8tdG91Y2ggLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUuY3VzdG9tLWljb25zIGxpOm50aC1vZi10eXBlKDIpIGE6aG92ZXI6OmJlZm9yZSxcbiAgLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6bnRoLW9mLXR5cGUoMikgZW06OmJlZm9yZSxcbiAgLm5vLXRvdWNoIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlci5jdXN0b20taWNvbnMgbGk6bnRoLW9mLXR5cGUoMikgYTpob3Zlcjo6YmVmb3JlLFxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6bnRoLW9mLXR5cGUoMikgZW06OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwcHggLTQwcHg7XG4gIH1cbiAgLm5vLXRvdWNoIC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlLmN1c3RvbS1pY29ucyBsaTpudGgtb2YtdHlwZSgzKSBhOmhvdmVyOjpiZWZvcmUsXG4gIC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDMpIGVtOjpiZWZvcmUsXG4gIC5uby10b3VjaCAuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIuY3VzdG9tLWljb25zIGxpOm50aC1vZi10eXBlKDMpIGE6aG92ZXI6OmJlZm9yZSxcbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtY2VudGVyLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDMpIGVtOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC00MHB4O1xuICB9XG4gIC5uby10b3VjaCAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGk6bnRoLW9mLXR5cGUoNCkgYTpob3Zlcjo6YmVmb3JlLFxuICAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGkuY3VycmVudDpudGgtb2YtdHlwZSg0KSBlbTo6YmVmb3JlLFxuICAubm8tdG91Y2ggLmNkLW11bHRpLXN0ZXBzLnRleHQtY2VudGVyLmN1c3RvbS1pY29ucyBsaTpudGgtb2YtdHlwZSg0KSBhOmhvdmVyOjpiZWZvcmUsXG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlci5jdXN0b20taWNvbnMgbGkuY3VycmVudDpudGgtb2YtdHlwZSg0KSBlbTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAtNDBweDtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuTXVsdGkgc3RlcHMgaW5kaWNhdG9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgLmNkLW11bHRpLXN0ZXBzIHtcbiAgICAvKiByZXNldCBzdHlsZSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiAwLjRlbSA0MHB4IDAuNGVtIDA7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzIGxpOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcyBsaTo6YWZ0ZXIge1xuICAgIC8qIHRoaXMgaXMgdGhlIGxpbmUgY29ubmVjdGluZyAyIGFkamFjZW50IGl0ZW1zICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmNWY0ZjQ7XG4gICAgLyogcmVzZXQgc3R5bGUgKi9cbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzIGxpLnZpc2l0ZWQ6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTZjMDNkO1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcyBsaSA+ICosXG4gIC5jZC1tdWx0aS1zdGVwcyBsaS5jdXJyZW50ID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbG9yOiAjMmMzZjRjO1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcy5jdXN0b20tc2VwYXJhdG9yIGxpOjphZnRlciB7XG4gICAgLyogcmVzZXQgc3R5bGUgKi9cbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjMWExYTFhO1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlciBsaTo6YWZ0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTFweCk7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtY2VudGVyIGxpID4gKiB7XG4gICAgei1pbmRleDogMTtcbiAgICBwYWRkaW5nOiAuNmVtIDFlbTtcbiAgICBib3JkZXItcmFkaXVzOiAuMjVlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNGY0O1xuICB9XG4gIC5uby10b3VjaCAuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJjM2Y0YztcbiAgfVxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIgbGkuY3VycmVudCA+ICosXG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlciBsaS52aXNpdGVkID4gKiB7XG4gICAgY29sb3I6ICNmZWZlZmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgfVxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIuY3VzdG9tLWljb25zIGxpLnZpc2l0ZWQgYTo6YmVmb3JlIHtcbiAgICAvKiBjaGFuZ2UgdGhlIGN1c3RvbSBpY29uIGZvciB0aGUgdmlzaXRlZCBpdGVtIC0gY2hlY2sgaWNvbiAqL1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTYwcHg7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wIGxpLFxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gbGkge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuY2QtbXVsdGktc3RlcHMudGV4dC10b3AgbGk6OmFmdGVyLFxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gbGk6OmFmdGVyIHtcbiAgICAvKiB0aGlzIGlzIHRoZSBsaW5lIGNvbm5lY3RpbmcgMiBhZGphY2VudCBpdGVtcyAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgLyogNDBweCBpcyB0aGUgPGxpPiByaWdodCBtYXJnaW4gdmFsdWUgKi9cbiAgICB3aWR0aDogY2FsYygxMDAlICsgNDBweCk7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wIGxpID4gKjo6YmVmb3JlLFxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gbGkgPiAqOjpiZWZvcmUge1xuICAgIC8qIHRoaXMgaXMgdGhlIHNwb3QgaW5kaWNhdG9yICovXG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgbGVmdDogNTAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZGVmZjA7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wIGxpLnZpc2l0ZWQgPiAqOjpiZWZvcmUsXG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcCBsaS5jdXJyZW50ID4gKjo6YmVmb3JlLFxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gbGkudmlzaXRlZCA+ICo6OmJlZm9yZSxcbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtYm90dG9tIGxpLmN1cnJlbnQgPiAqOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5NmMwM2Q7XG4gIH1cbiAgLm5vLXRvdWNoIC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcCBhOmhvdmVyLFxuICAubm8tdG91Y2ggLmNkLW11bHRpLXN0ZXBzLnRleHQtYm90dG9tIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjOTZjMDNkO1xuICB9XG4gIC5uby10b3VjaCAuY2QtbXVsdGktc3RlcHMudGV4dC10b3AgYTpob3Zlcjo6YmVmb3JlLFxuICAubm8tdG91Y2ggLmNkLW11bHRpLXN0ZXBzLnRleHQtYm90dG9tIGE6aG92ZXI6OmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTUwLCAxOTIsIDYxLCAwLjMpO1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcCBsaTo6YWZ0ZXIge1xuICAgIC8qIHRoaXMgaXMgdGhlIGxpbmUgY29ubmVjdGluZyAyIGFkamFjZW50IGl0ZW1zICovXG4gICAgYm90dG9tOiA0cHg7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wIGxpID4gKiB7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wIGxpID4gKjo6YmVmb3JlIHtcbiAgICAvKiB0aGlzIGlzIHRoZSBzcG90IGluZGljYXRvciAqL1xuICAgIGJvdHRvbTogMDtcbiAgfVxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gbGk6OmFmdGVyIHtcbiAgICAvKiB0aGlzIGlzIHRoZSBsaW5lIGNvbm5lY3RpbmcgMiBhZGphY2VudCBpdGVtcyAqL1xuICAgIHRvcDogM3B4O1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbSBsaSA+ICoge1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbSBsaSA+ICo6OmJlZm9yZSB7XG4gICAgLyogdGhpcyBpcyB0aGUgc3BvdCBpbmRpY2F0b3IgKi9cbiAgICB0b3A6IDA7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkFkZCBhIGNvdW50ZXIgdG8gdGhlIG11bHRpLXN0ZXBzIGluZGljYXRvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jZC1tdWx0aS1zdGVwcy5jb3VudCBsaSB7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBzdGVwcztcbn1cblxuLmNkLW11bHRpLXN0ZXBzLmNvdW50IGxpID4gKjo6YmVmb3JlIHtcbiAgY29udGVudDogY291bnRlcihzdGVwcykgXCIgLSBcIjtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wLmNvdW50IGxpID4gKjo6YmVmb3JlLFxuICAuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20uY291bnQgbGkgPiAqOjpiZWZvcmUge1xuICAgIC8qIHRoaXMgaXMgdGhlIHNwb3QgaW5kaWNhdG9yICovXG4gICAgY29udGVudDogY291bnRlcihzdGVwcyk7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcC5jb3VudCBsaTpub3QoLmN1cnJlbnQpIGVtOjpiZWZvcmUsXG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbS5jb3VudCBsaTpub3QoLmN1cnJlbnQpIGVtOjpiZWZvcmUge1xuICAgIC8qIHN0ZXBzIG5vdCB2aXNpdGVkIHlldCAtIGNvdW50ZXIgY29sb3IgKi9cbiAgICBjb2xvcjogIzJjM2Y0YztcbiAgfVxuICAuY2QtbXVsdGktc3RlcHMudGV4dC10b3AuY291bnQgbGk6OmFmdGVyIHtcbiAgICBib3R0b206IDExcHg7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wLmNvdW50IGxpID4gKiB7XG4gICAgcGFkZGluZy1ib3R0b206IDM0cHg7XG4gIH1cbiAgLmNkLW11bHRpLXN0ZXBzLnRleHQtYm90dG9tLmNvdW50IGxpOjphZnRlciB7XG4gICAgdG9wOiAxMXB4O1xuICB9XG4gIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbS5jb3VudCBsaSA+ICoge1xuICAgIHBhZGRpbmctdG9wOiAzNHB4O1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJ1dHRvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5idXR0b24sXG4uc3VibWl0LFxuW2NsYXNzKj1cIm1vZF9pc29cIl0gLnJldmlldyBhLmVkaXQsXG4ucGFnZV9zaWRlYmFyLXN1Ym5hdmlnYXRpb24gYSxcbi5wYWdlX3NpZGViYXItc3VibmF2aWdhdGlvbiBzcGFuLFxuLm1vZF9pc29fb3JkZXJoaXN0b3J5IC5kb2N1bWVudF9udW1iZXIgYSB7XG4gIG1hcmdpbjogMXJlbSAwO1xuICBwYWRkaW5nOiAxMHB4IDEwcHggOHB4IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDAwMDtcbn1cblxuLnBhZ2Vfc2lkZWJhci1zdWJuYXZpZ2F0aW9uIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1vZF9pc29fcHJvZHVjdGZpbHRlciBhLmNsZWFyX2ZpbHRlcnMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nLXRvcDogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDExcHg7XG59XG5cbi5tb2RfaXNvX29yZGVyaGlzdG9yeSAuZG9jdW1lbnRfbnVtYmVyIGEge1xuICBwYWRkaW5nOiA0cHggMnB4IDJweCAycHg7XG59XG5cbi5idXR0b246Zm9jdXMsXG4uYnV0dG9uOmhvdmVyLFxuLnN1Ym1pdDpmb2N1cyxcbi5zdWJtaXQ6aG92ZXIsXG5bY2xhc3MqPVwibW9kX2lzb1wiXSAucmV2aWV3IGEuZWRpdDpmb2N1cyxcbltjbGFzcyo9XCJtb2RfaXNvXCJdIC5yZXZpZXcgYS5lZGl0OmhvdmVyLFxuLnBhZ2Vfc2lkZWJhci1zdWJuYXZpZ2F0aW9uIGE6Zm9jdXMsXG4ucGFnZV9zaWRlYmFyLXN1Ym5hdmlnYXRpb24gYTpob3Zlcixcbi5wYWdlX3NpZGViYXItc3VibmF2aWdhdGlvbiBzcGFuLFxuLm1vZF9pc29fb3JkZXJoaXN0b3J5IC5kb2N1bWVudF9udW1iZXIgYTpmb2N1cyxcbi5tb2RfaXNvX29yZGVyaGlzdG9yeSAuZG9jdW1lbnRfbnVtYmVyIGE6aG92ZXIge1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTtcbn1cblxuLm1vZF9yZWdpc3RyYXRpb24gLnN1Ym1pdCB7XG4gIG1hcmdpbi10b3A6IDEuNTYyNXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uYnV0dG9uX2hhbWJ1cmdlciBzcGFuIHtcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMyMzIzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAzcHggYXV0bztcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5cbi5idXR0b25faGFtYnVyZ2VyOmZvY3VzLFxuLmJ1dHRvbl9oYW1idXJnZXI6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFVzZXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5tb2RfcGVyc29uYWxEYXRhIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwMDAwO1xufVxuXG4ubW9kX3JlZ2lzdHJhdGlvbiAuZmllbGRzLFxuLm1vZF9wZXJzb25hbERhdGEgLmZpZWxkcyB7XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubW9kX3JlZ2lzdHJhdGlvbiAuZmllbGRzLFxuICAubW9kX3BlcnNvbmFsRGF0YSAuZmllbGRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgfVxufVxuXG4ubW9kX3JlZ2lzdHJhdGlvbiAud2lkZ2V0LFxuLm1vZF9wZXJzb25hbERhdGEgLndpZGdldCB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgbWF4LXdpZHRoOiA1MCU7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2RfcmVnaXN0cmF0aW9uIC53aWRnZXQsXG4gIC5tb2RfcGVyc29uYWxEYXRhIC53aWRnZXQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgfVxufVxuXG4ubW9kX3JlZ2lzdHJhdGlvbiAud2lkZ2V0Om50aC1jaGlsZCgxKSxcbi5tb2RfcGVyc29uYWxEYXRhIC53aWRnZXQ6bnRoLWNoaWxkKDEpLFxuLm1vZF9yZWdpc3RyYXRpb24gLndpZGdldDpudGgtY2hpbGQoMTApLFxuLm1vZF9wZXJzb25hbERhdGEgLndpZGdldDpudGgtY2hpbGQoMTApIHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZF9yZWdpc3RyYXRpb24gLndpZGdldDpudGgtY2hpbGQoMSksXG4gIC5tb2RfcGVyc29uYWxEYXRhIC53aWRnZXQ6bnRoLWNoaWxkKDEpLFxuICAubW9kX3JlZ2lzdHJhdGlvbiAud2lkZ2V0Om50aC1jaGlsZCgxMCksXG4gIC5tb2RfcGVyc29uYWxEYXRhIC53aWRnZXQ6bnRoLWNoaWxkKDEwKSB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi5tb2RfbG9naW4gLmZpZWxkcyxcbi5tb2RfbG9zdFBhc3N3b3JkIC5maWVsZHMge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZF9sb2dpbiAuZmllbGRzLFxuICAubW9kX2xvc3RQYXNzd29yZCAuZmllbGRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgfVxufVxuXG4ubW9kX2xvZ2luIC53aWRnZXQsXG4ubW9kX2xvc3RQYXNzd29yZCAud2lkZ2V0IHtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm1vZF9sb2dpbiAud2lkZ2V0LFxuICAubW9kX2xvc3RQYXNzd29yZCAud2lkZ2V0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLm1vZF9sb2dpbiAud2lkZ2V0LFxuICAubW9kX2xvc3RQYXNzd29yZCAud2lkZ2V0IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tb2RfbG9naW4gLndpZGdldCxcbiAgLm1vZF9sb3N0UGFzc3dvcmQgLndpZGdldCB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFjY29yZGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNlX2FjY29yZGlvbiAudG9nZ2xlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjkzNzVyZW0gMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbn1cblxuLmNlX2FjY29yZGlvbiAudG9nZ2xlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIu66i1wiO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5jZV9hY2NvcmRpb24gLnRvZ2dsZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIu63gVwiO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gN3B4KTtcbiAgcmlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNlX2FjY29yZGlvbiAudG9nZ2xlci5hY3RpdmU6YWZ0ZXIge1xuICBjb250ZW50OiBcIu62uVwiO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4uY2VfYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUge1xuICBwYWRkaW5nLWJvdHRvbTogMC44NzVyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1vZGFsIChSZXZlYWwpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubGlua19tb2RhbC1vcGVuIHtcbiAgcGFkZGluZy1ib3R0b206IDFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDAwMDA7XG59XG5cbi5yZXZlYWwgLmJ1dHRvbl93cmFwcGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSU0NFIDEtMDAxIC0gQ0UgSXRlbSAtIEludHJvIFRleHQgKFRlbXBsYXRlOiByc2NlXzFfMDAxX2ludHJvX3RleHQpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSU0NFIDItMDAxIC0gQ0UgSXRlbSAtIE1lZGlhIFRlYXNlciAoVGVtcGxhdGU6IHJzY2VfMl8wMDFfbWVkaWFfdGVhc2VyKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDEuMjVyZW0gc29saWQgI2ZlZmVmZTtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGUtMC10by0xMDA7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNXM7XG59XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5jZV9pdGVtLW1lZGlhLXRlYXNlciB7XG4gICAgYm9yZGVyOiAxLjg3NXJlbSBzb2xpZCAjZmVmZWZlO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZS0wLXRvLTEwMCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19iYWNrZ3JvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IDUwJSA1MCUgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2JhY2tncm91bmQgdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi5jZV9pdGVtLW1lZGlhLXRlYXNlcl9fY29udGVudC13cmFwcGVyLW91dHNpZGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNTAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19jb250ZW50LXdyYXBwZXItaW5zaWRlIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBhbmltYXRpb24tbmFtZTogZmFkZS0wLXRvLTEwMDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMHM7XG59XG5cbkBrZXlmcmFtZXMgZmFkZS0wLXRvLTEwMCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19jb250ZW50LXdyYXBwZXItaW5zaWRlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgfVxufVxuXG4uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2xpbmsgYSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19saW5rIGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG4uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2xpbmsgYTpiZWZvcmUge1xuICBjb250ZW50OiBcIu63glwiO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDIuMjVyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJTQ0UgMS0wMTAgLSBDRSBJdGVtIC0gVGVhc2VyIChUZW1wbGF0ZTogcnNjZV8xXzAwMV90ZWFzZXIpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY2VfaXRlbS10ZWFzZXIgLmNvbHVtbnMgPiBkaXYsIC5jZV9pdGVtLXRlYXNlciAuY29sdW1ucyA+IGEge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbn1cblxuLmNlX2l0ZW0tdGVhc2VyIC5jb2x1bW5zID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNlX2l0ZW0tdGVhc2VyIC5iZy1pbWFnZSB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJTQ0UgMi0wMDEgLSBDRSBJdGVtIC0gT3JiaXQgU2xpZGVyIChUZW1wbGF0ZTogcnNjZS0yLTAxMC1vcmJpdC1zbGlkZXIpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5vcmJpdC1jYXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNlX29yYml0X3NsaWRlci5zbGlkZXItYmFja2dyb3VuZCBsaSB7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLmNlX29yYml0X3NsaWRlci5zbGlkZXItYmFja2dyb3VuZCB1bCB7XG4gIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbn1cblxuLmNlX29yYml0X3NsaWRlciAubWFpbi1jYXB0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtIDAuNXJlbSAxLjVyZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuY2Vfb3JiaXRfc2xpZGVyIC5tYWluLWNhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDE1JTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIH1cbn1cblxuLmNlX29yYml0X3NsaWRlciAubWFpbi1jYXB0aW9uIGgzIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLmNlX29yYml0X3NsaWRlciAubWFpbi1jYXB0aW9uIGgzIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBEZXZlbG9wbWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5yZW1vdmUtbWFyZ2luIHtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xufVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAucmVtb3ZlLW1hcmdpbiB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwidXRmLThcIjtcbi8qIVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUHJvamVrdDogQnVlaGxlciBTaWxiZXJzY2htdWNrIC0gV2Vic2hvcCBTY2h3YWVybWV0YWxsXG4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBSZWFsaXNpZXJ1bmc6IE5ldWJlcnQgV2VyYnVuZyBlLksuIC0gaHR0cHM6Ly93d3cubmV1YmVydC13ZXJidW5nLmRlIHwgQ29udGFvIFNlcnZpY2UgLSBodHRwczovL2NvbnRhby1zZXJ2aWNlLmRlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4qL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRm91bmRhdGlvbiBWZXJzaW9uIDYuMy4xXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0ICdzZXR0aW5ncy1mb250cyc7XG5AaW1wb3J0ICdzZXR0aW5ncy1mb3VuZGF0aW9uJztcbkBpbXBvcnQgJ3NldHRpbmdzLW1vdGlvbi11aSc7XG5AaW1wb3J0ICdzZXR0aW5ncy1wcm9qZWN0Jztcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBvcnQgJ2ZvdW5kYXRpb24vZm91bmRhdGlvbic7XG5AaW1wb3J0ICdtb3Rpb24tdWkvbW90aW9uLXVpJztcbkBpbXBvcnQgJ2ZvdW5kYXRpb24vdXRpbC9taXhpbnMnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuQGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbjtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1icmVhZGNydW1icztcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcbkBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnU7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tcmVzcG9uc2l2ZS1lbWJlZDtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1tZWRpYS1vYmplY3Q7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG4vL0BpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcbi8vQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgbW90aW9uLXVpLXRyYW5zaXRpb25zO1xuQGluY2x1ZGUgbW90aW9uLXVpLWFuaW1hdGlvbnM7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0ICd0aGVtZS1jb21wb25lbnRzJztcbkBpbXBvcnQgJ3RoZW1lLWRldmVsb3BtZW50JzsgLy8gRGlzYWJsZSBmb3IgcHJvZHVjdGlvbiFcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNldHRpbmdzIC0gRm9udHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vIEVpbmJpbmR1bmcgZWlnZW5lciBTY2hyaWZ0ZW4gKEFibGFnZSB1bnRlciAnZmlsZXMvdGhlbWUvZm9udHMnKVxuLy8gRWluc3RlbGx1bmdlbiB2b24gVmFyaWFibGVuICckZm9udC13ZWlnaHQteCcgaW4gJ3NldHRpbmdzLXByb2plY3QnIGJlYWNodGVuL2FucGFzc2VuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseSA6ICdMYXRvJztcblx0c3JjICAgICAgICAgOiB1cmwoJy4uL2ZvbnRzL0xhdG9MYXRpbi1MaWdodC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcblx0dXJsKCcuLi9mb250cy9MYXRvTGF0aW4tTGlnaHQud29mZicpIGZvcm1hdCgnd29mZicpO1xuXHRmb250LXdlaWdodCA6IDMwMDtcblx0Zm9udC1zdHlsZSAgOiBub3JtYWw7XG59XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseSA6ICdMYXRvJztcblx0c3JjICAgICAgICAgOiB1cmwoJy4uL2ZvbnRzL0xhdG9MYXRpbi1MaWdodEl0YWxpYy53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcblx0dXJsKCcuLi9mb250cy9MYXRvTGF0aW4tTGlnaHRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpO1xuXHRmb250LXdlaWdodCA6IDMwMDtcblx0Zm9udC1zdHlsZSAgOiBpdGFsaWM7XG59XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseSA6ICdMYXRvJztcblx0c3JjICAgICAgICAgOiB1cmwoJy4uL2ZvbnRzL0xhdG9MYXRpbi1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuXHR1cmwoJy4uL2ZvbnRzL0xhdG9MYXRpbi1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcblx0Zm9udC13ZWlnaHQgOiA0MDA7XG5cdGZvbnQtc3R5bGUgIDogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHkgOiAnTGF0byc7XG5cdHNyYyAgICAgICAgIDogdXJsKCcuLi9mb250cy9MYXRvTGF0aW4tSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuXHR1cmwoJy4uL2ZvbnRzL0xhdG9MYXRpbi1JdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpO1xuXHRmb250LXdlaWdodCA6IDQwMDtcblx0Zm9udC1zdHlsZSAgOiBpdGFsaWM7XG59XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseSA6ICdMYXRvJztcblx0c3JjICAgICAgICAgOiB1cmwoJy4uL2ZvbnRzL0xhdG9MYXRpbi1NZWRpdW0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG5cdHVybCgnLi4vZm9udHMvTGF0b0xhdGluLU1lZGl1bS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG5cdGZvbnQtd2VpZ2h0IDogNTAwO1xuXHRmb250LXN0eWxlICA6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5IDogJ0xhdG8nO1xuXHRzcmMgICAgICAgICA6IHVybCgnLi4vZm9udHMvTGF0b0xhdGluLUJvbGQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG5cdHVybCgnLi4vZm9udHMvTGF0b0xhdGluLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpO1xuXHRmb250LXdlaWdodCA6IDcwMDtcblx0Zm9udC1zdHlsZSAgOiBub3JtYWw7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEljb24gRm9udFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRWluYmluZHVuZyBlaWdlbmVyIFNjaHJpZnRlbiAoQWJsYWdlIHVudGVyICdmaWxlcy90aGVtZS9mb250cycpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRpY29uLWZvbnQgOiAnSWNvbnMnO1xuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5IDogJGljb24tZm9udDtcblx0c3JjICAgICAgICAgOiB1cmwoJy4uL2ZvbnRzL2ljb21vb24ud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG5cdHVybCgnLi4vZm9udHMvaWNvbW9vbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG5cdHVybCgnLi4vZm9udHMvaWNvbW9vbi5zdmcnKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodCA6IG5vcm1hbDtcblx0Zm9udC1zdHlsZSAgOiBub3JtYWw7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRpY29uLW1hcmdpbiA6IDEwcHg7XG5cbiRpY29ucyA6IChcblx0XHRpbnN0YWdyYW06IFwiXFxlZWYxXCIsXG5cdFx0cGludGVyZXN0OiBcIlxcZWYzMFwiLFxuXHRcdGhvbWU6IFwiXFxlOTAwXCIsXG5cdFx0aG9tZTI6IFwiXFxlOTAxXCIsXG5cdFx0aG9tZTU6IFwiXFxlOTA0XCIsXG5cdFx0bmV3c3BhcGVyOiBcIlxcZTkwYlwiLFxuXHRcdG1hZ2F6aW5lOiBcIlxcZTkwY1wiLFxuXHRcdGltYWdlMjogXCJcXGU5M2NcIixcblx0XHRpbWFnZTQ6IFwiXFxlOTQxXCIsXG5cdFx0aW1hZ2U1OiBcIlxcZTk0MlwiLFxuXHRcdGNhbWVyYTogXCJcXGU5NDRcIixcblx0XHRjYW1lcmEyOiBcIlxcZTk0NVwiLFxuXHRcdHBsYXk6IFwiXFxlOTU3XCIsXG5cdFx0ZmlsbTM6IFwiXFxlOTYwXCIsXG5cdFx0YnVsbGhvcm46IFwiXFxlOTc5XCIsXG5cdFx0bWVnYXBob25lOiBcIlxcZTk3YVwiLFxuXHRcdG5ldzogXCJcXGU5N2JcIixcblx0XHRjb25uZWN0aW9uOiBcIlxcZTk3Y1wiLFxuXHRcdHByaWNlLXRhZzI6IFwiXFxlOWVlXCIsXG5cdFx0cHJpY2UtdGFnczogXCJcXGU5ZWZcIixcblx0XHRwcmljZS10YWczOiBcIlxcZTlmMFwiLFxuXHRcdHByaWNlLXRhZ3MyOiBcIlxcZTlmMVwiLFxuXHRcdHByaWNlLXRhZzQ6IFwiXFxlOWYyXCIsXG5cdFx0cHJpY2UtdGFnczM6IFwiXFxlOWYzXCIsXG5cdFx0cHJpY2UtdGFnNTogXCJcXGU5ZjRcIixcblx0XHRwcmljZS10YWdzNDogXCJcXGU5ZjVcIixcblx0XHRjYXJ0NDogXCJcXGVhMDFcIixcblx0XHRjYXJ0NTogXCJcXGVhMDJcIixcblx0XHRjb2luLWV1cm86IFwiXFxlYTBjXCIsXG5cdFx0Y3JlZGl0LWNhcmQ6IFwiXFxlYTE1XCIsXG5cdFx0Y3JlZGl0LWNhcmQyOiBcIlxcZWExNlwiLFxuXHRcdGNhbGN1bGF0b3IyOiBcIlxcZWExOFwiLFxuXHRcdHBob25lOiBcIlxcZWExY1wiLFxuXHRcdHBob25lMjogXCJcXGVhMWRcIixcblx0XHRwaG9uZS13YXZlOiBcIlxcZWExZlwiLFxuXHRcdGF0LXNpZ246IFwiXFxlYTJmXCIsXG5cdFx0ZW52ZWxvcDogXCJcXGVhMzBcIixcblx0XHRlbnZlbG9wMjogXCJcXGVhMzFcIixcblx0XHRlbnZlbG9wMzogXCJcXGVhMzJcIixcblx0XHRsb2NhdGlvbjogXCJcXGVhMzhcIixcblx0XHRsb2NhdGlvbjI6IFwiXFxlYTM5XCIsXG5cdFx0bG9jYXRpb24zOiBcIlxcZWEzYVwiLFxuXHRcdGxvY2F0aW9uNDogXCJcXGVhM2JcIixcblx0XHRsb2NhdGlvbjU6IFwiXFxlYTNjXCIsXG5cdFx0bG9jYXRpb242OiBcIlxcZWEzZFwiLFxuXHRcdGNhbGVuZGFyMjogXCJcXGVhNjBcIixcblx0XHRjYWxlbmRhcjM6IFwiXFxlYTYxXCIsXG5cdFx0Y2FsZW5kYXI0OiBcIlxcZWE2MlwiLFxuXHRcdHByaW50ZXI0OiBcIlxcZWE2YVwiLFxuXHRcdHF1b3Rlcy1sZWZ0OiBcIlxcZWIxYlwiLFxuXHRcdHF1b3Rlcy1yaWdodDogXCJcXGViMWNcIixcblx0XHRxdW90ZXMtbGVmdDI6IFwiXFxlYjFkXCIsXG5cdFx0cXVvdGVzLXJpZ2h0MjogXCJcXGViMWVcIixcblx0XHRzZWFyY2g6IFwiXFxlYjMwXCIsXG5cdFx0c2VhcmNoMzogXCJcXGViMzZcIixcblx0XHRsYW1wNzogXCJcXGViZjlcIixcblx0XHRsYW1wODogXCJcXGViZmFcIixcblx0XHRjbGlwYm9hcmQ6IFwiXFxlYzUwXCIsXG5cdFx0Y2xpcGJvYXJkMjogXCJcXGVjNTFcIixcblx0XHRjbGlwYm9hcmQzOiBcIlxcZWM1MlwiLFxuXHRcdGNsaXBib2FyZDQ6IFwiXFxlYzUzXCIsXG5cdFx0Y2xpcGJvYXJkNTogXCJcXGVjNTRcIixcblx0XHRjbGlwYm9hcmQ2OiBcIlxcZWM1NVwiLFxuXHRcdG1vcmU6IFwiXFxlYzViXCIsXG5cdFx0bW9yZTI6IFwiXFxlYzVjXCIsXG5cdFx0Z3JpZDogXCJcXGVjNWRcIixcblx0XHRncmlkMjogXCJcXGVjNWVcIixcblx0XHRncmlkMzogXCJcXGVjNWZcIixcblx0XHRncmlkNDogXCJcXGVjNjBcIixcblx0XHRncmlkNTogXCJcXGVjNjFcIixcblx0XHRncmlkNjogXCJcXGVjNjJcIixcblx0XHRtZW51OiBcIlxcZWM2YVwiLFxuXHRcdGNpcmNsZS1zbWFsbDogXCJcXGVjNmJcIixcblx0XHRtZW51MzogXCJcXGVjNmRcIixcblx0XHRtZW51NDogXCJcXGVjNmVcIixcblx0XHRtZW51NTogXCJcXGVjNmZcIixcblx0XHRtZW51NjogXCJcXGVjNzBcIixcblx0XHRtZW51NzogXCJcXGVjNzFcIixcblx0XHRtZW51ODogXCJcXGVjNzJcIixcblx0XHRtZW51OTogXCJcXGVjNzNcIixcblx0XHRtZW51MTA6IFwiXFxlYzc0XCIsXG5cdFx0bGluazogXCJcXGVjOTlcIixcblx0XHRsaW5rMjogXCJcXGVjOWJcIixcblx0XHRsaW5rMzogXCJcXGVjOWRcIixcblx0XHRsaW5rNTogXCJcXGVjYTFcIixcblx0XHRzdGFyLWVtcHR5MjogXCJcXGVjZTFcIixcblx0XHRzdGFyLWZ1bGw6IFwiXFxlY2UyXCIsXG5cdFx0c3Rhci1lbXB0eTM6IFwiXFxlY2UzXCIsXG5cdFx0dGh1bWJzLXVwOiBcIlxcZWNmNFwiLFxuXHRcdHRodW1icy11cDI6IFwiXFxlY2Y1XCIsXG5cdFx0dGh1bWJzLWRvd246IFwiXFxlY2Y2XCIsXG5cdFx0dGh1bWJzLWRvd24yOiBcIlxcZWNmN1wiLFxuXHRcdHdhcm5pbmc6IFwiXFxlZDRmXCIsXG5cdFx0d2FybmluZzI6IFwiXFxlZDUwXCIsXG5cdFx0bm90aWZpY2F0aW9uOiBcIlxcZWQ1MVwiLFxuXHRcdG5vdGlmaWNhdGlvbjI6IFwiXFxlZDUyXCIsXG5cdFx0cXVlc3Rpb24zOiBcIlxcZWQ1NVwiLFxuXHRcdHF1ZXN0aW9uNDogXCJcXGVkNTZcIixcblx0XHRwbHVzOiBcIlxcZWQ1OVwiLFxuXHRcdG1pbnVzOiBcIlxcZWQ1YVwiLFxuXHRcdHBsdXMyOiBcIlxcZWQ1YlwiLFxuXHRcdG1pbnVzMjogXCJcXGVkNWNcIixcblx0XHRwbHVzMzogXCJcXGVkNWRcIixcblx0XHRtaW51czM6IFwiXFxlZDVlXCIsXG5cdFx0cGx1cy1jaXJjbGU6IFwiXFxlZDVmXCIsXG5cdFx0bWludXMtY2lyY2xlOiBcIlxcZWQ2MFwiLFxuXHRcdHBsdXMtY2lyY2xlMjogXCJcXGVkNjFcIixcblx0XHRtaW51cy1jaXJjbGUyOiBcIlxcZWQ2MlwiLFxuXHRcdGluZm86IFwiXFxlZDYzXCIsXG5cdFx0aW5mbzI6IFwiXFxlZDY0XCIsXG5cdFx0Y2FuY2VsLWNpcmNsZTogXCJcXGVkNjVcIixcblx0XHRjYW5jZWwtY2lyY2xlMjogXCJcXGVkNjZcIixcblx0XHRjYW5jZWwtc3F1YXJlOiBcIlxcZWQ2OFwiLFxuXHRcdGNhbmNlbC1zcXVhcmUyOiBcIlxcZWQ2OVwiLFxuXHRcdGNhbmNlbDogXCJcXGVkNmFcIixcblx0XHRjcm9zczogXCJcXGVkNmNcIixcblx0XHRjcm9zczI6IFwiXFxlZDZkXCIsXG5cdFx0Y3Jvc3MzOiBcIlxcZWQ2ZVwiLFxuXHRcdGNoZWNrbWFyazogXCJcXGVkNmZcIixcblx0XHRjaGVja21hcmsyOiBcIlxcZWQ3MFwiLFxuXHRcdGNoZWNrbWFyazM6IFwiXFxlZDcxXCIsXG5cdFx0Y2hlY2ttYXJrNDogXCJcXGVkNzJcIixcblx0XHRjaGVja21hcms1OiBcIlxcZWQ3M1wiLFxuXHRcdGVudGVyOiBcIlxcZWQ3NlwiLFxuXHRcdGV4aXQ6IFwiXFxlZDc3XCIsXG5cdFx0cGxheTQ6IFwiXFxlZDg1XCIsXG5cdFx0YXJyb3ctdXA6IFwiXFxlZGI3XCIsXG5cdFx0YXJyb3ctdXAyOiBcIlxcZWRiOFwiLFxuXHRcdGFycm93LXVwMzogXCJcXGVkYjlcIixcblx0XHRhcnJvdy11cDQ6IFwiXFxlZGJhXCIsXG5cdFx0YXJyb3ctcmlnaHQ6IFwiXFxlZGJiXCIsXG5cdFx0YXJyb3ctcmlnaHQyOiBcIlxcZWRiY1wiLFxuXHRcdGFycm93LXJpZ2h0MzogXCJcXGVkYmRcIixcblx0XHRhcnJvdy1yaWdodDQ6IFwiXFxlZGJlXCIsXG5cdFx0YXJyb3ctZG93bjogXCJcXGVkYmZcIixcblx0XHRhcnJvdy1kb3duMjogXCJcXGVkYzBcIixcblx0XHRhcnJvdy1kb3duMzogXCJcXGVkYzFcIixcblx0XHRhcnJvdy1kb3duNDogXCJcXGVkYzJcIixcblx0XHRhcnJvdy1sZWZ0OiBcIlxcZWRjM1wiLFxuXHRcdGFycm93LWxlZnQyOiBcIlxcZWRjNFwiLFxuXHRcdGFycm93LWxlZnQzOiBcIlxcZWRjNVwiLFxuXHRcdGFycm93LWxlZnQ0OiBcIlxcZWRjNlwiLFxuXHRcdGFycm93LXVwNTogXCJcXGVkYzdcIixcblx0XHRhcnJvdy1yaWdodDU6IFwiXFxlZGM4XCIsXG5cdFx0YXJyb3ctZG93bjU6IFwiXFxlZGM5XCIsXG5cdFx0YXJyb3ctbGVmdDU6IFwiXFxlZGNhXCIsXG5cdFx0YXJyb3ctdXA2OiBcIlxcZWRjY1wiLFxuXHRcdGFycm93LXJpZ2h0NjogXCJcXGVkY2VcIixcblx0XHRhcnJvdy1kb3duNjogXCJcXGVkZDBcIixcblx0XHRhcnJvdy1sZWZ0NjogXCJcXGVkZDJcIixcblx0XHRhcnJvdy11cDc6IFwiXFxlZGQ0XCIsXG5cdFx0YXJyb3ctcmlnaHQ3OiBcIlxcZWRkNlwiLFxuXHRcdGFycm93LWRvd243OiBcIlxcZWRkOFwiLFxuXHRcdGFycm93LWxlZnQ3OiBcIlxcZWRkYVwiLFxuXHRcdGFycm93LXVwLWxlZnQzOiBcIlxcZWRkYlwiLFxuXHRcdGFycm93LXVwODogXCJcXGVkZGNcIixcblx0XHRhcnJvdy11cC1yaWdodDM6IFwiXFxlZGRkXCIsXG5cdFx0YXJyb3ctcmlnaHQ4OiBcIlxcZWRkZVwiLFxuXHRcdGFycm93LWRvd24tcmlnaHQzOiBcIlxcZWRkZlwiLFxuXHRcdGFycm93LWRvd244OiBcIlxcZWRlMFwiLFxuXHRcdGFycm93LWRvd24tbGVmdDM6IFwiXFxlZGUxXCIsXG5cdFx0YXJyb3ctbGVmdDg6IFwiXFxlZGUyXCIsXG5cdFx0Y2lyY2xlLXVwMjogXCJcXGVkZTdcIixcblx0XHRjaXJjbGUtcmlnaHQyOiBcIlxcZWRlOFwiLFxuXHRcdGNpcmNsZS1kb3duMjogXCJcXGVkZTlcIixcblx0XHRjaXJjbGUtbGVmdDI6IFwiXFxlZGVhXCIsXG5cdFx0Y2lyY2xlLXVwMzogXCJcXGVkZWNcIixcblx0XHRjaXJjbGUtcmlnaHQzOiBcIlxcZWRlZVwiLFxuXHRcdGNpcmNsZS1kb3duMzogXCJcXGVkZjBcIixcblx0XHRjaXJjbGUtbGVmdDM6IFwiXFxlZGYyXCIsXG5cdFx0Y2lyY2xlLXVwNDogXCJcXGVkZjRcIixcblx0XHRjaXJjbGUtcmlnaHQ0OiBcIlxcZWRmNlwiLFxuXHRcdGNpcmNsZS1kb3duNDogXCJcXGVkZjhcIixcblx0XHRjaXJjbGUtbGVmdDQ6IFwiXFxlZGZhXCIsXG5cdFx0c3F1YXJlLXVwOiBcIlxcZWUwNFwiLFxuXHRcdHNxdWFyZS1yaWdodDogXCJcXGVlMDZcIixcblx0XHRzcXVhcmUtZG93bjogXCJcXGVlMDhcIixcblx0XHRzcXVhcmUtbGVmdDogXCJcXGVlMGFcIixcblx0XHRhcnJvdy11cDk6IFwiXFxlZTBiXCIsXG5cdFx0YXJyb3ctcmlnaHQ5OiBcIlxcZWUwY1wiLFxuXHRcdGFycm93LWRvd245OiBcIlxcZWUwZFwiLFxuXHRcdGFycm93LWxlZnQ5OiBcIlxcZWUwZVwiLFxuXHRcdGFycm93LXVwMTI6IFwiXFxlZTFjXCIsXG5cdFx0YXJyb3ctcmlnaHQxMjogXCJcXGVlMWVcIixcblx0XHRhcnJvdy1kb3duMTI6IFwiXFxlZTIwXCIsXG5cdFx0YXJyb3ctbGVmdDEyOiBcIlxcZWUyMlwiLFxuXHRcdGFycm93LXVwMTQ6IFwiXFxlZTI3XCIsXG5cdFx0YXJyb3ctcmlnaHQxNDogXCJcXGVlMjhcIixcblx0XHRhcnJvdy1kb3duMTQ6IFwiXFxlZTI5XCIsXG5cdFx0YXJyb3ctbGVmdDE0OiBcIlxcZWUyYVwiLFxuXHRcdGNpcmNsZS11cDU6IFwiXFxlZTJiXCIsXG5cdFx0Y2lyY2xlLXJpZ2h0NTogXCJcXGVlMmNcIixcblx0XHRjaXJjbGUtZG93bjU6IFwiXFxlZTJkXCIsXG5cdFx0Y2lyY2xlLWxlZnQ1OiBcIlxcZWUyZVwiLFxuXHRcdGNpcmNsZS11cDY6IFwiXFxlZTJmXCIsXG5cdFx0Y2lyY2xlLXJpZ2h0NjogXCJcXGVlMzBcIixcblx0XHRjaXJjbGUtZG93bjY6IFwiXFxlZTMxXCIsXG5cdFx0Y2lyY2xlLWxlZnQ2OiBcIlxcZWUzMlwiLFxuXHRcdGFycm93LXVwMTU6IFwiXFxlZTMzXCIsXG5cdFx0YXJyb3ctcmlnaHQxNTogXCJcXGVlMzRcIixcblx0XHRhcnJvdy1kb3duMTU6IFwiXFxlZTM1XCIsXG5cdFx0YXJyb3ctbGVmdDE1OiBcIlxcZWUzNlwiLFxuXHRcdGFycm93LXVwMTY6IFwiXFxlZTM3XCIsXG5cdFx0YXJyb3ctcmlnaHQxNjogXCJcXGVlMzhcIixcblx0XHRhcnJvdy1kb3duMTY6IFwiXFxlZTM5XCIsXG5cdFx0YXJyb3ctbGVmdDE2OiBcIlxcZWUzYVwiLFxuXHRcdGNoZWNrYm94LWNoZWNrZWQ6IFwiXFxlZTY2XCIsXG5cdFx0Y2hlY2tib3gtdW5jaGVja2VkOiBcIlxcZWU2N1wiLFxuXHRcdGNoZWNrYm94LXBhcnRpYWw6IFwiXFxlZTY4XCIsXG5cdFx0c3F1YXJlOiBcIlxcZWU2OVwiLFxuXHRcdGRpYW1vbmQzOiBcIlxcZWU2Y1wiLFxuXHRcdGRpYW1vbmQ0OiBcIlxcZWU2ZFwiLFxuXHRcdGNoZWNrYm94LWNoZWNrZWQyOiBcIlxcZWU2ZVwiLFxuXHRcdGNoZWNrYm94LXVuY2hlY2tlZDI6IFwiXFxlZTZmXCIsXG5cdFx0cmFkaW8tY2hlY2tlZDogXCJcXGVlNzFcIixcblx0XHRyYWRpby1jaGVja2VkMjogXCJcXGVlNzJcIixcblx0XHRyYWRpby11bmNoZWNrZWQ6IFwiXFxlZTczXCIsXG5cdFx0Y2hlY2ttYXJrLWNpcmNsZTogXCJcXGVlNzZcIixcblx0XHRjaXJjbGU6IFwiXFxlZTc3XCIsXG5cdFx0Y2lyY2xlMjogXCJcXGVlNzhcIixcblx0XHRmaWx0ZXI6IFwiXFxlZTg5XCIsXG5cdFx0ZmlsdGVyMjogXCJcXGVlOGFcIixcblx0XHRmaWx0ZXIzOiBcIlxcZWU4YlwiLFxuXHRcdGZpbHRlcjQ6IFwiXFxlZThjXCIsXG5cdFx0bmV3LXRhYjogXCJcXGVlYzlcIixcblx0XHRuZXctdGFiMjogXCJcXGVlY2FcIixcblx0XHRzaGFyZTM6IFwiXFxlZWUwXCIsXG5cdFx0YW1hem9uOiBcIlxcZWVlNlwiLFxuXHRcdGdvb2dsZTI6IFwiXFxlZWU4XCIsXG5cdFx0Z29vZ2xlLXBsdXM6IFwiXFxlZWVhXCIsXG5cdFx0Z29vZ2xlLXBsdXMyOiBcIlxcZWVlYlwiLFxuXHRcdGZhY2Vib29rOiBcIlxcZWVlZlwiLFxuXHRcdGZhY2Vib29rMjogXCJcXGVlZjBcIixcblx0XHR0d2l0dGVyOiBcIlxcZWVmNVwiLFxuXHRcdHlvdXR1YmU6IFwiXFxlZWZjXCIsXG5cdFx0eW91dHViZTI6IFwiXFxlZWZkXCIsXG5cdFx0eGluZzogXCJcXGVmMzJcIixcblx0XHR4aW5nMjogXCJcXGVmMzNcIixcblx0XHRmaWxlLXBkZjogXCJcXGVmM2VcIlxuKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmksXG4laWNvbixcbltjbGFzc149XCJpY29uX1wiXSxcbltjbGFzcyo9XCIgaWNvbl9cIl0ge1xuXHQvLyBVc2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250c1xuXHRmb250LWZhbWlseSAgICAgICAgICAgICA6ICRpY29uLWZvbnQgIWltcG9ydGFudDtcblx0c3BlYWsgICAgICAgICAgICAgICAgICAgOiBub25lO1xuXHRmb250LXN0eWxlICAgICAgICAgICAgICA6IG5vcm1hbDtcblx0Zm9udC13ZWlnaHQgICAgICAgICAgICAgOiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudCAgICAgICAgICAgIDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybSAgICAgICAgICA6IG5vbmU7XG5cdGxpbmUtaGVpZ2h0ICAgICAgICAgICAgIDogMTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZyAgOiBhbnRpYWxpYXNlZDtcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmcgOiBncmF5c2NhbGU7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBpY29uKCRpY29uLCAkcG9zaXRpb246XCJcIikge1xuXHRAaWYgJHBvc2l0aW9uID09IFwiXCIge1xuXHRcdEBleHRlbmQgJWljb247XG5cdFx0Y29udGVudCA6ICcje21hcC1nZXQoJGljb25zLCAkaWNvbil9Jztcblx0XHRAY29udGVudDtcblx0fSBAZWxzZSBpZiAkcG9zaXRpb24gPT0gYm90aCB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGV4dGVuZCAlaWNvbjtcblx0XHRcdGNvbnRlbnQgICAgICA6ICcje21hcC1nZXQoJGljb25zLCAkaWNvbil9Jztcblx0XHRcdG1hcmdpbi1yaWdodCA6ICRpY29uLW1hcmdpbjtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0XHQmOmFmdGVyIHtcblx0XHRcdEBleHRlbmQgJWljb247XG5cdFx0XHRjb250ZW50ICAgICA6ICcje21hcC1nZXQoJGljb25zLCAkaWNvbil9Jztcblx0XHRcdG1hcmdpbi1sZWZ0IDogJGljb24tbWFyZ2luO1xuXHRcdFx0QGNvbnRlbnQ7XG5cdFx0fVxuXHR9IEBlbHNlIGlmICRwb3NpdGlvbiA9PSBiZWZvcmUge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBleHRlbmQgJWljb247XG5cdFx0XHRjb250ZW50ICAgICAgOiAnI3ttYXAtZ2V0KCRpY29ucywgJGljb24pfSc7XG5cdFx0XHRtYXJnaW4tcmlnaHQgOiAkaWNvbi1tYXJnaW47XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cdH0gQGVsc2UgaWYgJHBvc2l0aW9uID09IGFmdGVyIHtcblx0XHQmOmFmdGVyIHtcblx0XHRcdEBleHRlbmQgJWljb247XG5cdFx0XHRjb250ZW50ICAgICA6ICcje21hcC1nZXQoJGljb25zLCAkaWNvbil9Jztcblx0XHRcdG1hcmdpbi1sZWZ0IDogJGljb24tbWFyZ2luO1xuXHRcdFx0QGNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJlaXNwaWVsIEFud2VuZHVuZyAwMTpcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLmZvbyB7XG4vLyAgQGluY2x1ZGUgaWNvbihbSWNvbiBOYW1lXSwgW1Bvc2l0aW9uOiBiZWZvcmUsIGFmdGVyLCBib3RoIG9kZXIgbGVlciBsYXNzZW5dKTtcbi8vfVxuLy8gRXJnw6RuenVuZyB1bSBpbmRpdmlkdWVsbGUgRm9ybWF0aWVydW5nZW5cbi8vLmZvbyB7XG4vL1x0QGluY2x1ZGUgaWNvbihbSWNvbiBOYW1lXSwgW1Bvc2l0aW9uOiBiZWZvcmUsIGFmdGVyLCBib3RoIG9kZXIgbGVlciBsYXNzZW5dKSB7XG4vL1x0XHRtYXJnaW4tbGVmdDogcmVtLWNhbGMoMjApO1xuLy9cdFx0Y29sb3I6IGJsdWU7XG4vL1x0XHQuLi5cbi8vXHR9XG4vL31cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJlaXNwaWVsIEFud2VuZHVuZyAwMjpcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vLmZvbyB7XG4vLyAgJjphZnRlciB7XG4vLyAgICAgQGluY2x1ZGUgaWNvbihbSWNvbiBOYW1lXSk7XG4vLyAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4vLyAgICAgY29sb3I6IHJlZDtcbi8vICAgICAuLi5cbi8vICB9XG4vL31cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNldHVwIGEgY2xhc3MgbmFtZSBmb3IgZWFjaCBpY29uXG5AZWFjaCAkbmFtZSwgJGNoYXIgaW4gJGljb25zIHtcblx0Lmljb25fI3skbmFtZX0ge1xuXHRcdGNvbnRlbnQgOiAkY2hhcjtcblx0fVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2V0dGluZ3MgLSBQcm9qZWN0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vJGNvbG9yLTEgOiAjZGZjZGFjO1xuLy8kY29sb3ItMiA6ICNjOWM4Yzg7XG4vLyRjb2xvci0zIDogI2Y1ZjRmNDtcblxuLy8gQW5wYXNzdW5nIGplIG5hY2ggdmVyd2VuZGV0ZW4gU2NocmlmdGFydGVuIGltIFByb2pla3QgZXJmb3JkZXJsaWNoXG4vLyBFaW5iaW5kdW5nIGRlciBTY2hyaWZ0ZW4gZXJmb2xndCBqZSBuYWNoIFZhcmlhbnRlIGVudHdlZGVyIGluICdwcm9qZWN0LnNjc3MnIHVuZC9vZGVyIENvbnRhbyBTZWl0ZW5sYXlvdXRcbiRmb250LXdlaWdodC0wIDogNDAwOyAvLyAxMDAgLSAzMDBcbiRmb250LXdlaWdodC0xIDogNDAwOyAvLyAxMDAgLSAzMDBcbiRmb250LXdlaWdodC0yIDogNDAwOyAvLyA0MDAgLSA1MDBcbiRmb250LXdlaWdodC0zIDogNzAwOyAvLyA2MDAgLSA3MDBcbi8vJGZvbnQtd2VpZ2h0LTQ6IDgwMDsgLy8gODAwIC0gOTAwXG5cbi8vIMOcYmVyc2NocmVpYnQgRm91bmRhdGlvbiBDb3JlIEVpbnN0ZWxsdW5nZW5cbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbCA6ICRmb250LXdlaWdodC0xO1xuJGdsb2JhbC13ZWlnaHQtYm9sZCA6ICRmb250LXdlaWdodC0zO1xuXG4kbGV0dGVyLXNwYWNpbmctc21hbGwgOiAwLjA1ZW07XG4kbGV0dGVyLXNwYWNpbmctbWVkaXVtIDogMC4xMGVtO1xuJGxldHRlci1zcGFjaW5nLWxhcmdlIDogMC4yZW07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gS2xhc3NlbiB6dXIgU3RldWVydW5nIHZlcnRpa2FsZXIoISkgQWJzdMOkbmRlXG4vLyBUT0RPIFBGOiBVbWJlbmVubmVuIGluICRtYXJnaW4teS1zbWFsbCBldGMuPyFcbiRtYXJnaW4tc21hbGwgOiAyMHB4O1xuJG1hcmdpbi1tZWRpdW0gOiAzMHB4O1xuJG1hcmdpbi1sYXJnZSA6IDgwcHg7XG4kbWFyZ2luLXhsYXJnZSA6IDEyMHB4O1xuXG4ubWFyZ2luLXktbGFyZ2Uge1xuXHRtYXJnaW4tdG9wICAgIDogJG1hcmdpbi1tZWRpdW0gIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbSA6ICRtYXJnaW4tbWVkaXVtICsgMzBweCAhaW1wb3J0YW50O1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdG1hcmdpbi10b3AgICAgOiAkbWFyZ2luLWxhcmdlICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWJvdHRvbSA6ICRtYXJnaW4tbGFyZ2UgKyAzMHB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLy8kcGFkZGluZy1zbWFsbCA6IDE1cHg7XG4vLyRwYWRkaW5nLW1lZGl1bSA6IDMwcHg7XG4vLyRwYWRkaW5nLWxhcmdlIDogNjBweDtcbi8vJHBhZGRpbmcteGxhcmdlIDogMTIwcHg7XG4vL1xuLy8ucGFkZGluZy1ub25lIHtcbi8vXHRwYWRkaW5nIDogMDtcbi8vfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEF1c2dsZWljaCBBdcOfZW5hYnN0YW5kIEdyaWQuIFNldHp0IFplbnRyaWVydW5nIGF1w59lciBLcmFmdCFcbi8vIEFud2VuZHVuZyBtaXQgdm9yYW5nZXN0ZWxsdGVtIE1pbnVzIHVuZCBXZXJ0LzIhXG4kZ3JpZC1jb2x1bW4tZ3V0dGVyLXNtYWxsIDogbWFwLWdldCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBzbWFsbCk7XG4kZ3JpZC1jb2x1bW4tZ3V0dGVyLW1lZGl1bSA6IG1hcC1nZXQoJGdyaWQtY29sdW1uLWd1dHRlciwgbWVkaXVtKTtcblxuQG1peGluIGdyaWQtcmVtb3ZlLXJvdy1tYXJnaW4ge1xuXHRtYXJnaW4tbGVmdCAgOiAtJGdyaWQtY29sdW1uLWd1dHRlci1zbWFsbC8yO1xuXHRtYXJnaW4tcmlnaHQgOiAtJGdyaWQtY29sdW1uLWd1dHRlci1zbWFsbC8yO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdG1hcmdpbi1sZWZ0ICA6IC0kZ3JpZC1jb2x1bW4tZ3V0dGVyLW1lZGl1bS8yO1xuXHRcdG1hcmdpbi1yaWdodCA6IC0kZ3JpZC1jb2x1bW4tZ3V0dGVyLW1lZGl1bS8yO1xuXHR9XG59XG5cbi8vIEhlbGZlcmtsYXNzZSAncmVtb3ZlLW1hcmdpbicgd2lyZCBpbiB0aGVtZS1kZXZlbG9wbWVudCBlcnpldWd0XG4vLyBJbnRlZ3JhdGlvbiBpbiBBcnJheSAncm93JyB2b24gRE1BIFNpbXBsZSBHcmlkIEtvbmZpZ3VyYXRpb25cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBLbGFzc2UgZsO8ciBadXdlaXN1bmcgaG9yaXpvbnRhbGVyIFBhZGRpbmdzIGluIEFiZ2xlaWNoIG1pdCBHcmlkIFBhZGRpbmdzXG5AbWl4aW4gZ3JpZC1wYWRkaW5nLXgge1xuXHRwYWRkaW5nLWxlZnQgIDogcmVtLWNhbGMoJGdyaWQtY29sdW1uLWd1dHRlci1zbWFsbCkgLyAyO1xuXHRwYWRkaW5nLXJpZ2h0IDogcmVtLWNhbGMoJGdyaWQtY29sdW1uLWd1dHRlci1zbWFsbCkgLyAyO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHBhZGRpbmctbGVmdCAgOiByZW0tY2FsYygkZ3JpZC1jb2x1bW4tZ3V0dGVyLW1lZGl1bSkgLyAyO1xuXHRcdHBhZGRpbmctcmlnaHQgOiByZW0tY2FsYygkZ3JpZC1jb2x1bW4tZ3V0dGVyLW1lZGl1bSkgLyAyO1xuXHR9XG59XG5cbkBtaXhpbiBncmlkLXBhZGRpbmcteC1ub25lIHtcblx0cGFkZGluZy1sZWZ0ICA6IDA7XG5cdHBhZGRpbmctcmlnaHQgOiAwO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHBhZGRpbmctbGVmdCAgOiAwO1xuXHRcdHBhZGRpbmctcmlnaHQgOiAwO1xuXHR9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjMuMVxuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbi8vIERlcGVuZGVuY2llc1xuQGltcG9ydCAnX3ZlbmRvci9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICdfdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvbWlzc2luZy1kZXBlbmRlbmNpZXMnO1xuQGltcG9ydCAnX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL3RydWUnO1xuQGltcG9ydCAnX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJ192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG4vLyBTZXR0aW5nc1xuLy8gaW1wb3J0IHlvdXIgb3duIGBzZXR0aW5nc2AgaGVyZSBvclxuLy8gaW1wb3J0IGFuZCBtb2RpZnkgdGhlIGRlZmF1bHQgc2V0dGluZ3MgdGhyb3VnaFxuLy8gQGltcG9ydCAnc2V0dGluZ3Mvc2V0dGluZ3MnO1xuLy8gU2FzcyB1dGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgdmFyaWFibGVzIGFuZCBzdHlsZXNcbkBpbXBvcnQgJ2dsb2JhbCc7XG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1lbWJlZCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zbGlkZXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoJGZsZXg6IGZhbHNlKSB7XG5cdEBpZiAkZmxleCB7XG5cdFx0JGdsb2JhbC1mbGV4Ym94IDogdHJ1ZSAhZ2xvYmFsO1xuXHR9XG5cdFxuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG5cdEBpZiBub3QgJGZsZXgge1xuXHRcdEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcblx0fSBAZWxzZSB7XG5cdFx0QGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG5cdH1cblx0QGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWNhbGxvdXQ7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tY2FyZDtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1jbG9zZS1idXR0b247XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tbWVudTtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tZHJpbGxkb3duLW1lbnU7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd247XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLW9yYml0O1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tcmV2ZWFsO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi10YWJzO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3Nlcztcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuXHRcblx0QGlmICRmbGV4IHtcblx0XHRAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3Nlcztcblx0fVxufVxuIiwiLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgbm9ybWFsaXplKCkgbWl4aW4uXG5AZnVuY3Rpb24gX25vcm1hbGl6ZS1pbmNsdWRlKCRzZWN0aW9uLCAkZXhjbHVkZTogbnVsbCkge1xuICAvLyBJbml0aWFsaXplIHRoZSBnbG9iYWwgdmFyaWFibGVzIG5lZWRlZCBieSB0aGlzIGZ1bmN0aW9uLlxuICBAaWYgbm90IGdsb2JhbF92YXJpYWJsZV9leGlzdHMoX25vcm1hbGl6ZS1pbmNsdWRlKSB7XG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogKCkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiAoKSAhZ2xvYmFsO1xuICB9XG4gIC8vIFNpbmNlIHdlIGFyZSBnaXZlbiAyIHBhcmFtZXRlcnMsIHNldCB0aGUgZ2xvYmFsIHZhcmlhYmxlcy5cbiAgQGlmICRleGNsdWRlICE9IG51bGwge1xuICAgICRpbmNsdWRlOiAkc2VjdGlvbjtcbiAgICAvLyBTYXNzIGRvZXNuJ3QgaGF2ZSBzdGF0aWMgdmFyaWFibGVzLCBzbyB0aGUgd29yay1hcm91bmQgaXMgdG8gc3R1ZmYgdGhlc2VcbiAgICAvLyB2YWx1ZXMgaW50byBnbG9iYWwgdmFyaWFibGVzIHNvIHdlIGNhbiBhY2Nlc3MgdGhlbSBpbiBmdXR1cmUgY2FsbHMuXG4gICAgJF9ub3JtYWxpemUtaW5jbHVkZTogaWYodHlwZS1vZigkaW5jbHVkZSkgPT0gJ2xpc3QnLCAkaW5jbHVkZSwgKCRpbmNsdWRlKSkgIWdsb2JhbDtcbiAgICAkX25vcm1hbGl6ZS1leGNsdWRlOiBpZih0eXBlLW9mKCRleGNsdWRlKSA9PSAnbGlzdCcsICRleGNsdWRlLCAoJGV4Y2x1ZGUpKSAhZ2xvYmFsO1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmICRzZWN0aW9uIGlzIGluIHRoZSAkaW5jbHVkZSBsaXN0LlxuICBAaWYgaW5kZXgoJF9ub3JtYWxpemUtaW5jbHVkZSwgJHNlY3Rpb24pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gSWYgJGluY2x1ZGUgaXMgc2V0IHRvIChhbGwpLCBtYWtlIHN1cmUgJHNlY3Rpb24gaXMgbm90IGluICRleGNsdWRlLlxuICBAZWxzZSBpZiBub3QgaW5kZXgoJF9ub3JtYWxpemUtZXhjbHVkZSwgJHNlY3Rpb24pIGFuZCBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCBhbGwpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZSgkaW5jbHVkZTogKGFsbCksICRleGNsdWRlOiAoKSkge1xuICAvLyBJbml0aWFsaXplIHRoZSBoZWxwZXIgZnVuY3Rpb24gYnkgcGFzc2luZyBpdCB0aGlzIG1peGluJ3MgcGFyYW1ldGVycy5cbiAgJGluaXQ6IF9ub3JtYWxpemUtaW5jbHVkZSgkaW5jbHVkZSwgJGV4Y2x1ZGUpO1xuXG4gIC8vIElmIHdlJ3ZlIGN1c3RvbWl6ZWQgYW55IGZvbnQgdmFyaWFibGVzLCB3ZSdsbCBuZWVkIGV4dHJhIHByb3BlcnRpZXMuXG4gIEBpZiAkYmFzZS1mb250LXNpemUgIT0gMTZweFxuICAgIG9yICRiYXNlLWxpbmUtaGVpZ2h0ICE9IDI0cHhcbiAgICBvciAkYmFzZS11bml0ICE9ICdlbSdcbiAgICBvciAkaDEtZm9udC1zaXplICE9IDIgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDItZm9udC1zaXplICE9IDEuNSAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDMtZm9udC1zaXplICE9IDEuMTcgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDQtZm9udC1zaXplICE9IDEgICAgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDUtZm9udC1zaXplICE9IDAuODMgKiAkYmFzZS1mb250LXNpemVcbiAgICBvciAkaDYtZm9udC1zaXplICE9IDAuNjcgKiAkYmFzZS1mb250LXNpemUge1xuICAgICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiB0cnVlICFnbG9iYWw7XG4gIH1cblxuICAvKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZG9jdW1lbnQpIHtcbiAgICAvKiBEb2N1bWVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDMuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAgICAgKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gICAgICovXG5cbiAgICBodG1sIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLy8gQ29ycmVjdCBvbGQgYnJvd3NlciBidWcgdGhhdCBwcmV2ZW50ZWQgYWNjZXNzaWJsZSByZXNpemluZyBvZiB0ZXh0XG4gICAgICAgIC8vIHdoZW4gcm9vdCBmb250LXNpemUgaXMgc2V0IHdpdGggcHggb3IgZW0uXG4gICAgICAgIGZvbnQtc2l6ZTogKCRiYXNlLWZvbnQtc2l6ZSAvIDE2cHgpICogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgkYmFzZS1saW5lLWhlaWdodCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDIgKi9cbiAgICAgIH1cbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAzICovXG4gICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNlY3Rpb25zKSB7XG4gICAgLyogU2VjdGlvbnNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBib2R5IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGFydGljbGUsXG4gICAgYXNpZGUsXG4gICAgZm9vdGVyLFxuICAgIGhlYWRlcixcbiAgICBuYXYsXG4gICAgc2VjdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGgxIHtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1mb250LXNpemUoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLiAqL1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMC42N2VtIDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIGgyIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgyLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGgzLWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg0IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg0LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg1IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg1LWZvbnQtc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGg2IHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCwgJGg2LWZvbnQtc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShncm91cGluZykge1xuICAgIC8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxICRpbmRlbnQtYW1vdW50KTtcbiAgICAgIH1cblxuICAgICAgZGwsXG4gICAgICBvbCxcbiAgICAgIHVsIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICovXG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBvbCxcbiAgICAgICAgdWwge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgJGluZGVudC1hbW91bnQ7XG4gICAgICB9XG5cbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGZpZ2NhcHRpb24sXG4gICAgZmlndXJlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAgICAgKi9cblxuICAgIGZpZ3VyZSB7XG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBtYXJnaW46IDFlbSAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgICAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgICAqL1xuXG4gICAgaHIge1xuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgICAgIGhlaWdodDogMDsgLyogMSAqL1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIG1haW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgIC8qKlxuICAgICAgICogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbi5cbiAgICAgICAqL1xuXG4gICAgICBwLFxuICAgICAgcHJlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgcHJlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGxpbmtzKSB7XG4gICAgLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cblxuICAgIGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDEgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcbiAgICAgKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGE6YWN0aXZlLFxuICAgIGE6aG92ZXIge1xuICAgICAgb3V0bGluZS13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHRleHQpIHtcbiAgICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gICAgICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGFiYnJbdGl0bGVdIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBiLFxuICAgIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgY29kZSxcbiAgICBrYmQsXG4gICAgc2FtcCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuXG4gICAgZGZuIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtYXJrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAgICAqIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1YixcbiAgICBzdXAge1xuICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgIH1cblxuICAgIHN1cCB7XG4gICAgICB0b3A6IC0wLjVlbTtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGVtYmVkZGVkKSB7XG4gICAgLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGF1ZGlvLFxuICAgIHZpZGVvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICAgICAqL1xuXG4gICAgYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICAgICAqL1xuXG4gICAgc3ZnOm5vdCg6cm9vdCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGZvcm1zKSB7XG4gICAgLyogRm9ybXNcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaW5wdXQsXG4gICAgb3B0Z3JvdXAsXG4gICAgc2VsZWN0LFxuICAgIHRleHRhcmVhIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAgICAgfVxuICAgICAgbWFyZ2luOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBidXR0b24ge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gICAgICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIHNlbGVjdCB7IC8qIDEgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICAgICAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYnV0dG9uLFxuICAgIGh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdLFxuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgICAgKi9cblxuICAgICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgICAgKi9cblxuICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICAgICAqL1xuXG4gICAgaW5wdXQge1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gICAgICovXG5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xuXG4gICAgICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi9cblxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAgKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgICovXG5cbiAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gICAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5cbiAgICBmaWVsZHNldCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgICAgIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICAgICAgcGFkZGluZzogMDsgLyogMyAqL1xuICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAgICAqL1xuXG4gICAgdGV4dGFyZWEge1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShpbnRlcmFjdGl2ZSkge1xuICAgIC8qIEludGVyYWN0aXZlXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICAgICAqL1xuXG4gICAgZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIHN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5cbiAgICBtZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvKlxuICAgICAgICAgKiAxLiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICAgKiAyLiBTZXQgY29uc2lzdGVudCBzcGFjZSBmb3IgdGhlIGxpc3Qgc3R5bGUgaW1hZ2UuXG4gICAgICAgICAqL1xuXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwKTsgLyogMSAqL1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAkaW5kZW50LWFtb3VudDsgLyogMiAqL1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUdXJuIG9mZiBtYXJnaW5zIG9uIG5lc3RlZCBsaXN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgbWVudSAmLFxuICAgICAgICBvbCAmLFxuICAgICAgICB1bCAmIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKHNjcmlwdGluZykge1xuICAgIC8qIFNjcmlwdGluZ1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIGNhbnZhcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZW1wbGF0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoaGlkZGVuKSB7XG4gICAgLyogSGlkZGVuXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFtoaWRkZW5dIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gVmFyaWFibGVzXG4vL1xuLy8gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB2YWx1ZXMgYnkgc2V0dGluZyB0aGUgdmFyaWFibGVzIGluIHlvdXIgU2Fzc1xuLy8gYmVmb3JlIGltcG9ydGluZyB0aGUgbm9ybWFsaXplLXNjc3MgbGlicmFyeS5cblxuLy8gVGhlIGZvbnQgc2l6ZSBzZXQgb24gdGhlIHJvb3QgaHRtbCBlbGVtZW50LlxuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgYmFzZSBsaW5lIGhlaWdodCBkZXRlcm1pbmVzIHRoZSBiYXNpYyB1bml0IG9mIHZlcnRpY2FsIHJoeXRobS5cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgbGVuZ3RoIHVuaXQgaW4gd2hpY2ggdG8gb3V0cHV0IHZlcnRpY2FsIHJoeXRobSB2YWx1ZXMuXG4vLyBTdXBwb3J0ZWQgdmFsdWVzOiBweCwgZW0sIHJlbS5cbiRiYXNlLXVuaXQ6ICdlbScgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5LlxuJGJhc2UtZm9udC1mYW1pbHk6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb250IHNpemVzIGZvciBoMS1oNi5cbiRoMS1mb250LXNpemU6IDIgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAxLjUgICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogMS4xNyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IDEgICAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAwLjgzICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMC42NyAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGFtb3VudCBsaXN0cyBhbmQgYmxvY2txdW90ZXMgYXJlIGluZGVudGVkLlxuJGluZGVudC1hbW91bnQ6IDQwcHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgY29udHJvbHMgd2hldGhlciBub3JtYWxpemUtc2NzcyB3aWxsIG91dHB1dFxuLy8gZm9udC1zaXplcywgbGluZS1oZWlnaHRzIGFuZCBibG9jay1sZXZlbCB0b3AvYm90dG9tIG1hcmdpbnMgdGhhdCBmb3JtIGEgYmFzaWNcbi8vIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgcGFnZSwgd2hpY2ggZGlmZmVycyBmcm9tIHRoZSBvcmlnaW5hbCBOb3JtYWxpemUuY3NzLlxuLy8gSG93ZXZlciwgY2hhbmdpbmcgYW55IG9mIHRoZSB2YXJpYWJsZXMgYWJvdmUgd2lsbCBjYXVzZVxuLy8gJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0gdG8gYmUgYXV0b21hdGljYWxseSBzZXQgdG8gdHJ1ZS5cbiRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBWZXJ0aWNhbCBSaHl0aG1cbi8vXG4vLyBUaGlzIGlzIHRoZSBtaW5pbWFsIGFtb3VudCBvZiBjb2RlIG5lZWRlZCB0byBjcmVhdGUgdmVydGljYWwgcmh5dGhtIGluIG91clxuLy8gQ1NTLiBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgcm9idXN0IHNvbHV0aW9uLCBsb29rIGF0IHRoZSBleGNlbGxlbnQgVHlwZXlcbi8vIGxpYnJhcnkuIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pwdGFyYW50by90eXBleVxuXG5AZnVuY3Rpb24gbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplLCAkdW5pdDogJGJhc2UtdW5pdCkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9IHB4IHtcbiAgICBAZXJyb3IgXCJUaGUgbm9ybWFsaXplIHZlcnRpY2FsLXJoeXRobSBtb2R1bGUgb25seSBzdXBwb3J0cyBweCBpbnB1dHMuIFRoZSB0eXBleSBsaWJyYXJ5IGlzIGJldHRlci5cIjtcbiAgfVxuICBAaWYgJHVuaXQgPT0gcmVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkYmFzZS1mb250LXNpemUpICogMXJlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSBlbSB7XG4gICAgQHJldHVybiAoJHZhbHVlIC8gJHJlbGF0aXZlLXRvKSAqIDFlbTtcbiAgfVxuICBAZWxzZSB7IC8vICR1bml0ID09IHB4XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbn1cblxuQG1peGluIG5vcm1hbGl6ZS1mb250LXNpemUoJHZhbHVlLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdweCcge1xuICAgIEBlcnJvciBcIm5vcm1hbGl6ZS1mb250LXNpemUoKSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIGZvbnQtc2l6ZTogbm9ybWFsaXplLXJoeXRobSgkdmFsdWUsICRyZWxhdGl2ZS10byk7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtcmh5dGhtKCRwcm9wZXJ0eSwgJHZhbHVlcywgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUpIHtcbiAgJHZhbHVlLWxpc3Q6ICR2YWx1ZXM7XG4gICRzZXA6IHNwYWNlO1xuICBAaWYgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuICAgICRzZXA6IGxpc3Qtc2VwYXJhdG9yKCR2YWx1ZXMpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdmFsdWUtbGlzdDogYXBwZW5kKCgpLCAkdmFsdWVzKTtcbiAgfVxuXG4gICRub3JtYWxpemVkLXZhbHVlczogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWUtbGlzdCB7XG4gICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICR2YWx1ZSAhPSAwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogbm9ybWFsaXplLXJoeXRobSgkYmFzZS1saW5lLWhlaWdodCwgJHJlbGF0aXZlLXRvKTtcbiAgICB9XG4gICAgJG5vcm1hbGl6ZWQtdmFsdWVzOiBhcHBlbmQoJG5vcm1hbGl6ZWQtdmFsdWVzLCAkdmFsdWUsICRzZXApO1xuICB9XG4gICN7JHByb3BlcnR5fTogJG5vcm1hbGl6ZWQtdmFsdWVzO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLW1hcmdpbigkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKG1hcmdpbiwgJHZhbHVlcywgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkZm9udC1zaXplLCAkbWluLWxpbmUtcGFkZGluZzogMnB4KSB7XG4gICRsaW5lczogY2VpbCgkZm9udC1zaXplIC8gJGJhc2UtbGluZS1oZWlnaHQpO1xuICAvLyBJZiBsaW5lcyBhcmUgY3JhbXBlZCBpbmNsdWRlIHNvbWUgZXh0cmEgbGVhZGluZy5cbiAgQGlmICgkbGluZXMgKiAkYmFzZS1saW5lLWhlaWdodCAtICRmb250LXNpemUpIDwgKCRtaW4tbGluZS1wYWRkaW5nICogMikge1xuICAgICRsaW5lczogJGxpbmVzICsgMTtcbiAgfVxuICBAaW5jbHVkZSBub3JtYWxpemUtcmh5dGhtKGxpbmUtaGVpZ2h0LCAkbGluZXMsICRmb250LXNpemUpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIGZvcmNlLWF0dHJpYnV0ZS1uZXN0aW5nLCBmb3JjZS1wc2V1ZG8tbmVzdGluZywgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIHByaW1hcnk6ICMxNzc5YmEsXG4gIHNlY29uZGFyeTogIzc2NzY3NixcbiAgc3VjY2VzczogIzNhZGI3NixcbiAgd2FybmluZzogI2ZmYWUwMCxcbiAgYWxlcnQ6ICNjYzRiMzcsXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbGlnaHQgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBtZWRpdW0gZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJG1lZGl1bS1ncmF5OiAjY2FjYWNhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kZGFyay1ncmF5OiAjOGE4YThhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgYmxhY2sgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIHdoaXRlIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kd2hpdGU6ICNmZWZlZmUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIENvbG9yXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIG9mIHRoZSBib2R5LlxuLy8vIEB0eXBlIExpc3RcbiRib2R5LWZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRib2R5LWFudGlhbGlhc2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIG1hcmdpbiBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgcGFkZGluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxuLy8vIEB0eXBlIEtleXdvcmQgfCBOdW1iZXJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIGJvbGQgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgYSBib3JkZXIgcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmIG5vdCBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XG59XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxuJGdsb2JhbC1sZWZ0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgcmlnaHQsIGxlZnQpO1xuJGdsb2JhbC1yaWdodDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGxlZnQsIHJpZ2h0KTtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuJHByaW1hcnktY29sb3I6IGdldC1jb2xvcihwcmltYXJ5KTtcbiRzZWNvbmRhcnktY29sb3I6IGdldC1jb2xvcihzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IGdldC1jb2xvcihzdWNjZXNzKTtcbiR3YXJuaW5nLWNvbG9yOiBnZXQtY29sb3Iod2FybmluZyk7XG4kYWxlcnQtY29sb3I6IGdldC1jb2xvcihhbGVydCk7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xuICBAaW5jbHVkZSAtemYtbm9ybWFsaXplO1xuXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxuICAuZm91bmRhdGlvbi1tcSB7XG4gICAgZm9udC1mYW1pbHk6ICcjey16Zi1icC1zZXJpYWxpemUoJGJyZWFrcG9pbnRzKX0nO1xuICB9XG5cbiAgaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gU2V0IGJveC1zaXppbmcgZ2xvYmFsbHkgdG8gaGFuZGxlIHBhZGRpbmcgYW5kIGJvcmRlciB3aWR0aHNcbiAgKixcbiAgKjo6YmVmb3JlLFxuICAqOjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIExvYWRzIG5vcm1hbGl6ZS5jc3MuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZSgpO1xufVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENhcmRcbi8vICAxNS4gQ2xvc2UgQnV0dG9uXG4vLyAgMTYuIERyaWxsZG93blxuLy8gIDE3LiBEcm9wZG93blxuLy8gIDE4LiBEcm9wZG93biBNZW51XG4vLyAgMTkuIEZvcm1zXG4vLyAgMjAuIExhYmVsXG4vLyAgMjEuIE1lZGlhIE9iamVjdFxuLy8gIDIyLiBNZW51XG4vLyAgMjMuIE1ldGVyXG4vLyAgMjQuIE9mZi1jYW52YXNcbi8vICAyNS4gT3JiaXRcbi8vICAyNi4gUGFnaW5hdGlvblxuLy8gIDI3LiBQcm9ncmVzcyBCYXJcbi8vICAyOC4gUmVzcG9uc2l2ZSBFbWJlZFxuLy8gIDI5LiBSZXZlYWxcbi8vICAzMC4gU2xpZGVyXG4vLyAgMzEuIFN3aXRjaFxuLy8gIDMyLiBUYWJsZVxuLy8gIDMzLiBUYWJzXG4vLyAgMzQuIFRodW1ibmFpbFxuLy8gIDM1LiBUaXRsZSBCYXJcbi8vICAzNi4gVG9vbHRpcFxuLy8gIDM3LiBUb3AgQmFyXG5AaW1wb3J0ICdmb3VuZGF0aW9uL3V0aWwvdXRpbCc7XG5cbi8vIDEuIEdsb2JhbFxuLy8gLS0tLS0tLS0tXG5cbiRnbG9iYWwtZm9udC1zaXplIDogMTAwJTtcbiRnbG9iYWwtd2lkdGggOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtbGluZWhlaWdodCA6IDEuNTtcbiRmb3VuZGF0aW9uLXBhbGV0dGUgOiAoXG5cdFx0cHJpbWFyeTogIzAwMDAwMCxcblx0XHRzZWNvbmRhcnk6ICMxYTFhMWEsXG5cdFx0c3VjY2VzczogIzNhZGI3Nixcblx0XHR3YXJuaW5nOiAjZmZhZTAwLFxuXHRcdGFsZXJ0OiAjZWM1ODQwXG4pO1xuJGxpZ2h0LWdyYXkgOiAjZTRlNGU0O1xuJG1lZGl1bS1ncmF5IDogI2NhY2FjYTtcbiRkYXJrLWdyYXkgOiAjMWExYTFhO1xuJGJsYWNrIDogIzAwMDAwMDtcbiR3aGl0ZSA6ICNmZWZlZmU7XG4kYm9keS1iYWNrZ3JvdW5kIDogI2U5ZTdlODtcbiRib2R5LWZvbnQtY29sb3IgOiAkYmxhY2s7XG4kYm9keS1mb250LWZhbWlseSA6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiRib2R5LWFudGlhbGlhc2VkIDogdHJ1ZTtcbiRnbG9iYWwtbWFyZ2luIDogMXJlbTtcbiRnbG9iYWwtcGFkZGluZyA6IDFyZW07XG4kZ2xvYmFsLXdlaWdodC1ub3JtYWwgOiBub3JtYWw7XG4kZ2xvYmFsLXdlaWdodC1ib2xkIDogYm9sZDtcbiRnbG9iYWwtcmFkaXVzIDogMDtcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gOiBsdHI7XG4kZ2xvYmFsLWZsZXhib3ggOiB0cnVlO1xuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIDogdHJ1ZTtcblxuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG4vLyAyLiBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFrcG9pbnRzIDogKFxuXHRcdHNtYWxsOiAwLFxuXHRcdHhzbWFsbDogNDgwcHgsXG5cdFx0bWVkaXVtOiA2NDBweCxcblx0XHRsYXJnZTogMTAyNHB4LFxuXHRcdHhsYXJnZTogMTIwMHB4LFxuXHRcdHh4bGFyZ2U6IDE2MDBweFxuKTtcbiRwcmludC1icmVha3BvaW50IDogbGFyZ2U7XG4kYnJlYWtwb2ludC1jbGFzc2VzIDogKHNtYWxsIHhzbWFsbCBtZWRpdW0gbGFyZ2UgeGxhcmdlIHh4bGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoIDogJGdsb2JhbC13aWR0aDtcbiRncmlkLWNvbHVtbi1jb3VudCA6IDEyO1xuJGdyaWQtY29sdW1uLWd1dHRlciA6IChcblx0XHRzbWFsbDogMjBweCxcblx0XHRtZWRpdW06IDMwcHgsXG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2UgOiB0cnVlO1xuJGJsb2NrLWdyaWQtbWF4IDogODtcblxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuJGhlYWRlci1mb250LWZhbWlseSA6ICRib2R5LWZvbnQtZmFtaWx5O1xuJGhlYWRlci1mb250LXdlaWdodCA6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRoZWFkZXItZm9udC1zdHlsZSA6IG5vcm1hbDtcbiRmb250LWZhbWlseS1tb25vc3BhY2UgOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiRoZWFkZXItY29sb3IgOiBpbmhlcml0O1xuJGhlYWRlci1saW5laGVpZ2h0IDogMS40O1xuJGhlYWRlci1tYXJnaW4tYm90dG9tIDogMC41cmVtO1xuJGhlYWRlci1zdHlsZXMgOiAoXG5cdFx0c21hbGw6IChcblx0XHRcdFx0J2gxJzogKCdmb250LXNpemUnOiAyOCksXG5cdFx0XHRcdCdoMic6ICgnZm9udC1zaXplJzogMTgpLFxuXHRcdFx0XHQnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE0KSxcblx0XHRcdFx0J2g0JzogKCdmb250LXNpemUnOiAxNiksXG5cdFx0XHRcdCdoNSc6ICgnZm9udC1zaXplJzogMTYpLFxuXHRcdFx0XHQnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcblx0XHQpLFxuXHRcdG1lZGl1bTogKFxuXHRcdFx0XHQnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDMyKSxcblx0XHRcdFx0J2gyJzogKCdmb250LXNpemUnOiAyMiksXG5cdFx0XHRcdCdoMyc6ICgnZm9udC1zaXplJzogMTQpLFxuXHRcdFx0XHQnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcblx0XHRcdFx0J2g1JzogKCdmb250LXNpemUnOiAxNiksXG5cdFx0XHRcdCdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuXHRcdCksXG4pO1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZyA6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemUgOiA4MCU7XG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3IgOiAkbWVkaXVtLWdyYXk7XG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQgOiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gOiAxcmVtO1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZyA6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRjb2RlLWNvbG9yIDogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHkgOiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGNvZGUtZm9udC13ZWlnaHQgOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kY29kZS1iYWNrZ3JvdW5kIDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXIgOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNvZGUtcGFkZGluZyA6IHJlbS1jYWxjKDIgNSAxKTtcbiRhbmNob3ItY29sb3IgOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXIgOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzIDogLTE0JSk7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbiA6IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciA6IG5vbmU7XG4kaHItd2lkdGggOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlciA6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luIDogcmVtLWNhbGMoMjApIGF1dG87XG4kbGlzdC1saW5laGVpZ2h0IDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbSA6ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGUgOiBkaXNjO1xuJGxpc3Qtc3R5bGUtcG9zaXRpb24gOiBvdXRzaWRlO1xuJGxpc3Qtc2lkZS1tYXJnaW4gOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luIDogMS4yNXJlbTtcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tIDogMXJlbTtcbiRkZWZubGlzdC10ZXJtLXdlaWdodCA6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tIDogMC4zcmVtO1xuJGJsb2NrcXVvdGUtY29sb3IgOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZyA6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XG4kYmxvY2txdW90ZS1ib3JkZXIgOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGNpdGUtZm9udC1zaXplIDogcmVtLWNhbGMoMTMpO1xuJGNpdGUtY29sb3IgOiAkZGFyay1ncmF5O1xuJGNpdGUtcHNldWRvLWNvbnRlbnQgOiAnXFwyMDE0IFxcMDAyMCc7XG4ka2V5c3Ryb2tlLWZvbnQgOiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuJGtleXN0cm9rZS1jb2xvciA6ICRibGFjaztcbiRrZXlzdHJva2UtYmFja2dyb3VuZCA6ICRsaWdodC1ncmF5O1xuJGtleXN0cm9rZS1wYWRkaW5nIDogcmVtLWNhbGMoMiA0IDApO1xuJGtleXN0cm9rZS1yYWRpdXMgOiAkZ2xvYmFsLXJhZGl1cztcbiRhYmJyLXVuZGVybGluZSA6IDFweCBkb3R0ZWQgJGJsYWNrO1xuXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbGVhZC1mb250LXNpemUgOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kbGVhZC1saW5laGVpZ2h0IDogMS42O1xuJHN1YmhlYWRlci1saW5laGVpZ2h0IDogMS40O1xuJHN1YmhlYWRlci1jb2xvciA6ICRkYXJrLWdyYXk7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0IDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJHN1YmhlYWRlci1tYXJnaW4tdG9wIDogMC4ycmVtO1xuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tIDogMC41cmVtO1xuJHN0YXQtZm9udC1zaXplIDogMi41cmVtO1xuXG4vLyA2LiBBYmlkZVxuLy8gLS0tLS0tLS1cblxuJGFiaWRlLWlucHV0cyA6IHRydWU7XG4kYWJpZGUtbGFiZWxzIDogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQgOiBnZXQtY29sb3IoYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZCA6IGdldC1jb2xvcihhbGVydCk7XG4kaW5wdXQtZXJyb3ItY29sb3IgOiBnZXQtY29sb3IoYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZSA6IHJlbS1jYWxjKDEyKTtcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodCA6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG5cbi8vIDcuIEFjY29yZGlvblxuLy8gLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb24tYmFja2dyb3VuZCA6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzIDogdHJ1ZTtcbiRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplIDogcmVtLWNhbGMoMTIpO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yIDogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlciA6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcgOiAxLjI1cmVtIDFyZW07XG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCA6ICR3aGl0ZTtcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXIgOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3IgOiAkYm9keS1mb250LWNvbG9yO1xuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcgOiAxcmVtO1xuXG4vLyA4LiBBY2NvcmRpb24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGFjY29yZGlvbm1lbnUtYXJyb3dzIDogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yIDogJHByaW1hcnktY29sb3I7XG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplIDogNnB4O1xuXG4vLyA5LiBCYWRnZVxuLy8gLS0tLS0tLS1cblxuJGJhZGdlLWJhY2tncm91bmQgOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvciA6ICR3aGl0ZTtcbiRiYWRnZS1jb2xvci1hbHQgOiAkYmxhY2s7XG4kYmFkZ2UtcGFsZXR0ZSA6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZyA6IDAuM2VtO1xuJGJhZGdlLW1pbndpZHRoIDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplIDogMC42cmVtO1xuXG4vLyAxMC4gQnJlYWRjcnVtYnNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWRjcnVtYnMtbWFyZ2luIDogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemUgOiByZW0tY2FsYygxMSk7XG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvciA6ICRwcmltYXJ5LWNvbG9yO1xuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItY3VycmVudCA6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkIDogJG1lZGl1bS1ncmF5O1xuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luIDogMC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSA6IHRydWU7XG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCA6IHRydWU7XG5cbi8vIDExLiBCdXR0b25cbi8vIC0tLS0tLS0tLS1cblxuJGJ1dHRvbi1wYWRkaW5nIDogMC44NWVtIDFlbTtcbiRidXR0b24tbWFyZ2luIDogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnV0dG9uLWZpbGwgOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZCA6ICRwcmltYXJ5LWNvbG9yO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyIDogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzIDogLTE1JSk7XG4kYnV0dG9uLWNvbG9yIDogJHdoaXRlO1xuJGJ1dHRvbi1jb2xvci1hbHQgOiAkYmxhY2s7XG4kYnV0dG9uLXJhZGl1cyA6ICRnbG9iYWwtcmFkaXVzO1xuJGJ1dHRvbi1zaXplcyA6IChcblx0XHR0aW55OiAwLjZyZW0sXG5cdFx0c21hbGw6IDAuNzVyZW0sXG5cdFx0ZGVmYXVsdDogMC45cmVtLFxuXHRcdGxhcmdlOiAxLjI1cmVtLFxuKTtcbiRidXR0b24tcGFsZXR0ZSA6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQgOiAwLjI1O1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyA6IC0yMCU7XG4kYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3MgOiAtNTAlO1xuJGJ1dHRvbi10cmFuc2l0aW9uIDogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG5cbi8vIDEyLiBCdXR0b24gR3JvdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGJ1dHRvbmdyb3VwLW1hcmdpbiA6IDFyZW07XG4kYnV0dG9uZ3JvdXAtc3BhY2luZyA6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvciA6ICcuYnV0dG9uJztcbiRidXR0b25ncm91cC1leHBhbmQtbWF4IDogNjtcbiRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCA6IHRydWU7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kIDogJHdoaXRlO1xuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlIDogODUlO1xuJGNhbGxvdXQtYm9yZGVyIDogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcbiRjYWxsb3V0LW1hcmdpbiA6IDAgMCAxcmVtIDA7XG4kY2FsbG91dC1wYWRkaW5nIDogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3IgOiAkYm9keS1mb250LWNvbG9yO1xuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQgOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGNhbGxvdXQtcmFkaXVzIDogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQgOiAzMCU7XG5cbi8vIDE0LiBDYXJkXG4vLyAtLS0tLS0tLVxuXG4kY2FyZC1iYWNrZ3JvdW5kIDogJHdoaXRlO1xuJGNhcmQtZm9udC1jb2xvciA6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FyZC1kaXZpZGVyLWJhY2tncm91bmQgOiAkbGlnaHQtZ3JheTtcbiRjYXJkLWJvcmRlciA6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiRjYXJkLXNoYWRvdyA6IG5vbmU7XG4kY2FyZC1ib3JkZXItcmFkaXVzIDogJGdsb2JhbC1yYWRpdXM7XG4kY2FyZC1wYWRkaW5nIDogJGdsb2JhbC1wYWRkaW5nO1xuJGNhcmQtbWFyZ2luIDogJGdsb2JhbC1tYXJnaW47XG5cbi8vIDE1LiBDbG9zZSBCdXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uIDogcmlnaHQgdG9wO1xuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsIDogKFxuXHRcdHNtYWxsOiAwLjY2cmVtLFxuXHRcdG1lZGl1bTogMXJlbSxcbik7XG4kY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsIDogKFxuXHRcdHNtYWxsOiAwLjMzZW0sXG5cdFx0bWVkaXVtOiAwLjVyZW0sXG4pO1xuJGNsb3NlYnV0dG9uLXNpemUgOiAoXG5cdFx0c21hbGw6IDEuNWVtLFxuXHRcdG1lZGl1bTogMmVtLFxuKTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0IDogMTtcbiRjbG9zZWJ1dHRvbi1jb2xvciA6ICRkYXJrLWdyYXk7XG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXIgOiAkYmxhY2s7XG5cbi8vIDE2LiBEcmlsbGRvd25cbi8vIC0tLS0tLS0tLS0tLS1cblxuJGRyaWxsZG93bi10cmFuc2l0aW9uIDogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcbiRkcmlsbGRvd24tYXJyb3dzIDogdHJ1ZTtcbiRkcmlsbGRvd24tYXJyb3ctY29sb3IgOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZSA6IDZweDtcbiRkcmlsbGRvd24tYmFja2dyb3VuZCA6ICR3aGl0ZTtcblxuLy8gMTcuIERyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3duLXBhZGRpbmcgOiAxcmVtO1xuJGRyb3Bkb3duLWJhY2tncm91bmQgOiAkYm9keS1iYWNrZ3JvdW5kO1xuJGRyb3Bkb3duLWJvcmRlciA6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplIDogMXJlbTtcbiRkcm9wZG93bi13aWR0aCA6IDMwMHB4O1xuJGRyb3Bkb3duLXJhZGl1cyA6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzIDogKFxuXHRcdHRpbnk6IDEwMHB4LFxuXHRcdHNtYWxsOiAyMDBweCxcblx0XHRsYXJnZTogNDAwcHgsXG4pO1xuXG4vLyAxOC4gRHJvcGRvd24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS1cblxuJGRyb3Bkb3dubWVudS1hcnJvd3MgOiB0cnVlO1xuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciA6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LWFycm93LXNpemUgOiA2cHg7XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aCA6IDIwMHB4O1xuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kIDogJHdoaXRlO1xuJGRyb3Bkb3dubWVudS1ib3JkZXIgOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXG4vLyAxOS4gRm9ybXNcbi8vIC0tLS0tLS0tLVxuXG4kZmllbGRzZXQtYm9yZGVyIDogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRmaWVsZHNldC1wYWRkaW5nIDogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbiA6IHJlbS1jYWxjKDE4IDApO1xuJGxlZ2VuZC1wYWRkaW5nIDogcmVtLWNhbGMoMCAzKTtcbiRmb3JtLXNwYWNpbmcgOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3IgOiAkYmxhY2s7XG4kaGVscHRleHQtZm9udC1zaXplIDogcmVtLWNhbGMoMTMpO1xuJGhlbHB0ZXh0LWZvbnQtc3R5bGUgOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yIDogJGJsYWNrO1xuJGlucHV0LXByZWZpeC1iYWNrZ3JvdW5kIDogJGxpZ2h0LWdyYXk7XG4kaW5wdXQtcHJlZml4LWJvcmRlciA6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmcgOiAxcmVtO1xuJGZvcm0tbGFiZWwtY29sb3IgOiAkYmxhY2s7XG4kZm9ybS1sYWJlbC1mb250LXNpemUgOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodCA6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0IDogMS44O1xuJHNlbGVjdC1iYWNrZ3JvdW5kIDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvciA6ICRkYXJrLWdyYXk7XG4kc2VsZWN0LXJhZGl1cyA6ICRnbG9iYWwtcmFkaXVzO1xuJGlucHV0LWNvbG9yIDogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yIDogJG1lZGl1bS1ncmF5O1xuJGlucHV0LWZvbnQtZmFtaWx5IDogaW5oZXJpdDtcbiRpbnB1dC1mb250LXNpemUgOiByZW0tY2FsYygxNik7XG4kaW5wdXQtZm9udC13ZWlnaHQgOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4kaW5wdXQtYmFja2dyb3VuZCA6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzIDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQgOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXIgOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuJGlucHV0LWJvcmRlci1mb2N1cyA6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xuJGlucHV0LXNoYWRvdyA6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKTtcbiRpbnB1dC1zaGFkb3ctZm9jdXMgOiAwIDAgNXB4ICRtZWRpdW0tZ3JheTtcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQgOiBub3QtYWxsb3dlZDtcbiRpbnB1dC10cmFuc2l0aW9uIDogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzIDogdHJ1ZTtcbiRpbnB1dC1yYWRpdXMgOiAkZ2xvYmFsLXJhZGl1cztcbiRmb3JtLWJ1dHRvbi1yYWRpdXMgOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjAuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQgOiAkcHJpbWFyeS1jb2xvcjtcbiRsYWJlbC1jb2xvciA6ICR3aGl0ZTtcbiRsYWJlbC1jb2xvci1hbHQgOiAkYmxhY2s7XG4kbGFiZWwtcGFsZXR0ZSA6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kbGFiZWwtZm9udC1zaXplIDogMC44cmVtO1xuJGxhYmVsLXBhZGRpbmcgOiAwLjMzMzMzcmVtIDAuNXJlbTtcbiRsYWJlbC1yYWRpdXMgOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjEuIE1lZGlhIE9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbSA6ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZyA6ICRnbG9iYWwtcGFkZGluZztcbiRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkIDogMTAwJTtcblxuLy8gMjIuIE1lbnVcbi8vIC0tLS0tLS0tXG5cbiRtZW51LW1hcmdpbiA6IDA7XG4kbWVudS1tYXJnaW4tbmVzdGVkIDogMXJlbTtcbiRtZW51LWl0ZW0tcGFkZGluZyA6IDAuN3JlbSAxcmVtO1xuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmUgOiAkd2hpdGU7XG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlIDogZ2V0LWNvbG9yKHByaW1hcnkpO1xuJG1lbnUtaWNvbi1zcGFjaW5nIDogMC4yNXJlbTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlciA6ICRsaWdodC1ncmF5O1xuJG1lbnUtYm9yZGVyIDogJGxpZ2h0LWdyYXk7XG5cbi8vIDIzLiBNZXRlclxuLy8gLS0tLS0tLS0tXG5cbiRtZXRlci1oZWlnaHQgOiAxcmVtO1xuJG1ldGVyLXJhZGl1cyA6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQgOiAkbWVkaXVtLWdyYXk7XG4kbWV0ZXItZmlsbC1nb29kIDogJHN1Y2Nlc3MtY29sb3I7XG4kbWV0ZXItZmlsbC1tZWRpdW0gOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZCA6ICRhbGVydC1jb2xvcjtcblxuLy8gMjQuIE9mZi1jYW52YXNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRvZmZjYW52YXMtc2l6ZSA6IDI1MHB4O1xuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplIDogMjUwcHg7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQgOiAkbGlnaHQtZ3JheTtcbiRvZmZjYW52YXMtc2hhZG93IDogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNyk7XG4kb2ZmY2FudmFzLXB1c2gtemluZGV4IDogMTtcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggOiAxMDtcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA6IDE7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoIDogMC41cztcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcgOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwgOiB0cnVlO1xuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQgOiByZ2JhKCR3aGl0ZSwgMC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3MgOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcblxuLy8gMjUuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kIDogJG1lZGl1bS1ncmF5O1xuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZSA6ICRkYXJrLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyIDogMC43NXJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luIDogMC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wIDogMC44cmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tIDogMC44cmVtO1xuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCA6IHJnYmEoJGJsYWNrLCAwLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZyA6IDFyZW07XG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyIDogcmdiYSgkYmxhY2ssIDAuNSk7XG4kb3JiaXQtY29udHJvbC1wYWRkaW5nIDogMXJlbTtcbiRvcmJpdC1jb250cm9sLXppbmRleCA6IDEwO1xuXG4vLyAyNi4gUGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS1cblxuJHBhZ2luYXRpb24tZm9udC1zaXplIDogcmVtLWNhbGMoMTQpO1xuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSA6ICRnbG9iYWwtbWFyZ2luO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvciA6ICRibGFjaztcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyA6IHJlbS1jYWxjKDMgMTApO1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nIDogcmVtLWNhbGMoMSk7XG4kcGFnaW5hdGlvbi1yYWRpdXMgOiAkZ2xvYmFsLXJhZGl1cztcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlciA6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQgOiAkcHJpbWFyeS1jb2xvcjtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudCA6ICR3aGl0ZTtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQgOiAkbWVkaXVtLWdyYXk7XG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvciA6ICRibGFjaztcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyA6IGZhbHNlO1xuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSA6IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzIDogdHJ1ZTtcblxuLy8gMjcuIFByb2dyZXNzIEJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3Jlc3MtaGVpZ2h0IDogMXJlbTtcbiRwcm9ncmVzcy1iYWNrZ3JvdW5kIDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b20gOiAkZ2xvYmFsLW1hcmdpbjtcbiRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kIDogJHByaW1hcnktY29sb3I7XG4kcHJvZ3Jlc3MtcmFkaXVzIDogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI4LiBSZXNwb25zaXZlIEVtYmVkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tIDogcmVtLWNhbGMoMTYpO1xuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zIDogKFxuXHRcdGRlZmF1bHQ6IDQgYnkgMyxcblx0XHR3aWRlc2NyZWVuOiAxNiBieSA5LFxuKTtcblxuLy8gMjkuIFJldmVhbFxuLy8gLS0tLS0tLS0tLVxuXG4kcmV2ZWFsLWJhY2tncm91bmQgOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoIDogNjAwcHg7XG4kcmV2ZWFsLW1heC13aWR0aCA6ICRnbG9iYWwtd2lkdGg7XG4kcmV2ZWFsLXBhZGRpbmcgOiAkZ2xvYmFsLXBhZGRpbmc7XG4kcmV2ZWFsLWJvcmRlciA6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1cyA6ICRnbG9iYWwtcmFkaXVzO1xuJHJldmVhbC16aW5kZXggOiAxMDA1O1xuJHJldmVhbC1vdmVybGF5LWJhY2tncm91bmQgOiByZ2JhKCRibGFjaywgMC40NSk7XG5cbi8vIDMwLiBTbGlkZXJcbi8vIC0tLS0tLS0tLS1cblxuJHNsaWRlci13aWR0aC12ZXJ0aWNhbCA6IDAuNXJlbTtcbiRzbGlkZXItdHJhbnNpdGlvbiA6IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuJHNsaWRlci1oZWlnaHQgOiAwLjVyZW07XG4kc2xpZGVyLWJhY2tncm91bmQgOiAkbGlnaHQtZ3JheTtcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kIDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0IDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtd2lkdGggOiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kIDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQgOiAwLjI1O1xuJHNsaWRlci1yYWRpdXMgOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzEuIFN3aXRjaFxuLy8gLS0tLS0tLS0tLVxuXG4kc3dpdGNoLWJhY2tncm91bmQgOiAkbWVkaXVtLWdyYXk7XG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlIDogJHByaW1hcnktY29sb3I7XG4kc3dpdGNoLWhlaWdodCA6IDJyZW07XG4kc3dpdGNoLWhlaWdodC10aW55IDogMS41cmVtO1xuJHN3aXRjaC1oZWlnaHQtc21hbGwgOiAxLjc1cmVtO1xuJHN3aXRjaC1oZWlnaHQtbGFyZ2UgOiAyLjVyZW07XG4kc3dpdGNoLXJhZGl1cyA6ICRnbG9iYWwtcmFkaXVzO1xuJHN3aXRjaC1tYXJnaW4gOiAkZ2xvYmFsLW1hcmdpbjtcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQgOiAkd2hpdGU7XG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQgOiAwLjI1cmVtO1xuJHN3aXRjaC1wYWRkbGUtcmFkaXVzIDogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uIDogYWxsIDAuMjVzIGVhc2Utb3V0O1xuXG4vLyAzMi4gVGFibGVcbi8vIC0tLS0tLS0tLVxuXG4kdGFibGUtYmFja2dyb3VuZCA6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZSA6IDUlO1xuJHRhYmxlLWJvcmRlciA6IDFweCBzb2xpZCBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1wYWRkaW5nIDogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGUgOiAyJTtcbiR0YWJsZS1yb3ctaG92ZXIgOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlciA6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1pcy1zdHJpcGVkIDogdHJ1ZTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQgOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcbiR0YWJsZS1zdHJpcGUgOiBldmVuO1xuJHRhYmxlLWhlYWQtYmFja2dyb3VuZCA6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlciA6IGRhcmtlbigkdGFibGUtaGVhZC1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLWZvb3QtYmFja2dyb3VuZCA6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLWZvb3Qtcm93LWhvdmVyIDogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSk7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yIDogJGJvZHktZm9udC1jb2xvcjtcbiR0YWJsZS1mb290LWZvbnQtY29sb3IgOiAkYm9keS1mb250LWNvbG9yO1xuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkIDogZmFsc2U7XG5cbi8vIDMzLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbiA6IDA7XG4kdGFiLWJhY2tncm91bmQgOiAkd2hpdGU7XG4kdGFiLWNvbG9yIDogJHByaW1hcnktY29sb3I7XG4kdGFiLWJhY2tncm91bmQtYWN0aXZlIDogJGxpZ2h0LWdyYXk7XG4kdGFiLWFjdGl2ZS1jb2xvciA6ICRwcmltYXJ5LWNvbG9yO1xuJHRhYi1pdGVtLWZvbnQtc2l6ZSA6IHJlbS1jYWxjKDEyKTtcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyIDogJHdoaXRlO1xuJHRhYi1pdGVtLXBhZGRpbmcgOiAxLjI1cmVtIDEuNXJlbTtcbiR0YWItZXhwYW5kLW1heCA6IDY7XG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZCA6ICR3aGl0ZTtcbiR0YWItY29udGVudC1ib3JkZXIgOiAkbGlnaHQtZ3JheTtcbiR0YWItY29udGVudC1jb2xvciA6ICRib2R5LWZvbnQtY29sb3I7XG4kdGFiLWNvbnRlbnQtcGFkZGluZyA6IDFyZW07XG5cbi8vIDM0LiBUaHVtYm5haWxcbi8vIC0tLS0tLS0tLS0tLS1cblxuJHRodW1ibmFpbC1ib3JkZXIgOiBzb2xpZCA0cHggJHdoaXRlO1xuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tIDogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdyA6IDAgMCAwIDFweCByZ2JhKCRibGFjaywgMC4yKTtcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyIDogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KTtcbiR0aHVtYm5haWwtdHJhbnNpdGlvbiA6IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XG4kdGh1bWJuYWlsLXJhZGl1cyA6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNS4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kIDogJGJsYWNrO1xuJHRpdGxlYmFyLWNvbG9yIDogJHdoaXRlO1xuJHRpdGxlYmFyLXBhZGRpbmcgOiAwLjVyZW07XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodCA6IGJvbGQ7XG4kdGl0bGViYXItaWNvbi1jb2xvciA6ICR3aGl0ZTtcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyIDogJG1lZGl1bS1ncmF5O1xuJHRpdGxlYmFyLWljb24tc3BhY2luZyA6IDAuMjVyZW07XG5cbi8vIDM2LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1mb250LXdlaWdodCA6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tIDogZG90dGVkIDFweCAkZGFyay1ncmF5O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciA6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yIDogJHdoaXRlO1xuJHRvb2x0aXAtcGFkZGluZyA6IDAuNzVyZW07XG4kdG9vbHRpcC1mb250LXNpemUgOiAkc21hbGwtZm9udC1zaXplO1xuJHRvb2x0aXAtcGlwLXdpZHRoIDogMC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQgOiAkdG9vbHRpcC1waXAtd2lkdGggKiAwLjg2NjtcbiR0b29sdGlwLXJhZGl1cyA6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNy4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nIDogMC41cmVtO1xuJHRvcGJhci1iYWNrZ3JvdW5kIDogJGxpZ2h0LWdyYXk7XG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZCA6ICR0b3BiYXItYmFja2dyb3VuZDtcbiR0b3BiYXItdGl0bGUtc3BhY2luZyA6IDAuNXJlbSAxcmVtIDAuNXJlbSAwO1xuJHRvcGJhci1pbnB1dC13aWR0aCA6IDIwMHB4O1xuJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQgOiBtZWRpdW07XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIENTUyB0cmlhbmdsZSwgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRyb3Bkb3duIGFycm93cywgZHJvcGRvd24gcGlwcywgYW5kIG1vcmUuIFVzZSB0aGlzIG1peGluIGluc2lkZSBhIGAmOjpiZWZvcmVgIG9yIGAmOjphZnRlcmAgc2VsZWN0b3IsIHRvIGF0dGFjaCB0aGUgdHJpYW5nbGUgdG8gYW4gZXhpc3RpbmcgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkdHJpYW5nbGUtY29sb3IgLSBDb2xvciBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gRGlyZWN0aW9uIHRoZSB0cmlhbmdsZSBwb2ludHMuIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbkBtaXhpbiBjc3MtdHJpYW5nbGUoXG4gICR0cmlhbmdsZS1zaXplLFxuICAkdHJpYW5nbGUtY29sb3IsXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cbikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcblxuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuXG4gIGNvbnRlbnQ6ICcnO1xuXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdXApIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgbWVudSBpY29uIHdpdGggYSBzZXQgd2lkdGgsIGhlaWdodCwgbnVtYmVyIG9mIGJhcnMsIGFuZCBjb2xvcnMuIFRoZSBtaXhpbiB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgdGhlIGJhcnMgdG8gZGV0ZXJtaW5lIHNwYWNpbmcuIDxkaXYgY2xhc3M9XCJkb2NzLWV4YW1wbGUtYnVyZ2VyXCI+PC9kaXY+XG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvci1ob3ZlciBbJGRhcmstZ3JheV0gLSBDb2xvciB0byB1c2Ugd2hlbiB0aGUgaWNvbiBpcyBob3ZlcmVkIG92ZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMjBweF0gLSBXaWR0aCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3ZWlnaHQgWzJweF0gLSBIZWlnaHQgb2YgaW5kaXZpZHVhbCBiYXJzIGluIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFycyBbM10gLSBOdW1iZXIgb2YgYmFycyBpbiB0aGUgaWNvbi5cbkBtaXhpbiBoYW1idXJnZXIoXG4gICRjb2xvcjogJGJsYWNrLFxuICAkY29sb3ItaG92ZXI6ICRkYXJrLWdyYXksXG4gICR3aWR0aDogMjBweCxcbiAgJGhlaWdodDogMTZweCxcbiAgJHdlaWdodDogMnB4LFxuICAkYmFyczogM1xuKSB7XG4gIC8vIGJveC1zaGFkb3cgQ1NTIG91dHB1dFxuICAkc2hhZG93OiAoKTtcbiAgJGhvdmVyLXNoYWRvdzogKCk7XG5cbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXG4gICRzcGFjaW5nOiAoJGhlaWdodCAtICgkd2VpZ2h0ICogJGJhcnMpKSAvICgkYmFycyAtIDEpO1xuXG4gIEBpZiB1bml0KCRzcGFjaW5nKSA9PSAncHgnIHtcbiAgICAkc3BhY2luZzogZmxvb3IoJHNwYWNpbmcpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAkc2hhZG93OiBhcHBlbmQoJHNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLCBjb21tYSk7XG4gIH1cblxuICAvLyBJY29uIGNvbnRhaW5lclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgLy8gSWNvbiBiYXJzXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdztcblxuICAgIGNvbnRlbnQ6ICcnOyAgICBcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiAjeyRyZ2J9Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MFxcMCkge1xuICAgIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA8IDYwJSB7XG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEJsYWNrIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTUJKUkVGVWVOckVsbHNPaENBTVJWc3pDOUlselU3S0NtVkhUSnNvTVdZTVV0cHl2OUJnYnVYUUI1WlNkZ0JZWVk0eWNnQml2azhLWUZzUU1mTWlUVEJQNG8zblV6Q0t6T2FiTEpiTHkyL2czMWV2R2tBZ2luUjQvWmVnS0g1cVgzYkpDc2NBM3QweDNrZ081dFFGeWhoRmY1MHhScUZMYnlNVU5KUXpneWpHUy93Z0Nwdktxa1JCcHVXckU0VjlkKzFFNGRQVVhxSWcxMDdTUU9FLzJEUlF4TXdURHlnSUluVkRFVDlUM2xDb2ovNmovVkNtR2paT2wybEtwWjhBQXdEUVA3eklpbURHRlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFwcGxpZXMgdGhlIG1pY3JvIGNsZWFyZml4IGhhY2sgcG9wdWxhcml6ZWQgYnkgTmljb2xhcyBHYWxsYWdoZXIuIEluY2x1ZGUgdGhpcyBtaXhpbiBvbiBhIGNvbnRhaW5lciBpZiBpdHMgY2hpbGRyZW4gYXJlIGFsbCBmbG9hdGVkLCB0byBnaXZlIHRoZSBjb250YWluZXIgYSBwcm9wZXIgaGVpZ2h0LlxuLy8vIFRoZSBjbGVhcmZpeCBpcyBhdWdtZW50ZWQgd2l0aCBzcGVjaWZpYyBzdHlsZXMgdG8gcHJldmVudCBib3JkZXJzIGluIGZsZXhib3ggZW52aXJvbm1lbnRzXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcbi8vLyBAbGluayBodHRwOi8vZGFuaXNhZGVzaWduZXIuY29tL2Jsb2cvZmxleGJveC1jbGVhci1maXgtcHNldWRvLWVsZW1lbnRzLyBGbGV4Ym94IGZpeFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vLyBBZGRzIENTUyBmb3IgYSBcInF1YW50aXR5IHF1ZXJ5XCIgc2VsZWN0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IHNpemVzIGVsZW1lbnRzIGJhc2VkIG9uIGhvdyBtYW55IHRoZXJlIGFyZSBpbnNpZGUgYSBjb250YWluZXIuXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggLSBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBkZXRlY3QuIFRoZSBoaWdoZXIgdGhpcyBudW1iZXIgaXMsIHRoZSBtb3JlIENTUyB0aGF0J3MgcmVxdWlyZWQgdG8gY292ZXIgZWFjaCBudW1iZXIgb2YgaXRlbXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXG5AbWl4aW4gYXV0by13aWR0aCgkbWF4LCAkZWxlbTogbGkpIHtcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkbWF4IHtcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCB+ICN7JGVsZW19IHtcbiAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLyAkaSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoJHNtYWxsOiB0cnVlKSB7XG4gICRsaXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuXG4gIEBpZiBub3QgJHNtYWxsIHtcbiAgICAkbGlzdDogc2wtcmVtb3ZlKCRsaXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICBAZWFjaCAkbmFtZSBpbiAkbGlzdCB7XG4gICAgJC16Zi1zaXplOiAkbmFtZSAhZ2xvYmFsO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUgb3IgYnJlYWtwb2ludCBuYW1lIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRuYW1lOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgfVxuXG4gICAgLy8gYnJlYWtwb2ludCB2YWx1ZVxuICAgICQtemYtYnAtdmFsdWU6ICRuYW1lICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMSAvIDE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgbGVmdCkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG4gICAgICAuI3skLXpmLXNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogaW5pdGlhbDtcbiAgfVxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoMS8kbik7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJjpub3QoLmV4cGFuZGVkKSAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoZXhwYW5kKTtcbiAgICB9XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVuZG8gbmVnYXRpdmUgbWFyZ2luc1xuICAgIC8vIEZyb20gY29sbGFwc2VkIGNoaWxkXG4gICAgJi5pcy1jb2xsYXBzZS1jaGlsZCxcbiAgICAmLmNvbGxhcHNlID4gLmNvbHVtbiA+IC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29sdW1uXG4gIC5jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW47XG4gIH1cblxuICAvLyBDb2x1bW4gcm93XG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcbiAgLmNvbHVtbi5yb3cucm93IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIFRvIHByb3Blcmx5IG5lc3QgYSBjb2x1bW4gcm93LCBwYWRkaW5nIGFuZCBtYXJnaW4gaXMgcmVtb3ZlZFxuICAucm93IC5jb2x1bW4ucm93LnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cblxuICAuZmxleC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXg7XG4gIH1cblxuICAuZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgIC5mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU291cmNlIG9yZGVyaW5nXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGRpcmVjdGlvbiBoZWxwZXIgY2xhc3Nlc1xuICAgICAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZmxleC1kaXItI3skZGlyfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBjaGlsZCBoZWxwZXIgY2xhc3Nlc1xuICAgICAgLiN7JC16Zi1zaXplfS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIH1cblxuICAgICAgLiN7JC16Zi1zaXplfS1mbGV4LWNoaWxkLWdyb3cge1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgIH1cblxuICAgICAgLiN7JC16Zi1zaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgfVxuXG4gICAgICAvLyBBdXRvLXN0YWNraW5nL3Vuc3RhY2tpbmdcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcbiAgICAgICAgICA+IC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICAuY29sdW1ucyB7XG4gICAgQGV4dGVuZCAuY29sdW1uOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cbi8vLyAgIElmIGBmYWxzZWAsIHNlbGVjdG9ycyBpbnNpZGUgdGhpcyBtaXhpbiB3aWxsIG5lc3QgaW5zaWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IuXG4vLy8gICBJZiBgdHJ1ZWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRncmlkLWNvbHVtbi1jb3VudDtcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xuXG4gIEBpZiAkcm9vdCB7XG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkb2xkLWdyaWQtY29sdW1uLWNvdW50ICFnbG9iYWw7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXNpemUpKSAvIDIgKiAtMTtcblxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0IGEgZ3JpZCByb3cgc2l6ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuQG1peGluIGdyaWQtcm93LXNpemUoJHNpemU6ICRncmlkLXJvdy13aWR0aCkge1xuICBAaWYgJHNpemUgPT0gZXhwYW5kIHtcbiAgICAkc2l6ZTogbm9uZTtcbiAgfVxuXG4gIG1heC13aWR0aDogJHNpemU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vLyBSZW1vdmVzIHRoZSB1bml0IChlLmcuIHB4LCBlbSwgcmVtKSBmcm9tIGEgdmFsdWUsIHJldHVybmluZyB0aGUgbnVtYmVyIG9ubHkuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgc2FtZSBudW1iZXIsIHNhbnMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vLyBDb252ZXJ0cyBvbmUgb3IgbW9yZSBwaXhlbCB2YWx1ZXMgaW50byBtYXRjaGluZyByZW0gdmFsdWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gVGhlIGJhc2UgdmFsdWUgdG8gdXNlIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGByZW1gLiBJZiB5b3UncmUgdXNpbmcgRm91bmRhdGlvbiBvdXQgb2YgdGhlIGJveCwgdGhpcyBpcyAxNnB4LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBgbnVsbGAsIHRoZSBmdW5jdGlvbiB3aWxsIHJlZmVyZW5jZSB0aGUgYCRiYXNlLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0cyBjb252ZXJ0IG91ciB2YWx1ZSB0byBwaXhlbHMgdG9vXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJyUnIHtcbiAgICAkdmFsdWU6ICgkdmFsdWUgLyAxMDAlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAkYmFzZTtcbiAgfVxuXG4gIC8vICdweCdcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIHtcbiAgICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgLy8gYXNzdW1lIHRoYXQgbGluZS1oZWlnaHRzIGdyZWF0ZXJuIHRoZW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFNldCB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtblxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRndXR0ZXIgW2F1dG9dXG4vLy8gICBTcGFjaW5nIGJldHdlZW4gY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJGd1dHRlcnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIGd1dHRlciByZXNwb25zaXZlLCB1c2luZyB0aGUgJGd1dHRlcnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIEd1dHRlciBtYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJGd1dHRlciwgJGd1dHRlcnMpIHtcbiAgICAkcGFkZGluZzogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gVW4tY29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmUtYWRkaW5nIHRoZSBwYWRkaW5nLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEB3YXJuICdUaGlzIG1peGluIGlzIGJlaW5nIHJlcGxhY2VkIGJ5IGdyaWQtY29sdW1uLWd1dHRlcigpLiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWd1dHRlclxuQG1peGluIGdyaWQtY29sLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlciwgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWNvbGxhcHNlXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1jb2xsYXBzZTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVuY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2wtZ3V0dGVyKCkuIGdyaWQtY29sLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgkZ3V0dGVyKTtcbn1cblxuLy8vIFNldHMgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMgdG8gbWF0Y2ggZ3V0dGVyc1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRtYXJnaW4gW2F1dG9dXG4vLy8gICBUaGUgYm90dG9tIG1hcmdpbiBvbiBncmlkIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRtYXJnaW5zIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBtYXJnaW4gcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRtYXJnaW5zIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFyZ2lucyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZS4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLWNvbHVtbi1tYXJnaW4gKFxuICAkbWFyZ2luOiBhdXRvLFxuICAkbWFyZ2luczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRtYXJnaW4sICRtYXJnaW5zKSB7XG4gICAgJG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206ICRtYXJnaW4tYm90dG9tO1xuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYmFzZWQgb24gYSBudW1iZXIgb2YgZmFjdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXG4vLy8gICBXaWR0aCBvZiB0aGUgY29sdW1uLiBBY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBwZXJjZW50YWdlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY29sdW1uIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cbi8vLyAgIC0gQSBsaXN0IG9mIHRoZSBmb3JtYXQgXCJ4IG9mIHlcIiAod2l0aG91dCBxdW90ZXMpIHdpbGwgbWFrZSBhIGNvbHVtbiB0aGF0IGlzICp4KiBjb2x1bW5zIHdpZGUsIGFzc3VtaW5nICp5KiB0b3RhbCBjb2x1bW5zIGZvciB0aGUgcGFyZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG5AZnVuY3Rpb24gZ3JpZC1jb2x1bW4oJGNvbHVtbnMpIHtcbiAgJHdpZHRoOiAwJTtcblxuICAvLyBQYXJzaW5nIHBlcmNlbnRzLCBkZWNpbWFscywgYW5kIGNvbHVtbiBjb3VudHNcbiAgQGlmIHR5cGUtb2YoJGNvbHVtbnMpID09ICdudW1iZXInIHtcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcbiAgICAgICR3aWR0aDogJGNvbHVtbnM7XG4gICAgfVxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW4tY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNpbmcgXCJuIG9mIG5cIiBleHByZXNzaW9uc1xuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xuICAgIEBpZiBsZW5ndGgoJGNvbHVtbnMpICE9IDMge1xuICAgICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSB0aGUgZm9ybWF0IFwibiBvZiBuXCIuJztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKG50aCgkY29sdW1ucywgMSkgLyBudGgoJGNvbHVtbnMsIDMpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uKCkuIFVzZSBhIG51bWJlciwgZGVjaW1hbCwgcGVyY2VudGFnZSwgb3IgXCJuIG9mIG5cIi4nO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbJGdyaWQtY29sdW1uLWNvdW50XSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1zaXplKCRjb2x1bW5zKTtcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcblxuICAvLyBHdXR0ZXJzXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBncmlkIGNvbHVtbiByb3cuIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYWRkaW5nIGAucm93YCBhbmQgYC5jb2x1bW5gIHRvIHRoZSBzYW1lIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbi1ndXR0ZXIoKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBncmlkLWNvbHVtbi1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1yb3c7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgJixcbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXG5AZnVuY3Rpb24gZ3JpZC1jb2woXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnRcbikge1xuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQG1peGluIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1yb3coKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xuQG1peGluIGdyaWQtY29sLXJvdyhcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1yb3coJGd1dHRlcnMpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuIFNldCB0byBjZW50ZXIgdG8gY2VudGVyIHRoZSBjb2x1bW4uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gJ251bWJlcicge1xuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIG9yIGNlbnRlci4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgYnkgYCRuYCBjb2x1bW5zLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdyaWQtY29sdW1uKCRuKTtcbn1cblxuLy8vIERpc2FibGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IGFsaWduaW5nIHRvIHRoZSBvcHBvc2l0ZSBlZGdlLlxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XG4gIC8vIFRoaXMgZXh0cmEgc3BlY2lmaWNpdHkgaXMgcmVxdWlyZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBiZSBhcHBsaWVkXG4gICY6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bnBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bnBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bnBvc2l0aW9uO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tb2Zmc2V0KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1vZmZzZXRcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWVuZCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZW5kXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZF9mcm9tX2hlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7ICBcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kY29kZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIExpc3RcbiRjb2RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZW9jcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQc2V1ZG8gY29udGVudCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY2l0ZS1wc2V1ZG8tY29udGVudDogJ1xcMjAxNCBcXDAwMjAnICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSB7XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmb250LXNpemUpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZzKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmcykpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxoKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGgpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMoJGhlYWRlci1saW5laGVpZ2h0LCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG10KSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbXQpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIG1iKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWIpKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRoZWFkZXItbWFyZ2luLWJvdHRvbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGlua3NcbiAgYSB7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRhbmNob3ItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGFuY2hvci1jb2xvci1ob3ZlcjtcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3Jpem9udGFsIHJ1bGVcbiAgaHIge1xuICAgIGNsZWFyOiBib3RoO1xuXG4gICAgbWF4LXdpZHRoOiAkaHItd2lkdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcblxuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBMaXN0c1xuICB1bCxcbiAgb2wsXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGlzdC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtc1xuICBsaSB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gVW5vcmRlcmVkIGxpc3RzXG4gIHVsIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XG4gIH1cblxuICAvLyBPcmRlcmVkIGxpc3RzXG4gIG9sIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgfVxuXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xuICB1bCwgb2wge1xuICAgICYgJiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluaXRpb24gbGlzdHNcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZHQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmbmxpc3QtdGVybS13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQmxvY2txdW90ZXNcbiAgYmxvY2txdW90ZSB7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGJsb2NrcXVvdGUtYm9yZGVyO1xuXG4gICAgJiwgcCB7XG4gICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIENpdGF0aW9uc1xuICBjaXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNpdGUtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvLyBBYmJyZXZpYXRpb25zXG4gIGFiYnIge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6IGhlbHA7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIFxuICAvLyBDb2RlXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG5cbiAgICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIH1cblxuICAvLyBLZXlzdHJva2VzXG4gIGtiZCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRrZXlzdHJva2UtcGFkZGluZztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrZXlzdHJva2UtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAka2V5c3Ryb2tlLWZvbnQ7XG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRrZXlzdHJva2UtcmFkaXVzKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAka2V5c3Ryb2tlLXJhZGl1cztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktaGVscGVycyB7XG4gIC8vIFVzZSB0byBjcmVhdGUgYSBzdWJoZWFkaW5nIHVuZGVyIGEgbWFpbiBoZWFkZXJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XG4gIC8vIDxoZWFkZXI+XG4gIC8vICAgPGgxPkhlYWRpbmc8L2gxPlxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cbiAgLy8gPC9oZWFkZXI+XG4gIC5zdWJoZWFkZXIge1xuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxuICAubGVhZCB7XG4gICAgZm9udC1zaXplOiAkbGVhZC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xuICAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAkc3RhdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBwICsgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICB9XG4gIH1cblxuICAvLyBVc2UgdG8gcmVtb3ZlIHRoZSBidWxsZXRzIGZyb20gYW4gdW5vcmRlcmVkIGxpc3RcbiAgLm5vLWJ1bGxldCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEZvbnQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBGb250XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IGluc2lkZSB0ZXh0IGlucHV0cyB3aGVuIG5vdCBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBvdXRzaWRlIHRleHQgaW5wdXRzIHdoZW4gZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxuLy8vIEB0eXBlIEN1cnNvclxuJGlucHV0LWN1cnNvci1kaXNhYmxlZDogbm90LWFsbG93ZWQgIWRlZmF1bHQ7XG5cbi8vLyBQcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb24gb24gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlcyB0aGUgdXAvZG93biBidXR0b25zIHRoYXQgQ2hyb21lIGFuZCBGaXJlZm94IGFkZCB0byBgPGlucHV0IHR5cGU9J251bWJlcic+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgZm9ybSBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRmb3JtLWJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBQbGFjZWhvbGRlciB0ZXh0XG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuXG4gICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3gge1xuICBbdHlwZT0nZmlsZSddLFxuICBbdHlwZT0nY2hlY2tib3gnXSxcbiAgW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWwsXG4gIFt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmW2Zvcl0ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXRzIGluc2lkZSBsYWJlbHNcbiAgbGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aFxuICBbdHlwZT0nZmlsZSddIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpKSAwO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWxhYmVsIHtcbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG5cbiAgICAmLm1pZGRsZSB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LXByZWZpeC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcbiRpbnB1dC1wcmVmaXgtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAkZm9ybS1zcGFjaW5nICogMS41KTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhLFxuICAgIGlucHV0LFxuICAgIGJ1dHRvbixcbiAgICBsYWJlbCB7XG4gICAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpY2l0eSBidW1wIG5lZWRlZCB0byBwcmV2ZW50IG92ZXJyaWRlIGJ5IGJ1dHRvbnNcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZmllbGRzZXQge1xuICBmaWVsZHNldCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgbGVnZW5kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC5maWVsZHNldCB7XG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciBzZWxlY3QgbWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tc2VsZWN0IHtcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIpO1xuXG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG5cbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtdHJpYW5nbGUoJHNlbGVjdC10cmlhbmdsZS1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG5cbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICgkZm9ybS1zcGFjaW5nICogMS41KTtcbiAgfVxuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJlttdWx0aXBsZV0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0IHtcbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxuQG1peGluIGZvcm0tZXJyb3Ige1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZztcblxuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xuICBAaWYgJGFiaWRlLWlucHV0cyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGludmFsaWQgaW5wdXRzXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xuICAgICAgQGluY2x1ZGUgZm9ybS1pbnB1dC1lcnJvcjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGFiaWRlLWxhYmVscyB7XG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcbiAgICAuaXMtaW52YWxpZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDtcbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcbiAgLmZvcm0tZXJyb3Ige1xuICAgIEBpbmNsdWRlIGZvcm0tZXJyb3I7XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIFBhZGRpbmcgaW5zaWRlIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIGZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvci1hbHQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXNpemVzOiAoXG4gIHRpbnk6IDAuNnJlbSxcbiAgc21hbGw6IDAuNzVyZW0sXG4gIGRlZmF1bHQ6IDAuOXJlbSxcbiAgbGFyZ2U6IDEuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGUgIWRlZmF1bHQ7XG5cbi8vLyBvcGFjaXR5IGZvciBhIGRpc2FibGVkIGJ1dHRvbi5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGxpZ2h0bmVzcyBvbiBob3ZlciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6IC0yMCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGhvbGxvdyBidXR0b25zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzOiAtNTAlICFkZWZhdWx0O1xuXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcbkBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcbiAgJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcbn1cblxuLy8vIHRyYW5zaXRpb25zIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICBwYWRkaW5nOiAkYnV0dG9uLXBhZGRpbmc7XG5cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcblxuICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8vIEV4cGFuZHMgYSBidXR0b24gdG8gbWFrZSBpdCBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGV4cGFuZCBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSB0aGUgZXhwYW5kIGJlaGF2aW9yLiBTZXQgdG8gYGZhbHNlYCB0byByZXZlcnNlIHRoaXMgYmVoYXZpb3IuXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XG4gIEBpZiAkZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGUgb2YgYSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGJ1dHRvbi1zdHlsZShcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3M6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3Ncbikge1xuICBAaWYgJGNvbG9yID09IGF1dG8ge1xuICAgICRjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRidXR0b24tY29sb3IsICRidXR0b24tY29sb3ItYWx0KSk7XG4gIH1cblxuICBAaWYgJGJhY2tncm91bmQtaG92ZXIgPT0gYXV0byB7XG4gICAgJGJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRiYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAkYmFja2dyb3VuZC1ob3Zlci1saWdodG5lc3MpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyBiYWNrZ3JvdW5kIGZpbGwgb24gaG92ZXIgYW5kIGZvY3VzIGZvciBob2xsb3cgYnV0dG9ucy5cbkBtaXhpbiBidXR0b24taG9sbG93IHtcbiAgJixcbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoXG4gICRjb2xvcjogJHByaW1hcnktY29sb3IsXG4gICRob3Zlci1saWdodG5lc3M6ICRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkaG92ZXItbGlnaHRuZXNzKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuLy8vIEBwYXJhbSBbQ29sb3JdICRiYWNrZ3JvdW5kIFskcHJpbWFyeS1jb2xvcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHBhcmFtIFtDb2xvcl0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGRpc2FibGVkIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkKFxuICAkYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IsXG4gICRjb2xvcjogJGJ1dHRvbi1jb2xvclxuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vLyBBZGRzIGEgZHJvcGRvd24gYXJyb3cgdG8gYSBidXR0b24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbd2hpdGVdIC0gQ29sb3Igb2YgdGhlIGFycm93LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb2Zmc2V0IFskYnV0dG9uLXBhZGRpbmddIC0gRGlzdGFuY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0IG9mIHRoZSBidXR0b24uIERlZmF1bHRzIHRvIHdoYXRldmVyIHRoZSByaWdodCBwYWRkaW5nIG9mIGEgYnV0dG9uIGlzLlxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcbiAgJHNpemU6IDAuNGVtLFxuICAkY29sb3I6ICR3aGl0ZSxcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcbikge1xuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpO1xuICB9XG59XG5cbi8vLyBBZGRzIGFsbCBzdHlsZXMgZm9yIGEgYnV0dG9uLiBGb3IgbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgc3R5bGVzLCB1c2UgdGhlIGluZGl2aWR1YWwgYnV0dG9uIG1peGlucy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24gb24gaG92ZXIuIFNldCB0byBgYXV0b2AgdG8gaGF2ZSB0aGUgbWl4aW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGhvdmVyIGNvbG9yLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0eWxlIFtzb2xpZF0gLSBTZXQgdG8gYGhvbGxvd2AgdG8gY3JlYXRlIGEgaG9sbG93IGJ1dHRvbi4gVGhlIGNvbG9yIGRlZmluZWQgaW4gYCRiYWNrZ3JvdW5kYCB3aWxsIGJlIHVzZWQgYXMgdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24oXG4gICRleHBhbmQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRzdHlsZTogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG5cbiAgQGlmICRzdHlsZSA9PSBzb2xpZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcbiAgfVxuICBAZWxzZSBpZiAkc3R5bGUgPT0gaG9sbG93IHtcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGJhY2tncm91bmQpO1xuICB9XG5cbiAgQGlmICRleHBhbmQge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcbiAgLmJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuXG4gICAgLy8gU2l6ZXNcbiAgICBAZWFjaCAkc2l6ZSwgJHZhbHVlIGluIG1hcC1yZW1vdmUoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCkge1xuICAgICAgJi4jeyRzaXplfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRidXR0b24tcGFsZXR0ZSB7XG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkY29sb3IsIGF1dG8sIGF1dG8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb2xsb3cgc3R5bGVcbiAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XG4gICAgICAmLmhvbGxvdyB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGU7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2FibGVkIHN0eWxlXG4gICAgJi5kaXNhYmxlZCxcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkKCRjb2xvciwgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcm9wZG93biBhcnJvd1xuICAgICYuZHJvcGRvd24ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWRyb3Bkb3duO1xuXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsID09IGhvbGxvdyB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCdXR0b24gd2l0aCBkcm9wZG93biBhcnJvdyBvbmx5XG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XG4gICAgICB0b3A6IC0wLjFlbTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGNhbGxvdXRcbi8vLy9cblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBzdHlsZSBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LW1hcmdpbjogMCAwIDFyZW0gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgaW5uZXIgcGFkZGluZyBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMsIGlmIHRoZSBjYWxsb3V0IGhhcyBhIGRhcmsgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtZm9udC1jb2xvci1hbHQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY2FsbG91dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQW1vdW50IHRvIHRpbnQgbGlua3MgdXNlZCB3aXRoaW4gY29sb3JlZCBwYW5lbHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlxuLy8vIEB0eXBlIE51bWJlciB8IEJvb2xlYW5cbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGEgY2FsbG91dCwgaW5jbHVkaW5nIHBhZGRpbmcgYW5kIG1hcmdpbi5cbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XG4gIHBhZGRpbmc6ICRjYWxsb3V0LXBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkY2FsbG91dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRjYWxsb3V0LXJhZGl1cztcblxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxuICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHF1aWNrIHN0eWxlcyBmb3IgYSBjYWxsb3V0IHVzaW5nIGEgc2luZ2xlIGNvbG9yIGFzIGEgYmFzZWxpbmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskY2FsbG91dC1iYWNrZ3JvdW5kXSAtIENvbG9yIHRvIHVzZS5cbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xuICAkYmFja2dyb3VuZDogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGUpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkYmFja2dyb3VuZCwgKCRjYWxsb3V0LWZvbnQtY29sb3IsICRjYWxsb3V0LWZvbnQtY29sb3ItYWx0KSk7XG59XG5cbkBtaXhpbiBjYWxsb3V0LXNpemUoJHBhZGRpbmcpIHtcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nO1xuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xufVxuXG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjYWxsb3V0LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgQGluY2x1ZGUgY2FsbG91dC1iYXNlO1xuICBAaW5jbHVkZSBjYWxsb3V0LXN0eWxlKCRjb2xvcik7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNhbGxvdXQge1xuICAuY2FsbG91dCB7XG4gICAgQGluY2x1ZGUgY2FsbG91dDtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDAuNXJlbSk7XG4gICAgfVxuXG4gICAgJi5sYXJnZSB7XG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoM3JlbSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjbG9zZS1idXR0b25cbi8vLy9cblxuLy8vIERlZmF1bHQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi4gVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBgcmlnaHRgIG9yIGBsZWZ0YCwgYW5kIHRoZSBzZWNvbmQgdmFsdWUgc2hvdWxkIGJlIGB0b3BgIG9yIGBib3R0b21gLlxuLy8vIEB0eXBlIExpc3RcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wICFkZWZhdWx0O1xuXG4vLy8gUmlnaHQgKG9yIGxlZnQpIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAoXG4gIHNtYWxsOiAwLjY2cmVtLFxuICBtZWRpdW06IDFyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVG9wIChvciBib3R0b20pIG9mZnNldChzKSBmb3IgYSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgTnVtYmVyfE1hcFxuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogKFxuICBzbWFsbDogMC4zM2VtLFxuICBtZWRpdW06IDAuNXJlbSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1zaXplOiAoXG4gIHNtYWxsOiAxLjVlbSxcbiAgbWVkaXVtOiAyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2xvc2VidXR0b24tbGluZWhlaWdodDogMSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uIHdoZW4gYmVpbmcgaG92ZXJlZCBvbi5cbi8vLyBAdHlwZSBDb2xvclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2sgIWRlZmF1bHQ7XG5cblxuLy8vIEdldCB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBudW1iZXIsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQuIElmIHRoZSBpbnB1dCB2YWx1ZSBpcyBhIGNvbmZpZyBtYXAgYW5kIHRoZSBtYXAgaGFzIHRoZSBrZXkgYCRzaXplYCwgdGhlIHZhbHVlIGlzIHJldHVybmVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkdmFsdWUgLSBBIG51bWJlciBvciBtYXAgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9yIHBvc2l0aW9uIHZhbHVlKHMpIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBjbG9zZSBidXR0b24gdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgZ2l2ZW4gbnVtYmVyIG9yIHRoZSB2YWx1ZSBmb3VuZCBpbiB0aGUgbWFwLlxuQGZ1bmN0aW9uIC16Zi1nZXQtc2l6ZS12YWwoJHZhbHVlLCAkc2l6ZSkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gSWYgaXQgaXMsIGp1c3QgcmV0dXJuIHRoZSBudW1iZXJcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBzaXplIG5hbWUgZXhpc3RzIGluIHRoZSB2YWx1ZSBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJHZhbHVlLCAkc2l6ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIHJldHVybiB0aGUgdmFsdWVcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHZhbHVlLCAkc2l6ZSk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgW21lZGl1bV0gLSBUaGUgc2l6ZSB0byB1c2UuIFNldCB0byBgc21hbGxgIHRvIGNyZWF0ZSBhIHNtYWxsIGNsb3NlIGJ1dHRvbi4gVGhlICdtZWRpdW0nIHZhbHVlcyBkZWZpbmVkIGluIGAkY2xvc2VidXR0b24tKmAgdmFyaWFibGVzIHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdCBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGNsb3NlLWJ1dHRvbi1zaXplKCRzaXplKSB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gICN7JHh9OiAtemYtZ2V0LXNpemUtdmFsKCRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbCwgJHNpemUpO1xuICAjeyR5fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LXZlcnRpY2FsLCAkc2l6ZSk7XG4gIGZvbnQtc2l6ZTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tc2l6ZSwgJHNpemUpO1xuICBsaW5lLWhlaWdodDogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tbGluZWhlaWdodCwgJHNpemUpO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2xvc2UgYnV0dG9uLCB1c2luZyB0aGUgc3R5bGVzIGluIHRoZSBzZXR0aW5ncyB2YXJpYWJsZXMuXG5AbWl4aW4gY2xvc2UtYnV0dG9uIHtcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xuICAkeTogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMik7XG5cbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAkY2xvc2VidXR0b24tY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XG4gIC5jbG9zZS1idXR0b24ge1xuICAgIEBpbmNsdWRlIGNsb3NlLWJ1dHRvbjtcblxuICAgICYuc21hbGwgeyBAaW5jbHVkZSBjbG9zZS1idXR0b24tc2l6ZShzbWFsbCkgfVxuICAgICYsICYubWVkaXVtIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUobWVkaXVtKSB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIG1lbnVcbi8vLy9cblxuLy8vIE1hcmdpbiBvZiBhIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3IgaXRlbXMgaW4gYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVudS1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbiBob3ZlcmVkIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIGZvciBib3JkZXJlZCBtZW51XG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgYSBNZW51LlxuQG1peGluIG1lbnUtYmFzZSB7XG4gIG1hcmdpbjogJG1lbnUtbWFyZ2luO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gTGlzdCBpdGVtcyBhcmUgdGFibGUgY2VsbCB0byBhbGxvdyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gID4gbGkge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IGxpbmUgaGVpZ2h0IHRvIG1ha2UgdGhlIGhlaWdodCBvZiB0aGUgb3ZlcmFsbCBpdGVtIGVhc2llciB0byBjYWxjdWxhdGVcbiAgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEV4cGFuZHMgdGhlIGl0ZW1zIG9mIGEgTWVudSwgc28gZWFjaCBpdGVtIGlzIHRoZSBzYW1lIHdpZHRoLlxuQG1peGluIG1lbnUtZXhwYW5kIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgPiBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgfVxuXG4gID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFtob3Jpem9udGFsXSAtIERpcmVjdGlvbiBvZiB0aGUgTWVudS4gQ2FuIGJlIGBob3Jpem9udGFsYCBvciBgdmVydGljYWxgLlxuQG1peGluIG1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgICAgPiBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICA+IGxpICA+IGEge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBtZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudS4gU2V0IHRvIGBudWxsYCB0byBkbyBub3QgZ2VuZXJhdGUgc3R5bGVzIGZvciBkaXJlY3Rpb24uXG5AbWl4aW4gbWVudS1zaW1wbGUoJGRpcjogJGdsb2JhbC1sZWZ0KSB7XG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIGEge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBAaWYgJGRpciAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZW51LXNpbXBsZS1kaXJlY3Rpb24oJGRpcik7XG4gIH1cbn1cblxuLy8vIERpcmVjdGlvbiBtb2RpZmllciBmb3IgYSBzaW1wbGUgTWVudVxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbJGdsb2JhbC1sZWZ0XSAtIERpcmVjdGlvbiBvZiB0aGUgbWVudVxuQG1peGluIG1lbnUtc2ltcGxlLWRpcmVjdGlvbigkZGlyOiAkZ2xvYmFsLWxlZnQpIHtcbiAgJG5vLW1hcmdpbi1kaXI6ICRkaXI7XG4gICRtYXJnaW4tZGlyOiBkaXJlY3Rpb24tb3Bwb3NpdGUoJGRpcik7XG5cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRuby1tYXJnaW4tZGlyfTogMDtcbiAgICBtYXJnaW4tI3skbWFyZ2luLWRpcn06IGdldC1zaWRlKCRtZW51LWl0ZW0tcGFkZGluZywgJG1hcmdpbi1kaXIpO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBuZXN0ZWQgTWVudSwgYnkgYWRkaW5nIGBtYXJnaW4tbGVmdGAgdG8gdGhlIG1lbnUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHBhZGRpbmcgW2F1dG9dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG5AbWl4aW4gbWVudS1uZXN0ZWQoJG1hcmdpbjogJG1lbnUtbWFyZ2luLW5lc3RlZCkge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbWFyZ2luO1xufVxuXG4vLy8gQWRkcyBzdXBwb3J0IGZvciBpY29ucyB0byBNZW51IGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtzaWRlXSAtIFBvc2l0aW9uaW5nIGZvciBpY29ucy4gQ2FuIGJlIGBzaWRlYCAobGVmdCwgb3IgcmlnaHQgb24gUlRMKSBvciBgdG9wYC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRiYXNlIFt0cnVlXSAtIFNldCB0byBgZmFsc2VgIHRvIHByZXZlbnQgdGhlIHNoYXJlZCBDU1MgYmV0d2VlbiBzaWRlLSBhbmQgdG9wLWFsaWduZWQgaWNvbnMgZnJvbSBiZWluZyBwcmludGVkLiBTZXQgdGhpcyB0byBgZmFsc2VgIGlmIHlvdSdyZSBjYWxsaW5nIHRoZSBtaXhpbiBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBlbGVtZW50LlxuQG1peGluIG1lbnUtaWNvbnMoJHBvc2l0aW9uOiBzaWRlLCAkYmFzZTogdHJ1ZSkge1xuICBAaWYgJGJhc2Uge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGltZyxcbiAgICAgICAgaSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgKyBzcGFuIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRwb3NpdGlvbiA9PSBzaWRlIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtZW51LWljb24tc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSB0b3Age1xuICAgID4gbGkgPiBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkbWVudS1pY29uLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWVudS10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG5cbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XG4gIC5tZW51IHtcbiAgICBAaW5jbHVkZSBtZW51LWJhc2U7XG4gICAgQGluY2x1ZGUgbWVudS1pY29ucztcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBtb2RpZmllciBmb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCRzbWFsbDogZmFsc2UpIHtcbiAgICAgICYuI3skLXpmLXNpemV9LWhvcml6b250YWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cblxuICAgICAgJi4jeyQtemYtc2l6ZX0tdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2ltcGxlXG4gICAgJi5zaW1wbGUge1xuICAgICAgQGluY2x1ZGUgbWVudS1zaW1wbGU7XG5cbiAgICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlLWRpcmVjdGlvbigkZ2xvYmFsLXJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWZXJ0aWNhbCBpY29uc1xuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucyh0b3AsICRiYXNlOiBmYWxzZSk7XG4gICAgICAvLyBNYWtlIHZlcnRpY2FsIG1lbnUgd2l0aCBpY29ucyBvbiB0b3Agd29ya1xuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGEgPiBzcGFuIHtcbiAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgLmFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAvLyBNZW51IHdpdGggYm9yZGVyXG4gICAgJi5tZW51LWJvcmRlcmVkIHtcbiAgICAgIGxpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG1lbnUtYm9yZGVyO1xuICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVudSB3aXRoIGJhY2tncm91bmQgaG92ZXJcbiAgICAmLm1lbnUtaG92ZXIge1xuICAgICAgbGk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtdGV4dCB7XG4gICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICB9XG5cbiAgLy8gQWxpZ24gY2VudGVyXG4gIC5tZW51LWNlbnRlcmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IC5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUtaWNvbiB7XG4gIC5tZW51LWljb24ge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcbiAgfVxuXG4gIC5tZW51LWljb24uZGFyayB7XG4gICAgQGluY2x1ZGUgaGFtYnVyZ2VyO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93bi1tZW51XG4vLy8vXG5cbi8vLyBFbmFibGVzIGFycm93cyBmb3IgaXRlbXMgd2l0aCBkcm9wZG93biBtZW51cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWFycm93LWNvbG9yOiAkYW5jaG9yLWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcm9wZG93bnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG5AbWl4aW4gbGVmdC1yaWdodC1hcnJvd3Mge1xuICA+IGE6OmFmdGVyIHtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAxNHB4O1xuICB9XG5cbiAgJi5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGxlZnQpO1xuICB9XG5cbiAgJi5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XG4gIH1cbn1cblxuQG1peGluIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKCRkaXI6IGhvcml6b250YWwpIHtcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQge1xuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06IDEuNXJlbTtcbiAgICAgIH1cblxuICAgICAgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgID4gbGkge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtbGVmdCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XG5cbiAgICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICh0eXBlLW9mKCRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKSA9PSAnbnVtYmVyJykge1xuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFtUT0RPXSBDdXQgYmFjayBzcGVjaWZpY2l0eVxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxuICAgICYuanMtZHJvcGRvd24tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb3JiaXRcbi8vLy9cblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGFjdGl2ZSBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYmV0d2VlbiBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkaXN0YW5jZSBmcm9tIHNsaWRlIHJlZ2lvbiBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciBPcmJpdCdzIGNhcHRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB6LWluZGV4IGZvciBPcmJpdCdzIGNvbnRyb2xzLlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbm5lciBPcmJpdCBzbGlkZSBjb250YWluZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jb250YWluZXJgIGNsYXNzLlxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwOyAvLyBQcmV2ZW50IEZPVUMgYnkgbm90IHNob3dpbmcgdW50aWwgSlMgc2V0cyBoZWlnaHRcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmRpdmlkdWFsIHNsaWRlcyBvZiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1zbGlkZWAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcblxuICAmLm5vLW1vdGlvbnVpIHtcbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gb3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc2xpZGUgY29udGFpbmluZyBhbiBpbWFnZS4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWltYWdlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBvcmJpdCBzbGlkZSBjYXB0aW9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY2FwdGlvbmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG9yYml0LWNhcHRpb24tcGFkZGluZztcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cbkBtaXhpbiBvcmJpdC1jb250cm9sIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XG4gIHotaW5kZXg6ICRvcmJpdC1jb250cm9sLXppbmRleDtcbiAgcGFkZGluZzogJG9yYml0LWNvbnRyb2wtcGFkZGluZztcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNvbnRyb2wtYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXG5AbWl4aW4gb3JiaXQtcHJldmlvdXMge1xuICAjeyRnbG9iYWwtbGVmdH06IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IG5leHQgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtbmV4dGAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtbmV4dCB7XG4gICN7JGdsb2JhbC1sZWZ0fTogYXV0bztcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNvbnRhaW5lciBvZiBPcmJpdCBidWxsZXRzLiAvLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1idWxsZXRzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcbiAgbWFyZ2luLWJvdHRvbTogJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XG4gICAgbWFyZ2luOiAkb3JiaXQtYnVsbGV0LW1hcmdpbjtcblxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb3JiaXQge1xuICAub3JiaXQge1xuICAgIEBpbmNsdWRlIG9yYml0LXdyYXBwZXI7XG4gIH1cblxuICAub3JiaXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jb250YWluZXI7XG4gIH1cblxuICAub3JiaXQtc2xpZGUge1xuICAgIEBpbmNsdWRlIG9yYml0LXNsaWRlO1xuICB9XG5cbiAgLm9yYml0LWZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtZmlndXJlO1xuICB9XG5cbiAgLm9yYml0LWltYWdlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1pbWFnZTtcbiAgfVxuXG4gIC5vcmJpdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1jYXB0aW9uO1xuICB9XG5cbiAgJW9yYml0LWNvbnRyb2wge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRyb2w7XG4gIH1cblxuICAub3JiaXQtcHJldmlvdXMge1xuICAgIEBleHRlbmQgJW9yYml0LWNvbnRyb2w7XG4gICAgQGluY2x1ZGUgb3JiaXQtcHJldmlvdXM7XG4gIH1cblxuICAub3JiaXQtbmV4dCB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1uZXh0O1xuICB9XG5cbiAgLm9yYml0LWJ1bGxldHMge1xuICAgIEBpbmNsdWRlIG9yYml0LWJ1bGxldHM7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJldmVhbFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB3aWR0aCBvZiBhIG1vZGFsLCB3aXRoIG5vIGNsYXNzIGFwcGxpZWQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1tYXgtd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgbW9kYWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcmV2ZWFsLXppbmRleDogMTAwNSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgb3ZlcmxheXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtb2RhbCBvdmVybGF5LlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxuQG1peGluIHJldmVhbC1vdmVybGF5KCRiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZCkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHJldmVhbC16aW5kZXg7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIGEgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcbiAgLy8gV29ya2Fyb3VuZCBhbmRyb2lkIGJyb3dzZXIgei1pbmRleCBidWdcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6ICRyZXZlYWwtcGFkZGluZztcblxuICBib3JkZXI6ICRyZXZlYWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJldmVhbC1iYWNrZ3JvdW5kO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gU3RyaXAgbWFyZ2lucyBmcm9tIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIG1vZGFsXG4gID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8vIEFkanVzdHMgdGhlIHdpZHRoIG9mIGEgbW9kYWwuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBtb2RhbC4gR2VuZXJhbGx5IGEgcGVyY2VudGFnZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLXdpZHRoKFxuICAkd2lkdGg6ICRyZXZlYWwtd2lkdGgsXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXG4pIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgICBtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW4ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWR1cGxpY2F0ZS1wcm9wZXJ0aWVzXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XG4gIC8vIFtUT0RPXSBJcyB0aGlzIG5lY2Vzc2FyeT9cbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xuICBodG1sLmlzLXJldmVhbC1vcGVuLFxuICBodG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgfVxuXG4gIC8vIE92ZXJsYXlcbiAgLnJldmVhbC1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSByZXZlYWwtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIE1vZGFsIGNvbnRhaW5lclxuICAucmV2ZWFsIHtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoJHJldmVhbC13aWR0aCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcbiAgICAvLyBQcmV2ZW50cyBkdXBsaWNhdGUgQ1NTIHdoZW4gZGVmaW5pbmcgbXVsdGlwbGUgUmV2ZWFsIHNpemVzXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICVyZXZlYWwtY2VudGVyZWQge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHBhZGRpbmdcbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcbiAgICAmLnRpbnkgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDMwJSk7IH1cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDUwJSk7IH1cbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cblxuICAgIC8vIEZ1bGwtc2NyZWVuIG1vZGVcbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcbiAgICB9XG5cbiAgICAmLndpdGhvdXQtb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gdHJhbnNpdGlvbi1iYXNpY3MoXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gc2V0dXAgZm9yIHRyYW5zaXRpb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1zdGFydCgkZGlyKSB7XG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7JHNlbGVjdG9yfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBhY3RpdmF0ZSBhIHRyYW5zaXRpb24gb24uXG5AbWl4aW4gdHJhbnNpdGlvbi1lbmQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5LWFtb3VudCAtIEFtb3VudCBvZiB0aW1lIGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIHRvIGFkZCBiZXR3ZWVuIGVhY2ggaXRlbSdzIGFuaW1hdGlvbi5cbkBtaXhpbiBzdGFnZ2VyKCRkZWxheS1hbW91bnQpIHtcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMDsgLy8gUHJldmVudCBhY2NpZGVudGFsIENTUyBpbmhlcml0YW5jZVxufVxuIiwiLy8gc2Nzcy1saW50OmRpc2FibGUgSW1wb3J0YW50UnVsZSwgU3BhY2VBZnRlckNvbW1hLCBTaW5nbGVMaW5lUGVyUHJvcGVydHlcblxuQG1peGluIC1tb3Rpb24tdWktZGVmYXVsdHMge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IG1hcC1nZXQoJG1vdGlvbi11aS1lYXNpbmdzLCBkZWZhdWx0KTtcbn1cblxuLy8gVHJhbnNpdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLXRyYW5zaXRpb25zIHtcbiAgLy8gU2xpZGVcbiAgLnNsaWRlLWluLWRvd24gICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBkb3duKTsgfVxuICAuc2xpZGUtaW4tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHJpZ2h0KTsgfVxuICAuc2xpZGUtaW4tdXAgICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHVwKTsgfVxuICAuc2xpZGUtaW4tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGxlZnQpOyB9XG4gIC5zbGlkZS1vdXQtZG93biAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgZG93bik7IH1cbiAgLnNsaWRlLW91dC1yaWdodCAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCByaWdodCk7IH1cbiAgLnNsaWRlLW91dC11cCAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCB1cCk7IH1cbiAgLnNsaWRlLW91dC1sZWZ0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBsZWZ0KTsgfVxuXG4gIC8vIEZhZGVcbiAgLmZhZGUtaW4gIHsgQGluY2x1ZGUgbXVpLWZhZGUoaW4sICAwLCAxKTsgfVxuICAuZmFkZS1vdXQgeyBAaW5jbHVkZSBtdWktZmFkZShvdXQsIDEsIDApOyB9XG5cbiAgLy8gSGluZ2VcbiAgLmhpbmdlLWluLWZyb20tdG9wICAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3ApOyB9XG4gIC5oaW5nZS1pbi1mcm9tLXJpZ2h0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWJvdHRvbSAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgYm90dG9tKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1sZWZ0ICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGxlZnQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS14ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS15ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0LCBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS10b3AgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tYm90dG9tICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGJvdHRvbSk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBsZWZ0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXggeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCwgY2VudGVyKTsgfVxuXG4gIC8vIFNjYWxlXG4gIC5zY2FsZS1pbi11cCAgICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMC41LCAxKTsgfVxuICAuc2NhbGUtaW4tZG93biAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDEuNSwgMSk7IH1cbiAgLnNjYWxlLW91dC11cCAgIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAxLjUpOyB9XG4gIC5zY2FsZS1vdXQtZG93biB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMC41KTsgfVxuXG4gIC8vIFNwaW5cbiAgLnNwaW4taW4gICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjdyk7IH1cbiAgLnNwaW4tb3V0ICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjdyk7IH1cbiAgLnNwaW4taW4tY2N3ICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY2N3KTsgfVxuICAuc3Bpbi1vdXQtY2N3IHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjY3cpOyB9XG5cbiAgLy8gVHJhbnNpdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyB0cmFuc2l0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbmltYXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS1hbmltYXRpb25zIHtcbiAgLnNoYWtlICAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzaGFrZSk7IH1cbiAgLnNwaW4tY3cgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKTsgfVxuICAuc3Bpbi1jY3cgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4oY2N3KSk7IH1cbiAgLndpZ2dsZSAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbih3aWdnbGUpOyB9XG5cbiAgLnNoYWtlLFxuICAuc3Bpbi1jdyxcbiAgLnNwaW4tY2N3LFxuICAud2lnZ2xlIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuICAuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyBhbmltYXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8gRm9ybWF0IGZvciBDU1MgY2xhc3NlcyBjcmVhdGVkIHdpdGggTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBhcHBlbmQgW3RydWVdIC0gRGVmaW5lcyBpZiBzZWxlY3RvcnMgYXJlIGNoYWluZWQgdG8gdGhlIHNlbGVjdG9yIChgLmNsYXNzLmVudGVyYCksIG9yIGFwcGVuZGVkIGFzIGEgbmV3IGNsYXNzIChgLmNsYXNzLWVudGVyYCkuXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnbXVpLSddIC0gUHJlZml4IHRvIGFkZCBiZWZvcmUgdGhlIHN0YXRlIG9mIGEgY2xhc3MuIEVudGVyIGFuIGVtcHR5IHN0cmluZyB0byB1c2Ugbm8gcHJlZml4LlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJy1hY3RpdmUnXSAtIFN1ZmZpeCB0byBhZGQgdG8gdGhlIGFjdGl2ZSBzdGF0ZSBjbGFzcy5cbiRtb3Rpb24tdWktY2xhc3NlczogKFxuXHRcdGNoYWluOiB0cnVlLFxuXHRcdHByZWZpeDogJ211aS0nLFxuXHRcdGFjdGl2ZTogJy1hY3RpdmUnLFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRlIG5hbWVzIHRvIHJlZmVyZW5jZSB3aGVuIHdyaXRpbmcgbW90aW9uIGNsYXNzZXMuIFRvIHVzZSBtdWx0aXBsZSBjbGFzcyBuYW1lcyBmb3Igb25lIHN0YXRlLCBlbnRlciBhIGxpc3Qgb2Ygc3RyaW5ncyBpbnN0ZWFkIG9mIG9uZSBzdHJpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXN0YXRlczogKFxuXHRcdGluOiAnZW50ZXInLFxuXHRcdG91dDogJ2xlYXZlJyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNwZWVkIHRoYXQgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMgcGxheSBhdCwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBzcGVlZC5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktc3BlZWRzOiAoXG5cdFx0ZGVmYXVsdDogNTAwbXMsXG5cdFx0c2xvdzogNzUwbXMsXG5cdFx0ZmFzdDogMjUwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBkZWxheSB0byBhZGQgYmVmb3JlIG1vdGlvbiwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBkZWxheS5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZGVsYXlzOiAoXG5cdFx0ZGVmYXVsdDogMCxcblx0XHRzaG9ydDogMzAwbXMsXG5cdFx0bG9uZzogNzAwbXMsXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBlYXNpbmcgZm9yIHRyYW5zaXRpb25zIGFuZCBhbmltYXRpb25zLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGVhc2luZy5cbi8vLyBAdHlwZSBNYXBcbiRtb3Rpb24tdWktZWFzaW5nczogKFxuXHRcdGRlZmF1bHQ6IGxpbmVhcixcblx0XHRsaW5lYXI6IGxpbmVhcixcblx0XHRlYXNlOiBlYXNlLFxuXHRcdGVhc2UtaW46IGVhc2UtaW4sXG5cdFx0ZWFzZS1vdXQ6IGVhc2Utb3V0LFxuXHRcdGVhc2UtaW4tb3V0OiBlYXNlLWluLW91dCxcblx0XHRib3VuY2UtaW46IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSxcblx0XHRib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxuXHRcdGJvdW5jZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBNaXNjZWxsYW5lb3VzIHNldHRpbmdzIHJlbGF0ZWQgdG8gTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbZmFsc2VdIC0gRGVmaW5lcyBpZiBzbGlkZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIGhpbmdlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc2NhbGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzcGluIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4kbW90aW9uLXVpLXNldHRpbmdzOiAoXG5cdFx0c2xpZGUtYW5kLWZhZGU6IGZhbHNlLFxuXHRcdGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxuXHRcdHNjYWxlLWFuZC1mYWRlOiB0cnVlLFxuXHRcdHNwaW4tYW5kLWZhZGU6IHRydWUsXG5cdFx0YWN0aXZhdGUtcXVldWUtY2xhc3M6ICdpcy1hbmltYXRpbmcnLFxuKSAhZGVmYXVsdDtcbiIsIi8vIEludGVybmFsIGNvdW50ZXIgZm9yIGNyZWF0aW5nIHVuaXF1ZSBrZXlmcmFtZSBuYW1lc1xuJC1tdWktY3VzdG9tOiAwO1xuXG4vLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucy4gVXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBgbXVpLWFuaW1hdGlvbmAgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEga2V5ZnJhbWUgYW5pbWF0aW9uICp3aXRob3V0KiBhdXRvbWF0aWNhbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBrZXlmcmFtZS5cbi8vLyBAcGFyYW0ge0Z1bmN0aW9ufSAkZWZmZWN0cy4uLiAtIE9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgdG8gYnVpbGQgdGhlIGtleWZyYW1lIHdpdGguXG5AbWl4aW4gbXVpLWtleWZyYW1lcygkbmFtZSwgJGVmZmVjdHMuLi4pIHtcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xuICAkb2JqOiBtYXAtcmVtb3ZlKCRvYmosIG5hbWUpO1xuXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBwZXJjZW50YWdlXG4gICAgQGVhY2ggJHBjdCwgJHByb3BzIGluICRvYmoge1xuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xuICAgICAgICAvLyBMYXN0bHksIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIENTUyBwcm9wZXJ0eSB3aXRoaW4gYSBwZXJjZW50YWdlIGFuZCBwcmludCBpdCBvdXRcbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkcHJvcHMge1xuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzdHJpbmcgZm9yIGEgQ1NTIGtleWZyYW1lLCBieSBjb252ZXJ0aW5nIGEgbGlzdCBvZiBudW1iZXJzIHRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGlucHV0IC0gTGlzdCBvZiBudW1iZXJzIHRvIHVzZS5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXBjdCgkaW5wdXQpIHtcbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbnVtYmVyJyB7XG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ2xpc3QnIHtcbiAgICBAZWFjaCAkaSBpbiAkaW5wdXQge1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIFByaW50cyB0aGUgQ1NTIHByb3BlcnRpZXMgZnJvbSBhIHNwZWNpZmljIGtleSBpbiBhIGtleWZyYW1lcyBtYXAuIFVzZWQgdG8gYm9ycm93IENTUyBmcm9tIGtleWZyYW1lIGZ1bmN0aW9ucyBmb3IgdXNlIGluIHRyYW5zaXRpb25zLlxuLy8vIEBwYXJhbSB7TWFwfSAka2YgLSBLZXlmcmFtZSBtYXAgdG8gZXh0cmFjdCBmcm9tLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAka2V5IC0gS2V5IGluIHRoZSBtYXAgdG8gcHJpbnQgdGhlIENTUyBvZi5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBtaXhpbiAtbXVpLWtleWZyYW1lLWdldCgka2YsICRrZXkpIHtcbiAgJG1hcDogbWFwLWdldCgka2YsICRrZXkpO1xuXG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJG1hcCBvciAoKSB7XG4gICAgLy8gU29tZSBrZXlmcmFtZSBtYXBzIHN0b3JlIHRyYW5zZm9ybXMgYXMgcXVvdGVkIHN0cmluZ3NcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdzdHJpbmcnIHtcbiAgICAgICR2YWx1ZTogdW5xdW90ZSgkdmFsdWUpO1xuICAgIH1cbiAgICAjeyRwcm9wfTogJHZhbHVlO1xuICB9XG59XG5cbi8vLyBSZWZvcm1hdHMgYSBtYXAgY29udGFpbmluZyBrZXlzIHdpdGggYSBsaXN0IG9mIHZhbHVlcywgc28gdGhhdCBlYWNoIGtleSBpcyBhIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzcGxpdCB1cC5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgcmVmb3JtYXR0ZWQgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCkge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gU3BsaXQga2V5cyB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbnRvIGluZGl2aWR1YWwga2V5c1xuICBAZWFjaCAka2V5LCAkaXRlbSBpbiAkbWFwIHtcbiAgICAka2V5LXR5cGU6IHR5cGUtb2YoJGtleSk7XG5cbiAgICBAaWYgJGtleS10eXBlID09ICdudW1iZXInIHtcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkaXRlbSkpO1xuICAgIH0gQGVsc2UgaWYgJGtleS10eXBlID09ICdsaXN0JyB7XG4gICAgICBAZWFjaCAkayBpbiAka2V5IHtcbiAgICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrOiAkaXRlbSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1tYXA7XG59XG5cbi8vLyBDb21iaW5lcyBhIHNlcmllcyBvZiBrZXlmcmFtZSBvYmplY3RzIGludG8gb25lLlxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwcy4uLiAtIEEgc2VyaWVzIG9mIG1hcHMgdG8gbWVyZ2UsIGFzIGluZGl2aWR1YWwgcGFyYW1ldGVycy5cbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtY29tYmluZSgkbWFwcy4uLikge1xuICAkbmV3LW1hcDogKCk7XG5cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFwIHBhc3NlZCBpblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkbWFwOiBjYWxsKCRtYXApO1xuICAgIH1cblxuICAgICRtYXA6IC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBrZXlmcmFtZSBpbiB0aGUgbWFwXG4gICAgLy8gJGtleSBpcyB0aGUga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAgICRuZXctdmFsdWU6ICgpO1xuXG4gICAgICBAaWYgbWFwLWhhcy1rZXkoJG5ldy1tYXAsICRrZXkpIHtcbiAgICAgICAgLy8gSWYgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUga2V5ZnJhbWUgJSwgYXBwZW5kIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IG1hcCB3aXRoIHRoZSBuZXcgcHJvcGVydHlcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxuICAgICAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgKCRrZXk6ICRuZXctdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgbmFtZSBmb3IgdGhlIGtleWZyYW1lc1xuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcbiAgJG1hcC1uYW1lOiAobmFtZTogJ2N1c3RvbS0jeyQtbXVpLWN1c3RvbX0nKTtcbiAgJG5ldy1tYXA6IG1hcC1tZXJnZSgkbmV3LW1hcCwgJG1hcC1uYW1lKTtcblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgdHdvIG1hcHMgb2YgQ1NTIHByb3BlcnRpZXMgaW50byBvbmUgbWFwLiBJZiBib3RoIG1hcHMgaGF2ZSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSwgdGhlIHZhbHVlcyBmcm9tIGVhY2ggd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBwcm9wZXJ0eS5cbi8vLyBAcGFyYW0ge01hcH0gJG9uZSAtIEZpcnN0IG1hcCB0byBtZXJnZS5cbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xuICBAaWYgbWFwLWhhcy1rZXkoJG9uZSwgdHJhbnNmb3JtKSBhbmQgbWFwLWhhcy1rZXkoJHR3bywgdHJhbnNmb3JtKSB7XG4gICAgJHRyYW5zZm9ybTogam9pbihtYXAtZ2V0KCRvbmUsIHRyYW5zZm9ybSksIG1hcC1nZXQoJHR3bywgdHJhbnNmb3JtKSk7XG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcbiAgICAkdHdvOiBtYXAtcmVtb3ZlKCR0d28sIHRyYW5zZm9ybSk7XG4gIH1cblxuICBAcmV0dXJuIG1hcC1tZXJnZSgkb25lLCAkdHdvKTtcbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbbGVmdF0gLSBEaXJlY3Rpb24gdG8gc2xpZGUgdG8uIENhbiBiZSBgdXBgLCBgcmlnaHRgLCBgZG93bmAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGFtb3VudCBbMTAwJV0gLSBMZW5ndGggb2YgdGhlIHNsaWRlIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1zbGlkZSAoXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGxlZnQsXG4gICRhbW91bnQ6IDEwMCUsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNsaWRlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc2xpZGU6IHNsaWRlKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XG5cbiAgLy8gQ1NTIE91dHB1dFxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2xpZGUsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGZhZGUgdHJhbnNpdGlvbiBieSBhZGp1c3RpbmcgdGhlIG9wYWNpdHkgb2YgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFswXSAtIE9wYWNpdHkgdG8gc3RhcnQgYXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdG8gWzFdIC0gT3BhY2l0eSB0byBlbmQgb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktZmFkZShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDAsXG4gICR0bzogMSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkZmFkZTogZmFkZSgkZnJvbSwgJHRvKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XG5cbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGZyb20gW2xlZnRdIC0gRWRnZSBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgZnJvbS4gQ2FuIGJlIGB0b3BgLCBgcmlnaHRgLCBgYm90dG9tYCwgb3IgYGxlZnRgLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJzcGVjdGl2ZSBbMjAwMHB4XSAtIFBlcmNlaXZlZCBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB2aWV3ZXIgYW5kIHRoZSBlbGVtZW50LiBBIGhpZ2hlciBudW1iZXIgd2lsbCBtYWtlIHRoZSByb3RhdGlvbiBlZmZlY3QgbW9yZSBwcm9ub3VuY2VkLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHR1cm4tb3JpZ2luIFtmcm9tLWJhY2tdIC0gU2lkZSBvZiB0aGUgZWxlbWVudCB0byBzdGFydCB0aGUgcm90YXRpb24gZnJvbS4gQ2FuIGJlIGBmcm9tLWJhY2tgIG9yIGBmcm9tLWZyb250YC5cbkBmdW5jdGlvbiBoaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrXG4pIHtcbiAgLy8gUm90YXRpb24gZGlyZWN0aW9ucyB3aGVuIGhpbmdpbmcgZnJvbSBiYWNrIHZzLiBmcm9udFxuICAkcm90YXRpb24tYW1vdW50OiA5MGRlZztcbiAgJHJvdGF0aW9ucy1iYWNrOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcbiAgKTtcbiAgJHJvdGF0aW9ucy1mcm9tOiAoXG4gICAgdG9wOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGxlZnQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgKTtcblxuICAvLyBSb3RhdGlvbiBvcmlnaW5cbiAgJHJvdGF0aW9uOiAnJztcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1mcm9tLCAkZnJvbSk7XG4gIH0gQGVsc2UgaWYgJHR1cm4tb3JpZ2luID09IGZyb20tYmFjayB7XG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnJHR1cm4tb3JpZ2luIG11c3QgYmUgZWl0aGVyIFwiZnJvbS1iYWNrXCIgb3IgXCJmcm9tLWZyb250XCInO1xuICB9XG5cbiAgLy8gU3RhcnQgYW5kIGVuZCBzdGF0ZVxuICAkc3RhcnQ6ICcnO1xuICAkZW5kOiAnJztcbiAgQGlmICRzdGF0ZSA9PSBpbiB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgfSBAZWxzZSB7XG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcbiAgICAkZW5kOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcbiAgfVxuXG4gIC8vIFR1cm4gYXhpc1xuICAkb3JpZ2luOiAnJztcbiAgQGlmICRheGlzID09IGVkZ2Uge1xuICAgICRvcmlnaW46ICRmcm9tO1xuICB9IEBlbHNlIHtcbiAgICAkb3JpZ2luOiBjZW50ZXI7XG4gIH1cblxuICAka2V5ZnJhbWVzOiAoXG4gICAgbmFtZTogJ2hpbmdlLSN7JHN0YXRlfS0jeyRmcm9tfS0jeyRheGlzfS0jeyR0dXJuLW9yaWdpbn0nLFxuICAgIDA6ICh0cmFuc2Zvcm06ICRzdGFydCwgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbiksXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcbiAgKTtcblxuICBAcmV0dXJuICRrZXlmcmFtZXM7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGhpbmdlIHRyYW5zaXRpb24gYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktaGluZ2UgKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogbGVmdCxcbiAgJGF4aXM6IGVkZ2UsXG4gICRwZXJzcGVjdGl2ZTogMjAwMHB4LFxuICAkdHVybi1vcmlnaW46IGZyb20tYmFjayxcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRoaW5nZTogaGluZ2UoJHN0YXRlLCAkZnJvbSwgJGF4aXMsICRwZXJzcGVjdGl2ZSwgJHR1cm4tb3JpZ2luKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMCwgMSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1lbmQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGhpbmdlLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZnJvbSBbMS41XSAtIFNpemUgdG8gc3RhcnQgYXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktem9vbShcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IDEuNSxcbiAgJHRvOiAxLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNjYWxlOiB6b29tKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc2NhbGUsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRkaXJlY3Rpb24gW2N3XSAtIERpcmVjdGlvbiB0byBzcGluLiBTaG91bGQgYmUgYGN3YCAoY2xvY2t3aXNlKSBvciBgY2N3YCAoY291bnRlcmNsb2Nrd2lzZSkuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXG5AbWl4aW4gbXVpLXNwaW4oXG4gICRzdGF0ZTogaW4sXG4gICRkaXJlY3Rpb246IGN3LFxuICAkYW1vdW50OiAwLjc1dHVybixcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNwaW46IHNwaW4oJHN0YXRlLCAkZGlyZWN0aW9uLCAkYW1vdW50KTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXN0YXJ0KCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cbkBtaXhpbiBtdWktYW5pbWF0aW9uKCRhcmdzLi4uKSB7XG4gICRuYW1lOiBtYXAtZ2V0KC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSwgbmFtZSk7XG4gIEBpbmNsdWRlIG11aS1rZXlmcmFtZXMoJG5hbWUsICRhcmdzLi4uKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHVucXVvdGUoJG5hbWUpO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGFnZSBMYXlvdXRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmh0bWwge1xuXHRoZWlnaHQgICAgICAgICAgICAgICAgICAgICAgOiAxMDAlO1xuXHQvLyBEaXNhYmxlIFRhYiBIaWdobGlnaHQgQ29sb3Igb24gV2Via2l0IEVuZ2luZXNcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yIDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbn1cblxuYm9keSB7IGhlaWdodCA6IDEwMCU7XG5cdGZvbnQtc2l6ZSA6IHJlbS1jYWxjKDE0KVxufVxuXG4vLyBLbGFzc2Ugd2lyZCB2aWEgSlMgZ2V0cmlnZ2VydCB1bmQgdmVyaGluZGVydCBkYXMgSW5oYWx0ZSBpbSBIaW50ZXJncnVuZCBzY3JvbGxlblxuLy8gSW0gRWluc2F0eiB6LkIuIGJlaSBha3RpdmVyIE5hdmlnYXRpb24gRnVsbHNjcmVlbiB2b24gQ29keUhvdXNlIG9kZXIgTml2byBMaWdodGJveFxuYm9keS5vdmVyZmxvdy1oaWRkZW4geyBvdmVyZmxvdyA6IGhpZGRlbjsgfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXNwb25zaXZlIFN0aWNreSBGb290ZXIgLSBTdGFydFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVG9EbyBQRjogQmVpZGUgTMO2c3VuZ2VuIGZ1bmt0aW9uaWVyZW4gT09UQiBuaWNodCBpbiBWZXJiaW5kdW5nIG1pdCBPZmZDYW52YXMgQmVyZWljaGVuXG4ucGFnZV93cmFwcGVyIHtcblx0aGVpZ2h0IDogMTAwJTtcblx0Ly9kaXNwbGF5ICAgICAgICA6IGZsZXg7XG5cdC8vZmxleC1kaXJlY3Rpb24gOiBjb2x1bW47XG59XG5cbi8vLnBhZ2VfY29udGVudC13cmFwcGVyLW91dHNpZGUgeyBmbGV4IDogMTsgfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLy5wYWdlX3dyYXBwZXIge1xuLy9cdGRpc3BsYXkgOiB0YWJsZTtcbi8vXHR3aWR0aCAgIDogMTAwJTtcbi8vXHRoZWlnaHQgIDogMTAwJTtcbi8vfVxuLy9cbi8vLnBhZ2VfaGVhZGVyLFxuLy8ucGFnZV90ZWFzZXIsXG4vLy5wYWdlX2Zvb3Rlcixcbi8vLnBhZ2VfY29udGVudC13cmFwcGVyLW91dHNpZGUgeyBkaXNwbGF5IDogdGFibGUtcm93OyB9XG4vL1xuLy8ucGFnZV9jb250ZW50LXdyYXBwZXItb3V0c2lkZSB7IGhlaWdodCA6IDEwMCU7IH1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlc3BvbnNpdmUgU3RpY2t5IEZvb3RlciAtIFN0b3Bcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wYWdlX2NvbHVtbi13cmFwcGVyIHtcblx0cG9zaXRpb24gOiByZWxhdGl2ZTtcblx0ZGlzcGxheSAgOiBibG9jaztcblx0Ly90YWJsZS1sYXlvdXQgOiBmaXhlZDtcblx0d2lkdGggICAgOiAxMDAlO1xuXHRoZWlnaHQgICA6IDEwMCU7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhZ2UgTGF5b3V0OiAwLTEtMFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcGFnZS1jb2x1bW4tMSA9IG1haW4gY29udGVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnBhZ2VfbGF5b3V0LTAtMS0wIC5wYWdlX2NvbHVtbi0xIHtcblx0d2lkdGggIDogMTAwJTtcblx0aGVpZ2h0IDogMTAwJTtcbn1cblxuLy8gVE9ETy1QRjogRXZlbnR1ZWxsIEF1c3RhdXNjaCBkdXJjaCBHcmlkIFN5c3RlbSAoRmxvYXQgb2RlciBGbGV4KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFnZSBMYXlvdXQ6IDMtMS0wIHwgVW5pdC1NaXg6IE5vIHwgQWxsb3dlZCBVbml0czogJSB8IHB4IHwocillbVxuLy8gSWYgbGluZWFyaXplZCwgdGhlIHNpZGViYXIgY29udGVudCBkcm9wcyBiZWxvdyB0aGUgbWFpbiBjb250ZW50LlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcGFnZV9jb2x1bW4tMSA9PiBtYWluIGNvbnRlbnQgfCBwYWdlX2NvbHVtbi0zID0+IHNpZGViYXIgY29udGVudCAobGVmdClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0LnBhZ2VfbGF5b3V0LTMtMS0wIC5wYWdlX2NvbHVtbi0xIHsgZmxvYXQgOiByaWdodDsgd2lkdGggOiA3NSU7IH1cblx0LnBhZ2VfbGF5b3V0LTMtMS0wIC5wYWdlX2NvbHVtbi0zIHsgbWFyZ2luIDogMCA3NSUgMCAwOyB9XG5cdFxuXHQucGFnZV9sYXlvdXQtMy0xLTAgLnBhZ2VfY29udGVudCB7IG1hcmdpbi1sZWZ0IDogcmVtLWNhbGMoMjApOyB9XG5cdC5wYWdlX2xheW91dC0zLTEtMCAucGFnZV9zaWRlYmFyIHsgbWFyZ2luLXJpZ2h0IDogcmVtLWNhbGMoMjApOyB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExheW91dCB2YXJpYW50IHdpdGggZml4ZWQgc2lkZWJhci5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoaXMgbGF5b3V0IHZhcmlhbnQgcmVxdWlyZXMgdGhhdCAncGFnZV9jb2x1bW4tMScgaXNuJ3QgY29tcGxldGVseSBlbXB0eS4gSUUgbmVlZHMgYXQgbGVhc3QgZHVtbXkgY29udGVudCAoJm5ic3A7KSxcbi8vIG90aGVyd2lzZSBpdCBkb2Vzbid0IHJlbmRlciB0aGUgZWxlbWVudCBhbmQgdGhlIGFsaWdubWVudCBvZiB0aGUgc2lkZWJhciB3aXRoaW4gdGhlIHBhcmVudHMgcGFkZGluZyBhcmVhIGZhaWxzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4vL1x0LnBhZ2VfbGF5b3V0LTMtMS0wIC5wYWdlX2NvbHVtbi13cmFwcGVyIHtcbi8vXHRcdGRpc3BsYXkgICAgICA6IGJsb2NrO1xuLy9cdFx0d2lkdGggICAgICAgIDogYXV0bztcbi8vXHRcdG92ZXJmbG93ICAgICA6IGhpZGRlbjtcbi8vXHRcdHBhZGRpbmctbGVmdCA6IDI1MHB4OyAvLyBjb2x1bW4gd2lkdGhcbi8vXHR9XG4vL1xuLy9cdC5wYWdlX2xheW91dC0zLTEtMCAucGFnZV9jb2x1bW4tMSB7XG4vL1x0XHRmbG9hdCAgICA6IGxlZnQ7XG4vL1x0XHR3aWR0aCAgICA6IDEwMCU7XG4vL1x0XHRwb3NpdGlvbiA6IHJlbGF0aXZlO1xuLy9cdH1cbi8vXG4vL1x0LnBhZ2VfbGF5b3V0LTMtMS0wIC5wYWdlX2NvbHVtbi0zIHtcbi8vXHRcdGZsb2F0ICAgIDogbGVmdDtcbi8vXHRcdHdpZHRoICAgIDogMjUwcHg7IC8vIGNvbHVtbiB3aWR0aFxuLy9cdFx0cmlnaHQgICAgOiAyNTBweDsgLy8gY29sdW1uIHdpZHRoXG4vL1x0XHRwb3NpdGlvbiA6IHJlbGF0aXZlO1xuLy9cdFx0bWFyZ2luICAgOiAwIDAgMCAtMTAwJTtcbi8vXHR9XG4vL1xuLy9cdC5wYWdlX2xheW91dC0zLTEtMCAucGFnZV9jb250ZW50IHsgbWFyZ2luLWxlZnQgOiByZW0tY2FsYygyMCk7IH1cbi8vXHQucGFnZV9sYXlvdXQtMy0xLTAgLnBhZ2Vfc2lkZWJhciB7IG1hcmdpbi1yaWdodCA6IHJlbS1jYWxjKDIwKTsgfVxuLy99XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQYWdlIExheW91dDogMC0xLTMgfCBVbml0LU1peDogTm8gfCBBbGxvd2VkIFVuaXRzOiAlIHwgcHggfChyKWVtXG4vLyBJZiBsaW5lYXJpemVkLCB0aGUgc2lkZWJhciBjb250ZW50IGRyb3BzIGJlbG93IHRoZSBtYWluIGNvbnRlbnQuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBwYWdlX2NvbHVtbi0xID0+IG1haW4gY29udGVudCB8IHBhZ2VfY29sdW1uLTMgPT4gc2lkZWJhciBjb250ZW50IChyaWdodClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuLy9cdC5wYWdlX2xheW91dC0wLTEtMyAucGFnZV9jb2x1bW4tMSB7IGZsb2F0IDogbGVmdDsgd2lkdGggOiA2Ni42NjYlOyB9XG4vL1x0LnBhZ2VfbGF5b3V0LTAtMS0zIC5wYWdlX2NvbHVtbi0zIHsgbWFyZ2luIDogMCAwIDAgNjYuNjY2JTsgfVxuLy9cbi8vXHQucGFnZV9sYXlvdXQtMC0xLTMgLnBhZ2VfY29udGVudCB7IG1hcmdpbi1yaWdodCA6IHJlbS1jYWxjKDIwKTsgfVxuLy9cdC5wYWdlX2xheW91dC0wLTEtMyAucGFnZV9zaWRlYmFyIHsgbWFyZ2luLWxlZnQgOiByZW0tY2FsYygyMCk7IH1cbi8vfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBMYXlvdXQgdmFyaWFudCB3aXRoIGZpeGVkIHNpZGViYXIuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIGxheW91dCB2YXJpYW50IHJlcXVpcmVzIHRoYXQgJ3BhZ2UtY29sdW1uLTEnIGlzbid0IGNvbXBsZXRlbHkgZW1wdHkuIElFIG5lZWRzIGF0IGxlYXN0IGR1bW15IGNvbnRlbnQgKCZuYnNwOyksXG4vLyBvdGhlcndpc2UgaXQgZG9lc24ndCByZW5kZXIgdGhlIGVsZW1lbnQgYW5kIHRoZSBhbGlnbm1lbnQgb2YgdGhlIHNpZGViYXIgd2l0aGluIHRoZSBwYXJlbnRzIHBhZGRpbmcgYXJlYSBmYWlscy5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuLy9cdC5wYWdlX2xheW91dC0wLTEtMyAucGFnZV9jb2x1bW4td3JhcHBlciB7XG4vL1x0XHRkaXNwbGF5ICAgICAgIDogYmxvY2s7XG4vL1x0XHR3aWR0aCAgICAgICAgIDogYXV0bztcbi8vXHRcdG92ZXJmbG93ICAgICAgOiBoaWRkZW47XG4vL1x0XHRwYWRkaW5nLXJpZ2h0IDogMjUwcHg7IC8vIGNvbHVtbiB3aWR0aFxuLy9cdH1cbi8vXG4vL1x0LnBhZ2VfbGF5b3V0LTAtMS0zIC5wYWdlX2NvbHVtbi0xIHtcbi8vXHRcdGZsb2F0ICAgIDogbGVmdDtcbi8vXHRcdHdpZHRoICAgIDogMTAwJTtcbi8vXHRcdHBvc2l0aW9uIDogcmVsYXRpdmU7XG4vL1x0fVxuLy9cbi8vXHQucGFnZV9sYXlvdXQtMC0xLTMgLnBhZ2VfY29sdW1uLTMge1xuLy9cdFx0ZmxvYXQgICAgOiBsZWZ0O1xuLy9cdFx0d2lkdGggICAgOiAyNTBweDsgLy8gY29sdW1uIHdpZHRoXG4vL1x0XHRwb3NpdGlvbiA6IHJlbGF0aXZlO1xuLy9cdFx0bWFyZ2luICAgOiAwIC0yNTBweCAwIDA7IC8vIGNvbHVtbiB3aWR0aFxuLy9cdH1cbi8vXG4vL1x0LnBhZ2VfbGF5b3V0LTAtMS0zIC5wYWdlX2NvbnRlbnQgeyBtYXJnaW4tcmlnaHQgOiByZW0tY2FsYygyMCk7IH1cbi8vXHQucGFnZV9sYXlvdXQtMC0xLTMgLnBhZ2Vfc2lkZWJhciB7IG1hcmdpbi1sZWZ0IDogcmVtLWNhbGMoMjApOyB9XG4vL31cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhZ2UgTGF5b3V0OiAxLTMtMCB8IFVuaXQtTWl4OiBObyB8IEFsbG93ZWQgVW5pdHM6ICUgfCBweCB8KHIpZW1cbi8vIElmIGxpbmVhcml6ZWQsIHRoZSBtYWluIGNvbnRlbnQgZHJvcHMgYmVsb3cgdGhlIHNpZGViYXIgY29udGVudC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHBhZ2VfY29sdW1uLTEgPT4gc2lkZWJhciBjb250ZW50IChsZWZ0KSB8IHBhZ2VfY29sdW1uLTMgPT4gbWFpbiBjb250ZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdC5wYWdlX2xheW91dC0xLTMtMCAucGFnZV9jb2x1bW4tMSB7IGZsb2F0IDogbGVmdDsgd2lkdGggOiAyNSU7IH1cblx0LnBhZ2VfbGF5b3V0LTEtMy0wIC5wYWdlX2NvbHVtbi0zIHsgbWFyZ2luIDogMCAwIDAgMjUlOyB9XG5cdFxuXHQucGFnZV9sYXlvdXQtMS0zLTAgLnBhZ2VfY29udGVudCB7IG1hcmdpbi1sZWZ0IDogcmVtLWNhbGMoMjApOyB9XG5cdC5wYWdlX2xheW91dC0xLTMtMCAucGFnZV9zaWRlYmFyIHsgbWFyZ2luLXJpZ2h0IDogcmVtLWNhbGMoMjApOyB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhZ2UgTGF5b3V0OiAwLTMtMSB8IFVuaXQtTWl4OiBObyB8IEFsbG93ZWQgVW5pdHM6ICUgfCBweCB8KHIpZW1cbi8vIElmIGxpbmVhcml6ZWQsIHRoZSBtYWluIGNvbnRlbnQgZHJvcHMgYmVsb3cgdGhlIHNpZGViYXIgY29udGVudC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHBhZ2VfY29sdW1uLTEgPT4gc2lkZWJhciBjb250ZW50IChyaWdodCkgfCBwYWdlX2NvbHVtbi0zID0+IG1haW4gY29udGVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4vL1x0LnBhZ2VfbGF5b3V0LTAtMy0xIC5wYWdlX2NvbHVtbi0xIHsgZmxvYXQgOiByaWdodDsgd2lkdGggOiAzMy4zMzMlOyB9XG4vL1x0LnBhZ2VfbGF5b3V0LTAtMy0xIC5wYWdlX2NvbHVtbi0zIHsgbWFyZ2luIDogMCAzMy4zMzMlIDAgMDsgfVxuLy9cbi8vXHQucGFnZV9sYXlvdXQtMC0zLTEgLnBhZ2VfY29udGVudCB7IG1hcmdpbi1yaWdodCA6IHJlbS1jYWxjKDIwKTsgfVxuLy9cdC5wYWdlX2xheW91dC0wLTMtMSAucGFnZV9zaWRlYmFyIHsgbWFyZ2luLWxlZnQgOiByZW0tY2FsYygyMCk7IH1cbi8vfVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFnZSBMYXlvdXQ6IDItMS0zIHwgVW5pdC1NaXg6IE5vIHwgQWxsb3dlZCBVbml0czogJSB8IHB4XG4vLyBJZiBsaW5lYXJpemVkLCB0aGUgc2lkZWJhciBjb250ZW50IGRyb3BzIGJlbG93IHRoZSBtYWluIGNvbnRlbnQuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBwYWdlX2NvbHVtbi0xID0+IG1haW4gY29udGVudCB8IHBhZ2VfY29sdW1uLTIgPT4gc2lkZWJhciBjb250ZW50IChsZWZ0KSB8IHBhZ2VfY29sdW1uLTMgPT4gc2lkZWJhciBjb250ZW50IChyaWdodClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuLy9cdC5wYWdlX2xheW91dC0yLTEtMyAucGFnZV9jb2x1bW4tMSB7IHdpZHRoIDogNTAlOyBmbG9hdCA6IGxlZnQ7IG1hcmdpbi1sZWZ0IDogMjUlOyB9XG4vL1x0LnBhZ2VfbGF5b3V0LTItMS0zIC5wYWdlX2NvbHVtbi0yIHsgd2lkdGggOiAyNSU7IGZsb2F0IDogbGVmdDsgbWFyZ2luLWxlZnQgOiAtNzUlOyB9XG4vL1x0LnBhZ2VfbGF5b3V0LTItMS0zIC5wYWdlX2NvbHVtbi0zIHsgd2lkdGggOiAyNSU7IGZsb2F0IDogcmlnaHQ7IG1hcmdpbi1sZWZ0IDogLTVweDsgbWFyZ2luLXJpZ2h0IDogMDsgfVxuLy9cbi8vXHQucGFnZV9sYXlvdXQtMi0xLTMgLnBhZ2VfY29udGVudCB7IG1hcmdpbiA6IDAgcmVtLWNhbGMoMjApOyB9XG4vL1x0LnBhZ2VfbGF5b3V0LTItMS0zIC5wYWdlX3NpZGViYXIgeyBtYXJnaW4tcmlnaHQgOiByZW0tY2FsYygyMCk7IH1cbi8vXHQucGFnZV9sYXlvdXQtMi0xLTMgLnBhZ2Vfc2lkZWJhci1yaWdodCB7IG1hcmdpbi1sZWZ0IDogcmVtLWNhbGMoMjApOyB9XG4vL31cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEdyaWQgLSBGb3VuZGF0aW9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIEF1cyBOQi1DQlMtRlMtREVWIMO8YmVybm9tbWVuXG5cbi5leHBhbmRlZCAucm93IHtcblx0bWFyZ2luLWxlZnQgIDogYXV0bztcblx0bWFyZ2luLXJpZ2h0IDogYXV0bztcblx0bWF4LXdpZHRoICAgIDogNzVyZW07XG59XG5cbi8vLnBhZ2VfY29udGVudCAucm93IHtcbi8vXHRtYXJnaW4tYm90dG9tIDogMS41ZW07XG4vL31cblxuQG1peGluIGJnLWNvbG9yIHtcblx0Ym9yZGVyLWxlZnQgIDogMC42OTQ0NHJlbSBzb2xpZCAkbGlnaHQtZ3JheTtcblx0Ym9yZGVyLXJpZ2h0IDogMC42OTQ0NHJlbSBzb2xpZCAkbGlnaHQtZ3JheTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRib3JkZXItbGVmdCAgOiAxLjA0MTY3cmVtIHNvbGlkICRsaWdodC1ncmF5O1xuXHRcdGJvcmRlci1yaWdodCA6IDEuMDQxNjdyZW0gc29saWQgJGxpZ2h0LWdyYXk7XG5cdH1cblx0cGFkZGluZyAgICAgIDogMS41cmVtO1xuXHRwYWRkaW5nLXRvcCAgOiAycmVtO1xufVxuXG4uYmctY29sb3ItbGlnaHRncmV5IHtcblx0QGluY2x1ZGUgYmctY29sb3I7XG5cdGJhY2tncm91bmQtY29sb3IgOiAkbGlnaHQtZ3JheTtcbn1cblxuLy8uYmctY29sb3Itd2hpdGUge1xuLy9cdEBpbmNsdWRlIGJnLWNvbG9yO1xuLy9cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbi8vfVxuXG4uYmctY29sb3ItcHJpbWFyeSB7XG5cdEBpbmNsdWRlIGJnLWNvbG9yO1xuXHRiYWNrZ3JvdW5kLWNvbG9yIDogJHByaW1hcnktY29sb3I7XG59XG5cbi5yb3ctb25lLWNvbHVtbiA+ICoge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbn1cblxuLnJvdy10d28tY29sdW1ucyA+ICoge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG5cdH1cbn1cblxuLnJvdy10aHJlZS1jb2x1bW5zID4gKiB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCk7XG5cdH1cbn1cblxuLnJvdy1mb3VyLWNvbHVtbnMgPiAqIHtcblx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigzKTtcblx0fVxufVxuXG4ucm93LWJpZy1zbWFsbCA+ICo6bnRoLWNoaWxkKG9kZCkge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDgpO1xuXHR9XG59XG5cbi5yb3ctYmlnLXNtYWxsID4gKjpudGgtY2hpbGQoZXZlbikge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDQpO1xuXHR9XG59XG5cbi5yb3ctc21hbGwtYmlnID4gKjpudGgtY2hpbGQob2RkKSB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNCk7XG5cdH1cbn1cblxuLnJvdy1zbWFsbC1iaWcgPiAqOm50aC1jaGlsZChldmVuKSB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oOCk7XG5cdH1cbn1cblxuLnJlbW92ZS1ncmlkIHtcblx0d2lkdGggICAgIDogMTAwJSAhaW1wb3J0YW50O1xuXHRmbGV4ICAgICAgOiAwIDAgMTAwJSAhaW1wb3J0YW50O1xuXHRtYXgtd2lkdGggOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1pc2NlbGxhbmVvdXMgLSBHbG9iYWxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gQ29udGFvIENvcmUgS2xhc3NlIChTa2lwIExpbmtzLCBGb3JtdWxhcmUgZXRjLilcbi8vIEdsZWljaG5hbWlnZSBGb3VuZGF0aW9uIEtsYXNzZSB1bmdlZWlnbmV0XG4vLyBVbXNldHp1bmcgbmljaHQgaWRlYWwsIGRhIFNjcmVlbnJlYWRlciBhdXNnZXNjaGxvc3NlblxuLmludmlzaWJsZSB7XG5cdGRpc3BsYXkgICAgOiBub25lICFpbXBvcnRhbnQ7XG5cdHZpc2liaWxpdHkgOiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLy8gQ29udGFvIENvcmUgS2xhc3NlbiAoRmxvYXRpbmcpXG4vLyBCcmVha3BvaW50IHVuZCBBYnN0YW5kIGdnZi4gQW5wYXNzZW5cbi5mbG9hdF9hYm92ZSB7XG5cdG1hcmdpbi1ib3R0b20gOiAkbWFyZ2luLXNtYWxsO1xufVxuXG4uZmxvYXRfbGVmdCB7XG5cdG1hcmdpbi1ib3R0b20gOiAkbWFyZ2luLXNtYWxsO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0ZmxvYXQgICAgICAgIDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQgOiAkbWFyZ2luLXNtYWxsO1xuXHR9XG59XG5cbi5mbG9hdF9yaWdodCB7XG5cdG1hcmdpbi1ib3R0b20gOiAkbWFyZ2luLXNtYWxsO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0ZmxvYXQgICAgICAgOiByaWdodDtcblx0XHRtYXJnaW4tbGVmdCA6ICRtYXJnaW4tc21hbGw7XG5cdH1cbn1cblxuLy8gw5xiZXJzY2hyZWlidCBkaWUgTm9ybWFsaXNpZXJ1bmcuIEltIEdyaWQgd2FocnNjaGVpbmxpY2ggenVtZWlzdCBzaW5udm9sbCAoQWJow6RuZ2lnIHZvbSBMYXlvdXQpXG4vLyBLw7ZubnRlIGluIGFuZGVyZW4gRsOkbGxlbiBhYmVyIG5pY2h0IHNpbm52b2xsIHNlaW4gKFRleHQgKyBCaWxkKVxuZmlndXJlIHsgbWFyZ2luIDogMDsgfVxuXG4vLyBPdXRsaW5lIEVudGZlcm51bmdcbmJ1dHRvbixcbnNlbGVjdCxcbi5zdWJtaXQsXG4ucmV2ZWFsLFxuYS5lZGl0IHsgb3V0bGluZSA6IDA7IH1cblxuLy8gRmVobGVybWVsZHVuZyBGb3JtdWxhcmUgKG9obmUgYnp3LiBGYWxsYmFjayBIVE1MNSBWYWxpZGllcnVuZylcbnAuZXJyb3IsXG4ubW9kX2lzb19jYXJ0IC5jb3Vwb24gLmZhaWxlZCB7XG5cdHBhZGRpbmcgICAgIDogMC44NWVtIDAuNWVtO1xuXHRmb250LXNpemUgICA6IHJlbS1jYWxjKDEyKTtcblx0Zm9udC13ZWlnaHQgOiAkZm9udC13ZWlnaHQtMztcblx0Y29sb3IgICAgICAgOiAkd2hpdGU7XG5cdGJhY2tncm91bmQgIDogJGFsZXJ0LWNvbG9yO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUeXBvZ3JhcGh5IC0gR2xvYmFsXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmJvZHkge1xuXHRsZXR0ZXItc3BhY2luZyA6ICRsZXR0ZXItc3BhY2luZy1zbWFsbDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcblx0Ly8uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2hlYWRsaW5lLFxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19zdWJoZWFkbGluZSB7XG5cdGxldHRlci1zcGFjaW5nIDogJGxldHRlci1zcGFjaW5nLXNtYWxsO1xuXHRmb250LXdlaWdodCAgICA6ICRmb250LXdlaWdodC0zO1xufVxuXG5oMSB7XG5cdHBhZGRpbmctdG9wICAgIDogMC41cmVtO1xuXHRmb250LXdlaWdodCAgICA6ICRmb250LXdlaWdodC0wO1xuXHR0ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcblx0cGFkZGluZy1ib3R0b20gOiAxcmVtO1xufVxuXG5oMyB7XG5cdGZvbnQtd2VpZ2h0ICAgIDogJGZvbnQtd2VpZ2h0LTE7XG5cdHRleHQtdHJhbnNmb3JtIDogdXBwZXJjYXNlO1xufVxuXG5wLCB0ZCwgbGkge1xuXHRmb250LXNpemUgOiByZW1fY2FsYygxNCk7XG59XG5cbi5yZXZlYWwgb2wsXG4ucGFnZV9jb250ZW50IG9sIHtcblx0bWFyZ2luLWxlZnQgOiAxLjc1cmVtO1xufVxuXG5zZWxlY3Qge1xuXHRib3JkZXIgOiAxcHggc29saWQgJHByaW1hcnktY29sb3I7XG5cdG1hcmdpbiA6IDAgMCAwLjVyZW07XG59XG5cbi5wYWdlX2NvbHVtbi0xIHNlbGVjdCB7XG5cdGJvcmRlciA6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG5cdG1hcmdpbiA6IDAgMCAxcmVtO1xufVxuXG4jY3RybF90YXJnZXQge1xuXHR0ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcblx0bGV0dGVyLXNwYWNpbmcgOiAkbGV0dGVyLXNwYWNpbmctbWVkaXVtO1xufVxuXG5vcHRpb24ge1xuXHR0ZXh0LXRyYW5zZm9ybSA6IG5vbmUgIWltcG9ydGFudDtcblx0bGV0dGVyLXNwYWNpbmcgOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQYWdlIE1haW4gRWxlbWVudHMgLSBIZWFkZXIsIFRlYXNlciwgQ29udGVudCwgU2lkZWJhciwgRm9vdGVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vLyBQYWdlIEhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnBhZ2VfaGVhZGVyIHsgfVxuXG4udG9wLW5hdmlnYXRpb24ge1xuXHR6LWluZGV4ICAgIDogMTAwO1xuXHRwb3NpdGlvbiAgIDogZml4ZWQ7XG5cdHRvcCAgICAgICAgOiAwO1xuXHRsZWZ0ICAgICAgIDogMDtcblx0d2lkdGggICAgICA6IDEwMCU7XG5cdGJhY2tncm91bmQgOiAkYm9keS1iYWNrZ3JvdW5kO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZy10b3AgOiAxcmVtO1xuXHRcdC8vcGFkZGluZy1ib3R0b20gOiAxcmVtO1xuXHR9XG5cdFxufVxuXG4udG9wLW5hdmlnYXRpb25fbG9nbyB7XG5cdG1hcmdpbi10b3AgOiAxLjI1ZW07XG5cdHotaW5kZXggICAgOiAxMDA7XG5cdC5pbWFnZV9jb250YWluZXIge1xuXHRcdG1hcmdpbi1ib3R0b20gOiAwLjVlbTtcblx0fVxufVxuXG4udG9wLW5hdmlnYXRpb25fc2hvcCB7XG5cdC8vQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcblx0Ly9vcmRlciAgICAgICAgICA6IDM7XG5cdC8vbGluZS1oZWlnaHQgICAgOiAxO1xuXHQvL3BhZGRpbmctYm90dG9tIDogMTVweDtcblx0cG9zaXRpb24gICAgICA6IHJlbGF0aXZlO1xuXHRtYXJnaW4tdG9wICAgIDogLTIwcHg7XG5cdG1hcmdpbi1ib3R0b20gOiAxMHB4O1xuXHR0ZXh0LWFsaWduICAgIDogcmlnaHQ7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW4tdG9wICAgIDogMDtcblx0XHRtYXJnaW4tYm90dG9tIDogMDtcblx0fVxufVxuXG4udG9wLW5hdmlnYXRpb25fc2hvcCAubGlua19iYXNrZXQge1xuXHQmOmFmdGVyIHtcblx0XHRAaW5jbHVkZSBpY29uKGNhcnQ1KSB7XG5cdFx0XHRmb250LXNpemUgOiAxNHB4O1xuXHRcdH1cblx0fVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wYWdlX3R5cGUtaG9tZSAucGFnZV9oZWFkZXIgeyB9XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBhZ2UgVGVhc2VyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucGFnZV90ZWFzZXIge1xuXHRwb3NpdGlvbiAgIDogcmVsYXRpdmU7XG5cdG1hcmdpbi10b3AgOiA3ZW07XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW4tdG9wIDogLTEuNWVtO1xuXHR9XG59XG5cbi5wYWdlX3RlYXNlciAubW9kX25hdmlnYXRpb24gdWwge1xuXHRsaXN0LXN0eWxlICA6IG5vbmU7XG5cdG1hcmdpbi1sZWZ0IDogMDtcbn1cblxuLnBhZ2VfdGVhc2VyIC5tb2RfbmF2aWdhdGlvbiBsaSB7XG5cdGRpc3BsYXkgICAgICAgIDogaW5saW5lO1xuXHR0ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcblx0cGFkZGluZy1sZWZ0ICAgOiAwLjVyZW07XG59XG5cbi5wYWdlX3RlYXNlciAubW9kX25hdmlnYXRpb24gbGk6Zmlyc3QtY2hpbGQge1xuXHRwYWRkaW5nLWxlZnQgOiAwO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQYWdlIENvbnRlbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wYWdlX3dyYXBwZXIge1xuXHRwb3NpdGlvbiA6IHJlbGF0aXZlO1xuXHR0b3AgICAgICA6IDA7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHR0b3AgOiAxMmVtO1xuXHR9XG59XG5cbi5wYWdlX2NvbHVtbi13cmFwcGVyIHtcblx0bWF4LXdpZHRoIDogJGdsb2JhbC13aWR0aDtcblx0bWFyZ2luICAgIDogMCBhdXRvO1xuXHRAaW5jbHVkZSBncmlkLXBhZGRpbmcteDtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRtYXJnaW4tdG9wIDogNDVweDtcblx0fVxufVxuXG4ucGFnZV90eXBlLWhvbWUgLnBhZ2VfY29sdW1uLXdyYXBwZXIsXG4ucGFnZV90eXBlLXNob3BsaXN0IC5wYWdlX2NvbHVtbi13cmFwcGVyIHtcblx0bWF4LXdpZHRoIDogbm9uZTtcblx0QGluY2x1ZGUgZ3JpZC1wYWRkaW5nLXgtbm9uZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucGFnZV9jb250ZW50IHsgfVxuXG4ucGFnZV9jb250ZW50IC5jZV90ZXh0IGEsIC5wYWdlX2NvbnRlbnQgLmNlX2l0ZW0taW50cm8tdGV4dF9fY29udGVudCBhIHtcblx0dGV4dC1kZWNvcmF0aW9uIDogdW5kZXJsaW5lO1xufVxuXG4ucGFnZV9jb250ZW50IC5jZV90ZXh0IGEuYnV0dG9uIHtcblx0dGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcbn1cblxuLmltYWdlX2NvbnRhaW5lciB7XG5cdHBvc2l0aW9uICAgICAgOiByZWxhdGl2ZTtcblx0bWFyZ2luLWJvdHRvbSA6IDJlbTtcbn1cblxuLmNlX2ltYWdlIC5jYXB0aW9uIHtcblx0dGV4dC10cmFuc2Zvcm0gICA6IHVwcGVyY2FzZTtcblx0cG9zaXRpb24gICAgICAgICA6IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yIDogcmdiYSgkYmxhY2ssIDEpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHBvc2l0aW9uICAgICAgICAgOiBhYnNvbHV0ZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yIDogcmdiYSgkYmxhY2ssIDAuOCk7XG5cdH1cblx0Ym90dG9tICAgICAgICAgICA6IDA7XG5cdGNvbG9yICAgICAgICAgICAgOiAkd2hpdGU7XG5cdHdpZHRoICAgICAgICAgICAgOiAxMDAlO1xuXHRwYWRkaW5nICAgICAgICAgIDogMXJlbTtcblx0ei1pbmRleCAgICAgICAgICA6IDI7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIb3ZlciBFZmZla3QgZsO8ciB2ZXJsaW5rdGUgQmlsZGVyIC0gU3RhcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8uaW1hZ2VfY29udGFpbmVyLmltYWdlX2hvdmVyIGE6Zmlyc3QtY2hpbGQge1xuLy9cdGRpc3BsYXkgIDogYmxvY2s7XG4vL1x0cG9zaXRpb24gOiByZWxhdGl2ZTtcbi8vXHRoZWlnaHQgICA6IDEwMCU7XG4vL1x0b3ZlcmZsb3cgOiBoaWRkZW47XG4vL31cbi8vXG4vLy5pbWFnZV9jb250YWluZXIuaW1hZ2VfaG92ZXIgYTpmaXJzdC1jaGlsZDphZnRlciB7XG4vL1x0YmFja2dyb3VuZCA6IHJnYmEoJGJsYWNrLCAwKSBub25lIG5vLXJlcGVhdCBzY3JvbGwgY2VudGVyIGNlbnRlciAvIDJyZW0gMnJlbTtcbi8vXHRjb250ZW50ICAgIDogXCJcIjtcbi8vXHRoZWlnaHQgICAgIDogMTAwJTtcbi8vXHRsZWZ0ICAgICAgIDogMDtcbi8vXHRwb3NpdGlvbiAgIDogYWJzb2x1dGU7XG4vL1x0dG9wICAgICAgICA6IDA7XG4vL1x0dHJhbnNpdGlvbiA6IGJhY2tncm91bmQgMC4zcyBlYXNlIDBzO1xuLy9cdHdpZHRoICAgICAgOiAxMDAlO1xuLy9cdHotaW5kZXggICAgOiAyO1xuLy99XG4vL1xuLy8uaW1hZ2VfY29udGFpbmVyLmltYWdlX2hvdmVyIGE6Zmlyc3QtY2hpbGQ6aG92ZXI6YWZ0ZXIge1xuLy9cdGJhY2tncm91bmQgOiByZ2JhKCRibGFjaywgLjcpIG5vLXJlcGVhdCBzY3JvbGwgY2VudGVyIGNlbnRlciAvIDJyZW0gMnJlbTtcbi8vfVxuLy9cbi8vLmltYWdlX2NvbnRhaW5lci5pbWFnZV9ob3ZlciBhOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4vL1x0Ly96LWluZGV4ICAgIDogMztcbi8vXHQvL3Bvc2l0aW9uICAgOiBhYnNvbHV0ZTtcbi8vXHQvL3RvcCAgICAgICAgOiBjYWxjKDUwJSAtIDEycHgpO1xuLy9cdC8vbGVmdCAgICAgICA6IDA7XG4vL1x0Ly93aWR0aCAgICAgIDogMTAwJTtcbi8vXHQvL2FsaWduLXNlbGYgOiBjZW50ZXI7XG4vL1x0Ly9AaW5jbHVkZSBpY29uKHBsdXMzKTtcbi8vXHQvL2NvbG9yICAgICAgOiAkd2hpdGU7XG4vL1x0Ly9mb250LXNpemUgIDogMjRweDtcbi8vXHQvL3RleHQtYWxpZ24gOiBjZW50ZXI7XG4vL1x0Ly9vcGFjaXR5ICAgIDogMDtcbi8vXHQvL3RyYW5zaXRpb24gOiBvcGFjaXR5IDAuM3MgZWFzZSAwcztcbi8vXG4vL1x0ei1pbmRleCAgICAgICAgICAgOiAzO1xuLy9cdHBvc2l0aW9uICAgICAgICAgIDogYWJzb2x1dGU7XG4vL1x0dG9wICAgICAgICAgICAgICAgOiBjYWxjKDUwJSAtIDI0cHgpO1xuLy9cdGxlZnQgICAgICAgICAgICAgIDogY2FsYyg1MCUgLSAyNHB4KTtcbi8vXHRoZWlnaHQgICAgICAgICAgICA6IDQ4cHg7XG4vL1x0d2lkdGggICAgICAgICAgICAgOiA0OHB4O1xuLy9cdGFsaWduLXNlbGYgICAgICAgIDogY2VudGVyO1xuLy9cdGNvbnRlbnQgICAgICAgICAgIDogJyc7XG4vL1x0dGV4dC1hbGlnbiAgICAgICAgOiBjZW50ZXI7XG4vL1x0YmFja2dyb3VuZC1zaXplICAgOiA0OHB4IDQ4cHg7XG4vL1x0YmFja2dyb3VuZC1yZXBlYXQgOiBuby1yZXBlYXQ7XG4vL1x0Ly9iYWNrZ3JvdW5kLWltYWdlICA6IHVybCguLi9pbWcvbG9nb19zdGlscmViZWxsZW4tc2lnbi5zdmcpO1xuLy9cdG9wYWNpdHkgICAgICAgICAgIDogMDtcbi8vXHR0cmFuc2l0aW9uICAgICAgICA6IG9wYWNpdHkgMC4zcyBlYXNlIDBzO1xuLy99XG4vL1xuLy8uaW1hZ2VfY29udGFpbmVyLmltYWdlX2hvdmVyIGE6Zmlyc3QtY2hpbGQ6aG92ZXI6YmVmb3JlIHtcbi8vXHRvcGFjaXR5IDogMTtcbi8vfVxuLy9cbi8vLnBhZ2VfY29udGVudC10ZWFzZXItY2F0ZWdvcmllcy1ncmlkLXNob3AgLmltYWdlX2NvbnRhaW5lciBhOmZpcnN0LWNoaWxkOmhvdmVyOmJlZm9yZSxcbi8vLnBhZ2VfY29udGVudC10ZWFzZXItY2F0ZWdvcmllcy1ncmlkLXNob3AgLmltYWdlX2NvbnRhaW5lciBhOmZpcnN0LWNoaWxkOmhvdmVyOmFmdGVyIHtcbi8vXHRjb250ZW50IDogbm9uZTtcbi8vfVxuXG4ucGFnZV9jb250ZW50IC5jZV9pbWFnZSBhIHtcblx0ZGlzcGxheSAgOiBibG9jaztcblx0aGVpZ2h0ICAgOiAxMDAlO1xuXHR3aWR0aCAgICA6IDEwMCU7XG5cdHBvc2l0aW9uIDogcmVsYXRpdmU7XG59XG5cbi5wYWdlX2NvbnRlbnQgLmltYWdlX2NvbnRhaW5lciB7XG5cdC8vd2lkdGggICAgOiAxMDAlO1xuXHRkaXNwbGF5ICA6IGJsb2NrO1xuXHRwb3NpdGlvbiA6IHJlbGF0aXZlO1xufVxuXG4ucGFnZV9jb250ZW50IC5pbWFnZV9jb250YWluZXIgYSB7XG5cdHBvc2l0aW9uIDogcmVsYXRpdmU7XG5cdGhlaWdodCAgIDogMTAwJTtcblx0d2lkdGggICAgOiAxMDAlO1xuXHRkaXNwbGF5ICA6IGJsb2NrO1xufVxuXG4ucGFnZV9jb250ZW50IC5pbWFnZV9jb250YWluZXIgYTpiZWZvcmUge1xuXHRjb250ZW50ICAgICAgICAgICAgIDogJyc7XG5cdHBvc2l0aW9uICAgICAgICAgICAgOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvciAgICA6IHJnYmEoJGRhcmstZ3JheSwgMC43KTtcblx0YmFja2dyb3VuZC1pbWFnZSAgICA6IHVybCgnLi4vaW1nL3NpZ25ldC1hdGVsaWVyLWNpbmNpbi13aGl0ZS5zdmcnKTtcblx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IGNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZSAgICAgOiA0MHB4IDQwcHg7XG5cdGJhY2tncm91bmQtcmVwZWF0ICAgOiBuby1yZXBlYXQ7XG5cdHRvcCAgICAgICAgICAgICAgICAgOiAwO1xuXHRsZWZ0ICAgICAgICAgICAgICAgIDogMDtcblx0ei1pbmRleCAgICAgICAgICAgICA6IDE7XG5cdHdpZHRoICAgICAgICAgICAgICAgOiAxMDAlO1xuXHRoZWlnaHQgICAgICAgICAgICAgIDogMTAwJTtcblx0ZGlzcGxheSAgICAgICAgICAgICA6IGJsb2NrO1xuXHRvcGFjaXR5ICAgICAgICAgICAgIDogMDtcblx0dHJhbnNpdGlvbiAgICAgICAgICA6IDAuMnMgb3BhY2l0eSBsaW5lYXI7XG59XG5cbi5wYWdlX2NvbnRlbnQgLmltYWdlX2NvbnRhaW5lciBhOmhvdmVyOmJlZm9yZSB7XG5cdG9wYWNpdHkgOiAxO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIb3ZlciBFZmZla3QgZsO8ciB2ZXJsaW5rdGUgQmlsZGVyIC0gU3RvcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQYWdlIFNpZGViYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBhZ2Vfc2lkZWJhciB7IH1cblxuLnBhZ2Vfc2lkZWJhciAuY2VfaW1hZ2Uge1xuXHRtYXJnaW4tYm90dG9tIDogMXJlbTtcbn1cblxuLnBhZ2Vfc2lkZWJhci1xdWlja25hdmlnYXRpb24geyBtYXJnaW4tYm90dG9tIDogJGdsb2JhbC1tYXJnaW47IH1cblxuLnBhZ2Vfc2lkZWJhci1xdWlja25hdmlnYXRpb24gc2VsZWN0IHsgbWFyZ2luLWJvdHRvbSA6IDA7IH1cblxuLnBhZ2Vfc2lkZWJhci1xdWlja25hdmlnYXRpb24sXG4ucGFnZV9zaWRlYmFyLWJhc2tldC1taW5pIHtcblx0bWFyZ2luLWJvdHRvbSA6ICRnbG9iYWwtbWFyZ2luO1xuXHRAaW5jbHVkZSBzaG93LWZvcihsYXJnZSk7XG59XG5cbi5wYWdlX3NpZGViYXItaXNvdG9wZS1maWx0ZXIsXG4ucGFnZV9zaWRlYmFyLWJhc2tldC1taW5pIHtcblx0cGFkZGluZyAgICA6IHJlbS1jYWxjKDEwKTtcblx0YmFja2dyb3VuZCA6IGRhcmtlbigjZTllN2U4LCA1JSk7XG59XG5cbi5wYWdlX3NpZGViYXItaXNvdG9wZS1maWx0ZXIge1xuXHRtYXJnaW4tYm90dG9tIDogJGdsb2JhbC1tYXJnaW47XG5cdC8vQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHQvL1x0bWFyZ2luLWJvdHRvbSA6IDA7XG5cdC8vfVxufVxuXG4ucGFnZV9zaWRlYmFyLWJhY2tsaW5rIHtcblx0bWFyZ2luLXRvcCAgICA6ICRnbG9iYWwtbWFyZ2luO1xuXHRtYXJnaW4tYm90dG9tIDogJGdsb2JhbC1tYXJnaW47XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW4tYm90dG9tIDogMDtcblx0fVxufVxuXG4ucGFnZV9zaWRlYmFyLWJhY2tsaW5rIC5iYWNrbGluayB7XG5cdGxpbmUtaGVpZ2h0ICAgIDogMTtcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG5cdGxldHRlci1zcGFjaW5nIDogJGxldHRlci1zcGFjaW5nLW1lZGl1bTtcblx0QGluY2x1ZGUgaWNvbihhcnJvdy1sZWZ0NSwgYmVmb3JlKSB7XG5cdFx0Zm9udC1zaXplICAgIDogMThweDtcblx0XHR0b3AgICAgICAgICAgOiAzcHg7XG5cdFx0cG9zaXRpb24gICAgIDogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLXJpZ2h0IDogMDtcblx0fVxufVxuXG4ucGFnZV9zaWRlYmFyLXN1Ym5hdmlnYXRpb24ge1xuXHRtYXJnaW4tdG9wIDogJGdsb2JhbC1tYXJnaW4gKjI7XG5cdC8vcGFkZGluZy10b3AgOiAkZ2xvYmFsLXBhZGRpbmc7XG5cdC8vYm9yZGVyLXRvcCAgOiAxcHggc29saWQgJGJsYWNrO1xuXHRcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdG1hcmdpbi10b3AgOiAwO1xuXHRcdC8vcGFkZGluZy10b3AgOiAwO1xuXHRcdC8vYm9yZGVyLXRvcCAgOiAwO1xuXHR9XG59XG5cbi8vIEJ1dHRvbiBMYXlvdXQgYXVzZ2VsYWdlcnQgbmFjaCAnYnV0dG9uLnNjc3MnXG4ucGFnZV9zaWRlYmFyLXN1Ym5hdmlnYXRpb24gdWwge1xuXHRtYXJnaW4tbGVmdCAgICAgOiAwO1xuXHRsaXN0LXN0eWxlLXR5cGUgOiBub25lO1xufVxuXG4vLy5wYWdlX3NpZGViYXItc3VibmF2aWdhdGlvbiBsaSxcbi8vLnBhZ2Vfc2lkZWJhci1zdWJuYXZpZ2F0aW9uIGEge1xuLy9cdGRpc3BsYXk6IGJsb2NrO1xuLy99XG5cbi5wYWdlX3NpZGViYXItc3VibmF2aWdhdGlvbiBhIHtcblx0QGluY2x1ZGUgYnV0dG9uLWV4cGFuZCh0cnVlKTtcbn1cblxuLm1vZF9icmVhZGNydW1iLFxuLm1vZF9icmVhZGNydW1iIGEge1xuXHR0ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFnZSBGb290ZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBhZ2VfZm9vdGVyIHtcblx0YmFja2dyb3VuZCAgOiBkYXJrZW4oJGxpZ2h0LWdyYXksIDUlKTtcblx0Y29sb3IgICAgICAgOiAkYmxhY2s7XG5cdG1hcmdpbi10b3AgIDogMzBweDtcblx0cGFkZGluZy10b3AgOiAwLjFyZW07XG59XG5cbi5wYWdlX2Zvb3RlciBhIHtcblx0Y29sb3IgOiAkYmxhY2s7XG59XG5cbi5wYWdlX2Zvb3RlciBhOmZvY3VzLFxuLnBhZ2VfZm9vdGVyIGE6aG92ZXIge1xuXHR0ZXh0LWRlY29yYXRpb24gOiB1bmRlcmxpbmU7XG59XG5cbi5wYWdlX2Zvb3RlciBhLmJ1dHRvbjpmb2N1cyxcbi5wYWdlX2Zvb3RlciBhLmJ1dHRvbjpob3ZlciB7XG5cdHRleHQtZGVjb3JhdGlvbiA6IG5vbmU7XG59XG5cbi5wYWdlX2Zvb3RlciAucm93OmZpcnN0LWNoaWxkIHtcblx0bWFyZ2luLXRvcCA6IDMwcHg7XG59XG5cbi5wYWdlX2Zvb3RlciAuY2VfdGV4dCB7XG5cdG1hcmdpbi1ib3R0b20gOiAyMHB4O1xuXHQvL0BpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xufVxuXG4ucGFnZV9mb290ZXIgLmNlX3RleHQ6bnRoLWNoaWxkKDMpIGltZyB7XG5cdG1heC13aWR0aCA6IDUwcHg7XG59XG5cbi5wYWdlX2Zvb3RlciBoMiB7XG5cdHRleHQtdHJhbnNmb3JtIDogdXBwZXJjYXNlO1xuXHRjb2xvciAgICAgICAgICA6IHdoaXRlO1xuXHRwYWRkaW5nLWJvdHRvbSA6IDFyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBhZ2UgVHlwZSBFbGVtZW50c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8gLnBhZ2VfdHlwZS00MDQge31cbi8vIC5wYWdlX3R5cGUtNDAzIHt9XG4vLyAucGFnZV90eXBlLWhvbWUge31cbi8vIC5wYWdlX3R5cGUtbmV3c2xpc3Qge31cbi8vIC5wYWdlX3R5cGUtbmV3c3JlYWRlciB7fVxuLy8gLnBhZ2VfdHlwZS1ldmVudGxpc3Qge31cbi8vIC5wYWdlX3R5cGUtZXZlbnRyZWFkZXIge31cbi8vIC5wYWdlX3R5cGUtc2hvcGxpc3Qge31cbi8vIC5wYWdlX3R5cGUtc2hvcHJlYWRlciB7fVxuLy8gLnBhZ2VfdHlwZS1pbXByaW50IHt9XG4vLyAucGFnZV90eXBlLWNvbnRhY3Qge31cbi8vIC5wYWdlX3R5cGUtcmVxdWVzdC1jb25maXJtYXRpb24ge31cbi8vIC5wYWdlX3R5cGUtdGVzdHBhZ2Uge31cbi8vIC5wYWdlX3R5cGUtbG9va2Jvb2sge31cbi8vIC4uLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb250ZW50IFR5cGUgRWxlbWVudHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8vIC5wYWdlX2NvbnRlbnQtW3h4eF1cblxuLmNvbnRlbnRfdHlwZS1zb2NpYWwgLnNvY2lhbC1saW5rcyB7XG5cdGZsb2F0IDogcmlnaHQ7XG59XG5cbi5jb250ZW50X3R5cGUtc29jaWFsIGEge1xuXHRAaW5jbHVkZSBpY29uKGZhY2Vib29rMiwgYmVmb3JlKTtcblx0Zm9udC1zaXplIDogcmVtLWNhbGMoMjApO1xuXHQmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uIDogbm9uZTtcblx0fVxufVxuXG4uY29udGVudF90eXBlLXNvY2lhbCBhIHNwYW4ge1xuXHR0ZXh0LWluZGVudCA6IC05OTk5cHg7XG5cdGRpc3BsYXkgICAgIDogaW5saW5lLWJsb2NrO1xufVxuXG4uY29udGVudF90eXBlLXNvY2lhbCBhLnBpbnRlcmVzdCB7XG5cdEBpbmNsdWRlIGljb24ocGludGVyZXN0LCBiZWZvcmUpO1xuXHRmb250LXNpemUgOiByZW0tY2FsYygyMik7XG59XG5cbi5jb250ZW50X3R5cGUtc29jaWFsIGEuaW5zdGFncmFtIHtcblx0QGluY2x1ZGUgaWNvbihpbnN0YWdyYW0sIGJlZm9yZSk7XG59XG5cbi5jb250ZW50X3R5cGUtY29weXJpZ2h0IHAge1xuXHRmb250LXNpemUgOiByZW1fY2FsYygxMik7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBOYXZpZ2F0aW9uIC0gRm91bmRhdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubm8tanMge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHQudG9wLWJhciB7XG5cdFx0XHRkaXNwbGF5IDogbm9uZTtcblx0XHR9XG5cdH1cblx0XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0LnRpdGxlLWJhciB7XG5cdFx0XHRkaXNwbGF5IDogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLmxvZ28ge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig0KTtcblx0fVxufVxuXG4ubmF2LXdyYXBwZXIge1xuXHQvL3dpZHRoIDogMTAwJTtcblx0Ly9AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdC8vXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDgpO1xuXHQvL31cbn1cblxuLnRpdGxlLWJhciB7XG5cdHBvc2l0aW9uICAgICAgICAgOiByZWxhdGl2ZTtcblx0ei1pbmRleCAgICAgICAgICA6IDk5OTtcblx0d2lkdGggICAgICAgICAgICA6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3IgOiAkYmxhY2s7XG5cdHBhZGRpbmcgICAgICAgICAgOiAwLjVyZW07XG59XG5cbi50b3AtYmFyIHtcblx0YmFja2dyb3VuZC1jb2xvciA6IHRyYW5zcGFyZW50O1xuXHRwb3NpdGlvbiAgICAgICAgIDogcmVsYXRpdmU7XG5cdHotaW5kZXggICAgICAgICAgOiA5OTk7XG5cdHBhZGRpbmcgICAgICAgICAgOiAwO1xuXHR3aWR0aCAgICAgICAgICAgIDogMTAwJTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdHBhZGRpbmctdG9wIDogMjBweDtcblx0XHRmbG9hdCAgICAgICA6IHJpZ2h0O1xuXHR9XG5cdFxufVxuXG4udGl0bGUtYmFyIC5tZW51LWljb24ge1xuXHRtYXJnaW4gOiAwIGF1dG87XG59XG5cbi5tZW51LWljb246YWZ0ZXIge1xuXHRib3gtc2hhZG93IDogMCA2cHggMCAkd2hpdGUsIDAgMTJweCAwICR3aGl0ZTtcbn1cblxuLm1lbnUtaWNvbjpob3ZlcjphZnRlciB7XG5cdGJveC1zaGFkb3cgOiAwIDZweCAwICR3aGl0ZSwgMCAxMnB4IDAgJHdoaXRlO1xufVxuXG4udG9wLWJhciAudG9wLWJhci1yaWdodCB7XG5cdHdpZHRoIDogMTAwJTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdHBvc2l0aW9uICAgICA6IHJlbGF0aXZlO1xuXHRcdG1hcmdpbi1yaWdodCA6IDIwcHg7XG5cdH1cbn1cblxuLnRvcC1iYXIgYSB7XG5cdGNvbG9yICAgICAgICAgIDogJGJsYWNrO1xuXHR0ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcblx0Ly9sZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nLW1lZGl1bTtcblx0cGFkZGluZyAgICAgICAgOiAwLjdyZW0gMXJlbTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdC8vY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdGZvbnQtc2l6ZSA6IHJlbS1jYWxjKDE0KTtcblx0fVxufVxuXG4udG9wLWJhciBhLmFjdGl2ZSwgLnRvcC1iYXIgYS50cmFpbCB7XG5cdGJhY2tncm91bmQtY29sb3IgOiB0cmFuc3BhcmVudDtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdGNvbG9yIDogJHByaW1hcnktY29sb3I7XG5cdH1cblx0XG59XG5cbi50b3AtYmFyIC5tZW51Lm5lc3RlZCB7XG5cdGJhY2tncm91bmQgIDogJGJsYWNrO1xuXHRtYXJnaW4tbGVmdCA6IDA7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRib3gtc2hhZG93IDogMnB4IDJweCA3cHggMCByZ2JhKCRibGFjaywgMC4yKTtcblx0XHRiYWNrZ3JvdW5kIDogJGRhcmstZ3JheTtcblx0fVxufVxuXG4udG9wLWJhciB1bCB7XG5cdFxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0ZmxvYXQgOiByaWdodDtcblx0fVxufVxuXG4udG9wLWJhciB1bCB1bCBhIHtcblx0Y29sb3IgICAgICAgICAgOiAkd2hpdGU7XG5cdHRleHQtdHJhbnNmb3JtIDogbm9uZTtcblx0bGV0dGVyLXNwYWNpbmcgOiAkbGV0dGVyLXNwYWNpbmctc21hbGw7XG5cdHBhZGRpbmcgICAgICAgIDogMC43cmVtIDFyZW07XG5cdGJvcmRlci1ib3R0b20gIDogMXB4IHNvbGlkIHJnYmEoJHdoaXRlLCAwLjA1KTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdGJvcmRlci1ib3R0b20gOiAwcHggc29saWQgcmdiYSgkd2hpdGUsIDAuMDUpO1xuXHR9XG59XG5cbi50b3AtYmFyIHVsIHVsIGEuYWN0aXZlLFxuLnRvcC1iYXIgdWwgdWwgYS50cmFpbCB7XG5cdGJhY2tncm91bmQtY29sb3IgOiBkYXJrZW4oJGRhcmstZ3JheSwgMTAlKTtcblx0Y29sb3IgICAgICAgICAgICA6ICR3aGl0ZTtcbn1cblxuLnRvcC1iYXIgdWwgdWwgYTpob3Zlcixcbi50b3AtYmFyIHVsIHVsIGE6Zm9jdXMge1xuXHRcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdGJhY2tncm91bmQtY29sb3IgOiBkYXJrZW4oJGRhcmstZ3JheSwgNTAlKTtcblx0fVxufVxuXG4udG9wLWJhciB1bC52ZXJ0aWNhbC5kcm9wZG93biB7XG5cdGJhY2tncm91bmQgOiB0cmFuc3BhcmVudDtcbn1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXHRtaW4td2lkdGggOiAyNzBweDtcblx0Ym9yZGVyICAgIDogMDtcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwuZHJvcGRvd24gPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6YWZ0ZXIsXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTphZnRlciB7XG5cdGJvcmRlci1jb2xvciA6ICR3aGl0ZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyICAgICAgIDogMCBzb2xpZDtcbn1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwuZHJvcGRvd24gPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6YWZ0ZXIsXG4uaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTphZnRlciB7XG5cdEBpbmNsdWRlIGljb24oYXJyb3ctZG93bjIpO1xuXHRjb2xvciAgICAgIDogJHdoaXRlO1xuXHRmb250LXNpemUgIDogLjVyZW07XG5cdHJpZ2h0ICAgICAgOiAxMHB4O1xuXHRtYXJnaW4tdG9wIDogMnB4O1xuXHRwb3NpdGlvbiAgIDogYWJzb2x1dGU7XG5cdHdpZHRoICAgICAgOiA4cHg7XG5cdGhlaWdodCAgICAgOiA4cHg7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRjb2xvciA6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdHRvcCAgIDogMTFweDtcblx0XHRyaWdodCA6IDhweDtcblx0XHR3aWR0aCA6IDhweDtcblx0fVxufVxuXG4udG9wLWJhciAuYWNjb3JkaW9uLW1lbnUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yIDogZGFya2VuKCRkYXJrLWdyYXksIDgwJSk7XG5cdGNvbG9yICAgICAgICAgICAgOiAkd2hpdGU7XG59XG5cbi50b3AtYmFyIC5hY2NvcmRpb24tbWVudSBsaSBhIHtcblx0Y29sb3IgOiAkd2hpdGU7XG59XG5cbi50b3AtYmFyIC5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtaXRlbSBhIHtcblx0cGFkZGluZy1sZWZ0IDogMjVweDtcbn1cblxuXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJc290b3BlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbltjbGFzcyo9XCJtb2RfaXNvXCJdIC5jbGVhciB7XG5cdGRpc3BsYXkgICAgOiBub25lICFpbXBvcnRhbnQ7XG5cdHZpc2liaWxpdHkgOiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLy8gQnV0dG9uIExheW91dCBhdXNnZWxhZ2VydCBuYWNoICdidXR0b24uc2NzcydcbltjbGFzcyo9XCJtb2RfaXNvXCJdIC5yZXZpZXcgYS5lZGl0IHtcblx0ZmxvYXQgICAgOiByaWdodDtcblx0b3ZlcmZsb3cgOiBoaWRkZW47XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFByb2R1a3QgLSBMaXN0ZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubW9kX2lzb19wcm9kdWN0bGlzdCBpbWcge1xuXHQvL2JhY2tncm91bmQgOiAjNTM1MTUyOyAvLyBURU1QIEF1cyBMYXlvdXQgVm9ybGFnZSBleHRyYWhpZXJ0LCBkYSBCaWxkZXIgaW0gT3JpZ2luYWwga2VpbmVuIEhpbnRlcmdydW5kIGhhYmVuXG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RsaXN0IC5pbWFnZV9jb250YWluZXIge1xuXHR0ZXh0LWFsaWduIDogY2VudGVyO1xufVxuXG4vL1RPRE8tUEY6IEFic3RhbmQgYmVzc2VyIGdsb2JhbCBhbiAncGFnZV9jb250ZW50JyAoTGF5b3V0KSB2ZXJnZWJlblxuLm1vZF9pc29fcHJvZHVjdGxpc3QgLmVtcHR5Lm1lc3NhZ2Uge1xuXHRtYXJnaW4tdG9wIDogJGdsb2JhbC1tYXJnaW47XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRtYXJnaW4tdG9wIDogMDtcblx0fVxufVxuXG4ucHJvZHVjdF9saXN0IC5wcm9kdWN0IGgzLFxuLnByb2R1Y3RfbGlzdCAucHJvZHVjdCAuc2t1LFxuLnByb2R1Y3RfbGlzdCAucHJvZHVjdCAuZGV0YWlscyB7XG5cdC8vZGlzcGxheSAgICA6IG5vbmUgIWltcG9ydGFudDtcblx0Ly92aXNpYmlsaXR5IDogaGlkZGVuICFpbXBvcnRhbnQ7XG5cdC8vQGluY2x1ZGUgaGlkZS1mb3Ioc21hbGwpOyAvLyBGUyA+IE51ciBEaXNwbGF5IE5vbmUsIGtlaW4gVmlzaWJpbGl0eSBIaWRkZW4/IVxufVxuXG4ucHJvZHVjdF9saXN0IC5wcm9kdWN0IGgzIHtcbn1cblxuLnByb2R1Y3RfbGlzdCB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cdC8vbWF4LXdpZHRoIDogbm9uZTtcblx0Ly9AaW5jbHVkZSBncmlkLXJlbW92ZS1yb3ctbWFyZ2luO1xufVxuXG4ucHJvZHVjdF9saXN0IC5wcm9kdWN0IHtcblx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcblx0bWFyZ2luLWJvdHRvbSA6IG1hcC1nZXQoJGdyaWQtY29sdW1uLWd1dHRlciwgc21hbGwpKzE3O1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMyk7XG5cdFx0bWFyZ2luLWJvdHRvbSA6IG1hcC1nZXQoJGdyaWQtY29sdW1uLWd1dHRlciwgbWVkaXVtKSsxNztcblx0fVxuXHRcblx0Ly8gVE9ETyBQRiBUTVAvQ0hFQ0tcblx0Ly9AaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdC8vXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDMpO1xuXHQvL31cblx0XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuXHRcdC8vQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigyKTtcblx0fVxuXHRcbn1cblxuLnByb2R1Y3RfbGlzdC5zaW1pbGFyX3Byb2R1Y3RzIHtcblx0bWFyZ2luLXRvcCAgOiAzcmVtO1xuXHRwYWRkaW5nLXRvcCA6IDNyZW07XG5cdGJvcmRlci10b3AgIDogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbn1cblxuLnByb2R1Y3RfbGlzdC5zaW1pbGFyX3Byb2R1Y3RzIC5wcm9kdWN0IHtcblx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcblx0bWFyZ2luLWJvdHRvbSA6IG1hcC1nZXQoJGdyaWQtY29sdW1uLWd1dHRlciwgc21hbGwpKzE3O1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMik7XG5cdFx0bWFyZ2luLWJvdHRvbSA6IG1hcC1nZXQoJGdyaWQtY29sdW1uLWd1dHRlciwgbWVkaXVtKSsxNztcblx0fVxuXHRtYXJnaW4tdG9wICAgIDogMnJlbTtcbn1cblxuLnByb2R1Y3RfbGlzdCAuZm9ybWJvZHkgeyBwb3NpdGlvbiA6IHJlbGF0aXZlOyB9XG5cbi5wcm9kdWN0X2xpc3QgLmltYWdlX2NvbnRhaW5lciB7XG5cdGJhY2tncm91bmQgOiAkd2hpdGU7XG59XG5cbi5wcm9kdWN0X2xpc3QgLmltYWdlX2NvbnRhaW5lciBpbWcge1xuXHR3aWR0aCA6IDEwMCU7XG59XG5cbi5wcm9kdWN0X2xpc3QgLnByaWNlIHtcblx0ei1pbmRleCA6IDI7XG5cdC8vcG9zaXRpb24gICA6IGFic29sdXRlO1xuXHQvL2xlZnQgICAgICAgOiAwO1xuXHQvL2JvdHRvbSAgICAgOiByZW0tY2FsYygtMTcpO1xuXHQvL3BhZGRpbmcgICAgOiByZW0tY2FsYyg1KTtcblx0Ly9mb250LXNpemUgIDogcmVtLWNhbGMoMTYpO1xuXHQvL2NvbG9yICAgICAgOiAkd2hpdGU7XG5cdC8vYmFja2dyb3VuZCA6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG4ucHJvZHVjdF9saXN0IC5kZXRhaWxzIHtcblx0ZGlzcGxheSAgICA6IG5vbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eSA6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ucHJvZHVjdF9saXN0IC5wcm9wZXJ0eV9zdGF0dXMtbmV3IHtcblx0ei1pbmRleCAgOiAyO1xuXHRwb3NpdGlvbiA6IGFic29sdXRlO1xuXHR0b3AgICAgICA6IDA7XG5cdHJpZ2h0ICAgIDogMDtcblx0XG5cdC8vQGluY2x1ZGUgaWNvbihuZXcsIGJlZm9yZSkge1xuXHQvL1x0Y29sb3IgICAgICAgIDogJHdoaXRlO1xuXHQvL1x0bWFyZ2luLXJpZ2h0IDogNXB4O1xuXHQvL1x0Zm9udC1zaXplICAgIDogMzJweDtcblx0Ly99XG59XG5cbi5wcm9kdWN0X2xpc3QgLnByb3BlcnR5X3N0YXR1cy1uZXc6YmVmb3JlIHtcblx0ei1pbmRleCAgICAgICAgICA6IDI7XG5cdHBvc2l0aW9uICAgICAgICAgOiBhYnNvbHV0ZTtcblx0Y29udGVudCAgICAgICAgICA6ICdORVUnO1xuXHR0b3AgICAgICAgICAgICAgIDogMDtcblx0cmlnaHQgICAgICAgICAgICA6IDAuNWVtO1xuXHRmb250LWZhbWlseSAgICAgIDogJGJvZHktZm9udC1mYW1pbHkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvciA6ICRwcmltYXJ5LWNvbG9yO1xuXHRmb250LXNpemUgICAgICAgIDogcmVtLWNhbGMoMTgpO1xuXHRwYWRkaW5nICAgICAgICAgIDogNHB4O1xuXHRwYWRkaW5nLXRvcCAgICAgIDogNnB4O1xuXHRjb2xvciAgICAgICAgICAgIDogJHdoaXRlO1xuXHRsaW5lLWhlaWdodCAgICAgIDogMTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy5wcm9kdWN0X2xpc3QgZm9ybSxcbi8vLnByb2R1Y3RfbGlzdCAuaXNvX2xpc3Qtd3JhcHBlci1vdXRzaWRlIHtcbi8vXHRAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuLy9cdGhlaWdodCA6IDEwMCU7IC8vIFRPRE8gRnVua3Rpb25pZXJ0IG5pY2h0IGluIFNhZmFyaSEgU2llaGU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc3MzAgKGdnZi4gYXVjaCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDQxKVxuLy9cbi8vXHRmbGV4LWJhc2lzOiBhdXRvO1xuLy99XG4vL1xuLy8ucHJvZHVjdF9saXN0IC5mb3JtYm9keSxcbi8vLnByb2R1Y3RfbGlzdCAuaXNvX2xpc3Qtd3JhcHBlci1pbWFnZSxcbi8vLnByb2R1Y3RfbGlzdCAuaXNvX2xpc3Qtd3JhcHBlci1wcmljZSB7XG4vL1x0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG4vL1x0cGFkZGluZy1sZWZ0ICA6IDA7XG4vL1x0cGFkZGluZy1yaWdodCA6IDA7XG4vL1x0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbi8vXHRcdHBhZGRpbmctbGVmdCAgOiAwO1xuLy9cdFx0cGFkZGluZy1yaWdodCA6IDA7XG4vL1x0fVxuLy99XG4vL1xuLy8ucHJvZHVjdF9saXN0IC5mb3JtYm9keSB7XG4vL1x0YmFja2dyb3VuZCA6ICM1MzUxNTI7XG4vL31cbi8vXG4vLy5wcm9kdWN0X2xpc3QgLmlzb19saXN0LXdyYXBwZXItaW1hZ2Uge1xuLy9cdEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihib3R0b20pO1xuLy99XG4vL1xuLy8ucHJvZHVjdF9saXN0IC5pc29fbGlzdC13cmFwcGVyLXByaWNlIHtcbi8vXHQvL0BpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihib3R0b20pO1xuLy99XG5cbi8vLnByb2R1Y3RfbGlzdCAuaW1hZ2VfY29udGFpbmVyIHtcbi8vXHRwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcbi8vXHR0b3AgICAgICAgICAgICAgOiAwO1xuLy9cdGxlZnQgICAgICAgICAgICA6IDA7XG4vL1x0cmlnaHQgICAgICAgICAgIDogMDtcbi8vXHRib3R0b20gICAgICAgICAgOiAwO1xuLy9cdC8vb3ZlcmZsb3cgICAgICAgIDogaGlkZGVuO1xuLy9cdGhlaWdodCAgICAgICAgICAgICAgICAgICAgICA6IDEwMCU7XG4vL1x0d2lkdGggICAgICAgICAgICAgICAgICAgICAgIDogMTAwJTtcbi8vfVxuLy8ucHJvZHVjdF9saXN0IGltZyB7XG4vL1x0cG9zaXRpb24gICAgICAgICAgOiByZWxhdGl2ZTtcbi8vXHR0b3AgICAgICAgICAgICAgICA6IDUwJTtcbi8vXHR0ZXh0LWFsaWduICAgICAgICA6IGNlbnRlcjtcbi8vXHQtd2Via2l0LXRyYW5zZm9ybSA6IHRyYW5zbGF0ZVkoLTUwJSk7XG4vL1x0LW1vei10cmFuc2Zvcm0gICAgOiB0cmFuc2xhdGVZKC01MCUpO1xuLy9cdC1tcy10cmFuc2Zvcm0gICAgIDogdHJhbnNsYXRlWSgtNTAlKTtcbi8vXHQtby10cmFuc2Zvcm0gICAgICA6IHRyYW5zbGF0ZVkoLTUwJSk7XG4vL1x0dHJhbnNmb3JtICAgICAgICAgOiB0cmFuc2xhdGVZKC01MCUpO1xuLy99XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFByb2R1a3QgLSBGaWx0ZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuY29sdW1uX2ZpbHRlciB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHhzbWFsbCkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDMpO1xuXHR9XG59XG5cbi8vLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuY29sdW1uX3NvcnQge1xuLy9cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuLy9cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeHNtYWxsKSB7XG4vL1x0XHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xuLy9cdH1cbi8vXHRAaW5jbHVkZSBicmVha3BvaW50KDc1MCkge1xuLy9cdFx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigzKTtcbi8vXHR9XG4vL31cbi8vXG4vLy5tb2RfaXNvX3Byb2R1Y3RmaWx0ZXIgLmNvbHVtbl9zZWFyY2gge1xuLy9cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuLy9cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeHNtYWxsKSB7XG4vL1x0XHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xuLy9cdH1cbi8vXHRAaW5jbHVkZSBicmVha3BvaW50KDc1MCkge1xuLy9cdFx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbig2KTtcbi8vXHR9XG4vL31cblxuLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuY29sdW1uX2NsZWFyIHtcblx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoNzUwKSB7XG5cdFx0QGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigzKTtcblx0fVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9kdWt0IC0gRmlsdGVyIC0gU3VjaGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuc2VhcmNoIHsgcG9zaXRpb24gOiByZWxhdGl2ZTsgfVxuXG4ubW9kX2lzb19wcm9kdWN0ZmlsdGVyIC5zZWFyY2ggbGFiZWwge1xuXHRkaXNwbGF5ICAgIDogbm9uZTtcblx0dmlzaWJpbGl0eSA6IGhpZGRlbjtcbn1cblxuLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuc2VhcmNoIC5hd2Vzb21wbGV0ZSB7XG5cdGRpc3BsYXkgOiBibG9jaztcblx0d2lkdGggICA6IDEwMCU7XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RmaWx0ZXIgLnNlYXJjaCBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG5cdHBhZGRpbmctcmlnaHQgOiA1MHB4O1xuXHRwYWRkaW5nLWxlZnQgIDogMTVweDtcbn1cblxuLm1vZF9pc29fcHJvZHVjdGZpbHRlciAuc2VhcmNoIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHRwb3NpdGlvbiAgICAgICAgOiBhYnNvbHV0ZTtcblx0dG9wICAgICAgICAgICAgIDogMDtcblx0cmlnaHQgICAgICAgICAgIDogMDtcblx0d2lkdGggICAgICAgICAgIDogNDBweDtcblx0aGVpZ2h0ICAgICAgICAgIDogMi40Mzc1cmVtO1xuXHRtYXJnaW4gICAgICAgICAgOiAwO1xuXHRiYWNrZ3JvdW5kICAgICAgOiAkcHJpbWFyeS1jb2xvciB1cmwoXCIuLi9pbWcvaWNvbi1zZWFyY2guc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZSA6IDIwcHggMjBweDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvZHVrdCAtIExlc2VyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgaW1nIHtcblx0YmFja2dyb3VuZCA6ICM1MzUxNTI7XG59XG5cbi5wcm9kdWN0X2luZm9ybWF0aW9uIC5uYW1lLFxuXHQvLy5wcm9kdWN0X2luZm9ybWF0aW9uIC5vcHRpb25zIGxhYmVsLFxuLnByb2R1Y3RfaW5mb3JtYXRpb24gLnF1YW50aXR5X2NvbnRhaW5lciBsYWJlbCB7XG5cdGRpc3BsYXkgICAgOiBub25lICFpbXBvcnRhbnQ7XG5cdHZpc2liaWxpdHkgOiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAuZm9ybWJvZHkge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXHRtYXgtd2lkdGggOiBub25lO1xuXHRAaW5jbHVkZSBncmlkLXJlbW92ZS1yb3ctbWFyZ2luO1xufVxuXG4ucHJvZHVjdF9nYWxsZXJ5LFxuLnByb2R1Y3RfaW5mb3JtYXRpb24ge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh4c21hbGwpIHtcblx0XHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDYpO1xuXHR9XG59XG5cbi5wcm9kdWN0X2dhbGxlcnktdGh1bWJuYWlscyB7XG5cdG1hcmdpbi10b3AgOiAkZ2xvYmFsLW1hcmdpbjtcblx0QGluY2x1ZGUgZmxleC1ncmlkLXJvdztcblx0bWF4LXdpZHRoICA6IG5vbmU7XG5cdEBpbmNsdWRlIGdyaWQtcmVtb3ZlLXJvdy1tYXJnaW47XG59XG5cbi5wcm9kdWN0X2dhbGxlcnktdGh1bWJuYWlscyBmaWd1cmUge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDQpO1xufVxuXG4vL1RPRE8tUEY6IE1vZGFsIChGb3VuZGF0aW9uPyEpIEVpbmJpbmR1bmdcbi5wcm9kdWN0X3NoaXBwaW5nLWluZm9ybWF0aW9uIHsgfVxuXG4ucHJvZHVjdF9kZWxpdmVyeS1pbmZvcm1hdGlvbiB7IH1cblxuLnByb2R1Y3RfaW5mb3JtYXRpb24gLnByb2R1Y3RfY2F0ZWdvcnkge1xuXHRmb250LXNpemUgICAgICA6IHJlbS1jYWxjKDIwKTsgLy8gVE9ETy1QRjogTXVzcyBub2NoIHNhdWJlciBhbmdlcGFzc3Qgd2VyZGVuXG5cdG1hcmdpbi10b3AgICAgIDogJGdsb2JhbC1tYXJnaW47XG5cdHRleHQtdHJhbnNmb3JtIDogdXBwZXJjYXNlO1xuXHRtYXJnaW4tYm90dG9tICA6IDA7XG5cdGZvbnQtd2VpZ2h0ICAgIDogJGZvbnQtd2VpZ2h0LTA7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeHNtYWxsKSB7XG5cdFx0bWFyZ2luLXRvcCA6IDA7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRmb250LXNpemUgOiByZW0tY2FsYygyMik7IC8vIFRPRE8tUEY6IE11c3Mgbm9jaCBzYXViZXIgYW5nZXBhc3N0IHdlcmRlblxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRmb250LXNpemUgOiByZW0tY2FsYygyNik7IC8vIFRPRE8tUEY6IE11c3Mgbm9jaCBzYXViZXIgYW5nZXBhc3N0IHdlcmRlblxuXHR9XG59XG5cbi5wcm9kdWN0X2luZm9ybWF0aW9uIC5za3Uge1xuXHRtYXJnaW4tYm90dG9tICA6ICRnbG9iYWwtbWFyZ2luO1xuXHR0ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcblx0bGV0dGVyLXNwYWNpbmcgOiAkbGV0dGVyLXNwYWNpbmctbWVkaXVtO1xufVxuXG4ucHJvZHVjdF9pbmZvcm1hdGlvbiAucHJpY2Uge1xuXHRtYXJnaW4tYm90dG9tIDogMDtcblx0Zm9udC1zaXplICAgICA6IHJlbS1jYWxjKDE4KTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRmb250LXNpemUgOiByZW0tY2FsYygyNCk7XG5cdH1cbn1cblxuLnByb2R1Y3RfYWRkaXRpb25hbC1pbmZvcm1hdGlvbiB7XG5cdGZvbnQtc2l6ZSAgICAgOiByZW0tY2FsYygxMik7XG5cdG1hcmdpbi1ib3R0b20gOiAkbWFyZ2luLW1lZGl1bTtcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAucXVhbnRpdHlfY29udGFpbmVyIHtcblx0Ly9kaXNwbGF5ICAgICAgOiBpbmxpbmUtYmxvY2s7XG5cdGZsb2F0ICAgICAgICA6IGxlZnQ7XG5cdHdpZHRoICAgICAgICA6IDQwcHg7XG5cdG1hcmdpbi1yaWdodCA6IDEwcHg7XG59XG5cbi5wcm9kdWN0X2luZm9ybWF0aW9uIC5xdWFudGl0eV9jb250YWluZXIgaW5wdXQge1xuXHR0ZXh0LWFsaWduIDogY2VudGVyO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5zdWJtaXQge1xuXHRkaXNwbGF5ICAgIDogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tdG9wIDogMDtcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAucHJvZHVjdF9wcm9wZXJ0aWVzIHtcblx0bWFyZ2luLXRvcCA6ICRnbG9iYWwtbWFyZ2luO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5wcm9wZXJ0eV9maW5pc2ggdWwge1xuXHRkaXNwbGF5ICAgICAgICAgOiBpbmxpbmU7XG5cdG1hcmdpbi1sZWZ0ICAgICA6IDA7XG5cdGxpc3Qtc3R5bGUtdHlwZSA6IG5vbmU7XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLnByb3BlcnR5X2ZpbmlzaCBsaSB7XG5cdGRpc3BsYXkgOiBpbmxpbmU7XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLnByb2R1Y3RfaW5mb3JtYXRpb24tcmluZy1tZWFzdXJlIHtcblx0Ly9tYXJnaW4tdG9wIDogJGdsb2JhbC1tYXJnaW47XG5cdFxufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5wcm9kdWN0X2luZm9ybWF0aW9uLXJpbmctbWVhc3VyZSBwIHtcblx0Zm9udC1zaXplIDogcmVtLWNhbGMoMTIpO1xuXHQvL0BpbmNsdWRlIGljb24oaW5mbzIsIGJlZm9yZSkge1xuXHQvL1x0bWFyZ2luLXJpZ2h0IDogNXB4O1xuXHQvL1x0Zm9udC1zaXplICAgIDogMTZweDtcblx0Ly99XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLnByb2R1Y3RfaW5mb3JtYXRpb24tcmluZy1tZWFzdXJlIGEge1xuXHRwYWRkaW5nLWJvdHRvbSA6IDFweDtcblx0Ym9yZGVyLWJvdHRvbSAgOiAxcHggc29saWQgIzIzMjMyMztcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAucHJvZHVjdF9pbmZvcm1hdGlvbi1kZWxpdmVyeSB7XG5cdGZvbnQtc2l6ZSAgOiByZW0tY2FsYygxNCk7XG5cdG1hcmdpbi10b3AgOiAkZ2xvYmFsLW1hcmdpbjtcbn1cblxuLy8ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5wcm9wZXJ0eV9zdGF0dXMtbmV3IHtcbi8vXHRtYXJnaW4gOiAtMTBweCAwO1xuLy9cdEBpbmNsdWRlIGljb24obmV3LCBiZWZvcmUpIHtcbi8vXHRcdG1hcmdpbi1yaWdodCA6IDVweDtcbi8vXHRcdGZvbnQtc2l6ZSAgICA6IDMycHg7XG4vL1x0fVxuLy99XG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLnByb3BlcnR5X3N0YXR1cy1uZXc6YmVmb3JlIHtcblx0ei1pbmRleCAgICAgICAgICA6IDI7XG5cdHBvc2l0aW9uICAgICAgICAgOiByZWxhdGl2ZTtcblx0Y29udGVudCAgICAgICAgICA6ICdORVUnO1xuXHR0b3AgICAgICAgICAgICAgIDogLTEwcHg7XG5cdHJpZ2h0ICAgICAgICAgICAgOiAwO1xuXHRmb250LWZhbWlseSAgICAgIDogJGJvZHktZm9udC1mYW1pbHkgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvciA6ICRwcmltYXJ5LWNvbG9yO1xuXHRmb250LXNpemUgICAgICAgIDogcmVtLWNhbGMoMTgpO1xuXHRwYWRkaW5nICAgICAgICAgIDogNHB4O1xuXHRjb2xvciAgICAgICAgICAgIDogJHdoaXRlO1xuXHRsaW5lLWhlaWdodCAgICAgIDogMTtcbn1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAucHJvcGVydHlfc3RhdHVzLW9yZGVyZWQge1xuXHRtYXJnaW4tdG9wIDogJGdsb2JhbC1tYXJnaW47XG59XG5cbi5tb2RfaXNvX3Byb2R1Y3RyZWFkZXIgLnByb3BlcnR5X3N0YXR1cy1vcmRlcmVkIHNwYW4ge1xuXHRAaW5jbHVkZSBpY29uKHdhcm5pbmcyLCBiZWZvcmUpIHtcblx0XHRtYXJnaW4tcmlnaHQgOiA1cHg7XG5cdFx0Zm9udC1zaXplICAgIDogMTRweDtcblx0fVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBXYXJlbmtvcmJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQmFza2V0IC0gTWF4aVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8ucGFnZV9jb250ZW50LWJhc2tldC1tYXhpIHt9XG4vLy5iYXNrZXQtbWF4aV9jb250ZW50IHt9XG4vLy5iYXNrZXQtbWF4aV9zdW1tYXJ5IHt9XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1heGkgdGFibGUge1xuXHR3aWR0aCAgICAgICAgOiAxMDAlO1xuXHR0YWJsZS1sYXlvdXQgOiBmaXhlZDtcbn1cblxuLmJhc2tldC1tYXhpX2NvbnRlbnQgdHIge1xuXHRib3JkZXItYm90dG9tIDogMXB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xufVxuXG4uYmFza2V0LW1heGlfY29udGVudCB0ZC5yZW1vdmUsXG4uYmFza2V0LW1heGlfc3VtbWFyeSB0ZC5yZW1vdmUsXG4uYmFza2V0LW1heGlfc3VtbWFyeSB0ZC5jb2xfMCxcbi5iYXNrZXQtbWF4aV9zdW1tYXJ5IHRkLmNvbF8zIHtcblx0ZGlzcGxheSAgICA6IG5vbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eSA6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uYmFza2V0LW1heGlfY29udGVudCAuaW1hZ2Uge1xuXHRkaXNwbGF5ICAgICAgICA6IG5vbmU7XG5cdHZpc2liaWxpdHkgICAgIDogaGlkZGVuO1xuXHRwYWRkaW5nLXRvcCAgICA6IDVweDtcblx0cGFkZGluZy1ib3R0b20gOiA1cHg7XG5cdHBhZGRpbmctcmlnaHQgIDogMTVweDtcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh4c21hbGwpIHtcblx0XHRkaXNwbGF5ICAgIDogYmxvY2s7XG5cdFx0dmlzaWJpbGl0eSA6IHZpc2libGU7XG5cdFx0d2lkdGggICAgICA6IDUwcHg7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHR3aWR0aCA6IDEwMHB4O1xuXHR9XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IC5yZW1vdmUgYSB7XG5cdEBpbmNsdWRlIGljb24oY2FuY2VsLXNxdWFyZTIsIGJlZm9yZSk7XG5cdGZsb2F0IDogcmlnaHQ7XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IC5uYW1lIHtcblx0d2lkdGggICAgICAgOiAxMDAlO1xuXHRmb250LXNpemUgICA6IHJlbV9jYWxjKDE0KSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5ICAgICA6IGJsb2NrO1xuXHRwYWRkaW5nICAgICA6IDAuMjVlbSAwLjVlbSAwLjI1ZW0gMDtcblx0Zm9udC13ZWlnaHQgOiAkZm9udC13ZWlnaHQtMztcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh4c21hbGwpIHtcblx0XHRkaXNwbGF5ICAgICAgOiB0YWJsZS1jZWxsO1xuXHRcdHBhZGRpbmctbGVmdCA6IDUwcHg7XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRwYWRkaW5nLWxlZnQgOiAxMDBweDtcblx0fVxufVxuXG4vLyBBdHRyaWJ1dGUgLSBTdGFydFxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLm5hbWUgdWwge1xuXHRtYXJnaW4tbGVmdCAgICAgOiAwO1xuXHRsaXN0LXN0eWxlLXR5cGUgOiBub25lO1xufVxuXG4uYmFza2V0LW1heGlfY29udGVudCAubmFtZSB1bCBzdHJvbmcge1xuXHRmb250LXdlaWdodCA6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbn1cblxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLm5hbWUgYSxcbi5iYXNrZXQtbWF4aV9jb250ZW50IC5uYW1lIHVsIGxpIHAge1xuXHRmb250LXNpemUgOiByZW1fY2FsYygxNCkgIWltcG9ydGFudDtcbn1cblxuLy8gQXR0cmlidXRlIC0gU3RvcFxuXG4uYmFza2V0LW1heGlfY29udGVudCAucXVhbnRpdHkge1xuXHRkaXNwbGF5IDogaW5saW5lLWJsb2NrO1xuXHR3aWR0aCAgIDogMjAlO1xuXHRwYWRkaW5nIDogMC4yNWVtIDAuNWVtIDAuMjVlbSAwO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHhzbWFsbCkge1xuXHRcdGRpc3BsYXkgICAgICA6IHRhYmxlLWNlbGw7XG5cdFx0d2lkdGggICAgICAgIDogcmVtLWNhbGMoNDIpO1xuXHRcdHBhZGRpbmctbGVmdCA6IDAuNWVtO1xuXHR9XG59XG5cbi5iYXNrZXQtbWF4aV9jb250ZW50IC5xdWFudGl0eSBpbnB1dCB7XG5cdHdpZHRoICAgICAgOiByZW0tY2FsYyg0MCk7XG5cdGhlaWdodCAgICAgOiByZW0tY2FsYygyMik7XG5cdG1hcmdpbiAgICAgOiAwO1xuXHRwYWRkaW5nICAgIDogMDtcblx0dGV4dC1hbGlnbiA6IGNlbnRlcjtcbn1cblxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLnByaWNlLFxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLnByaWNlLnRvdGFsIHtcblx0ZGlzcGxheSAgICA6IGlubGluZS1ibG9jaztcblx0d2lkdGggICAgICA6IDQwJTtcblx0dGV4dC1hbGlnbiA6IHJpZ2h0O1xuXHRwYWRkaW5nICAgIDogMC4yNWVtO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHhzbWFsbCkge1xuXHRcdGRpc3BsYXkgOiB0YWJsZS1jZWxsO1xuXHRcdHdpZHRoICAgOiByZW0tY2FsYygxMjApO1xuXHRcdHBhZGRpbmcgOiAwLjI1ZW0gMC41ZW07XG5cdH1cbn1cblxuLmJhc2tldC1tYXhpX2NvbnRlbnQgLnByaWNlLnRvdGFsIHtcblx0cGFkZGluZy1yaWdodCA6IDA7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJhc2tldC1tYXhpX3N1bW1hcnkgLm5hbWUge1xuXHR0ZXh0LWFsaWduIDogcmlnaHQ7XG59XG5cbi5iYXNrZXQtbWF4aV9zdW1tYXJ5IC5wcmljZS50b3RhbCB7XG5cdHdpZHRoICAgICAgOiByZW0tY2FsYygxMjApO1xuXHRwYWRkaW5nICAgIDogMC4yNWVtIDAuNWVtO1xuXHR0ZXh0LWFsaWduIDogcmlnaHQ7XG59XG5cbi5iYXNrZXQtbWF4aV9zdW1tYXJ5IC5wcmljZS50b3RhbCB7XG5cdHBhZGRpbmctcmlnaHQgOiAwO1xufVxuXG4uYmFza2V0LW1heGlfc3VtbWFyeSAudG90YWwgLm5hbWUsXG4uYmFza2V0LW1heGlfc3VtbWFyeSAudG90YWwgLnByaWNlIHsgZm9udC13ZWlnaHQgOiAkZm9udC13ZWlnaHQtMzsgfVxuXG4ubW9kX2lzb19jYXJ0IC5jb3Vwb24ge1xuXHRtYXJnaW4tdG9wIDogJGdsb2JhbC1tYXJnaW47XG59XG5cbi5tb2RfaXNvX2NhcnQgLmNvdXBvbiBpbnB1dCB7XG5cdG1heC13aWR0aCA6IDIwMHB4O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCYXNrZXQgLSBNaW5pXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucGFnZV9jb250ZW50LWJhc2tldC1taW5pIC5jb3Vwb24ge1xuXHRkaXNwbGF5ICAgIDogbm9uZSAhaW1wb3J0YW50O1xuXHR2aXNpYmlsaXR5IDogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgaDIge1xuXHRtYXJnaW4tYm90dG9tICA6ICRnbG9iYWwtbWFyZ2luO1xuXHRsaW5lLWhlaWdodCAgICA6IDE7XG5cdGZvbnQtc2l6ZSAgICAgIDogcmVtLWNhbGMoMTUpO1xuXHRmb250LXdlaWdodCAgICA6ICRmb250LXdlaWdodC0xO1xuXHRsZXR0ZXItc3BhY2luZyA6ICRsZXR0ZXItc3BhY2luZy1tZWRpdW07XG5cdHRleHQtdHJhbnNmb3JtIDogdXBwZXJjYXNlO1xuXHRAaW5jbHVkZSBpY29uKGNhcnQ1LCBiZWZvcmUpIHtcblx0XHRmb250LXNpemUgOiAxNnB4O1xuXHR9XG59XG5cbi5wYWdlX3R5cGUtc2hvcHJlYWRlciAucGFnZV9jb250ZW50LWJhc2tldC1taW5pIGgyIHtcblx0Ly9tYXJnaW4tdG9wIDogJGdsb2JhbC1tYXJnaW47XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLnByb2R1Y3Qge1xuXHRtYXJnaW4tYm90dG9tICA6IHJlbS1jYWxjKDUpO1xuXHRwYWRkaW5nLWJvdHRvbSA6IDAuNWVtO1xuXHRib3JkZXItYm90dG9tICA6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAubmFtZSB7XG5cdGZvbnQtd2VpZ2h0IDogJGZvbnQtd2VpZ2h0LTM7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLnJlbW92ZSB7IGZsb2F0IDogcmlnaHQ7IG92ZXJmbG93IDogaGlkZGVuOyB9XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLnJlbW92ZSBhIHtcblx0QGluY2x1ZGUgaWNvbihjYW5jZWwtc3F1YXJlMiwgYWZ0ZXIpO1xufVxuXG4ucGFnZV9jb250ZW50LWJhc2tldC1taW5pIC5wcmljZSB7XG5cdHRleHQtYWxpZ24gOiByaWdodDtcbn1cblxuLnBhZ2VfY29udGVudC1iYXNrZXQtbWluaSAuaW5mbyB1bCB7XG5cdG1hcmdpbi1sZWZ0ICAgICA6IDA7XG5cdGxpc3Qtc3R5bGUtdHlwZSA6IG5vbmU7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLmluZm8gdWwgc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQgOiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG59XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLnN1YnRvdGFsIHsgdGV4dC1hbGlnbiA6IHJpZ2h0OyB9XG5cbi5wYWdlX2NvbnRlbnQtYmFza2V0LW1pbmkgLmNvdXBvbiBoMiB7XG5cdG1hcmdpbi1ib3R0b20gIDogJGdsb2JhbC1tYXJnaW47XG5cdGxpbmUtaGVpZ2h0ICAgIDogMTtcblx0Zm9udC1zaXplICAgICAgOiByZW0tY2FsYygxNSk7XG5cdGZvbnQtd2VpZ2h0ICAgIDogJGZvbnQtd2VpZ2h0LTE7XG5cdGxldHRlci1zcGFjaW5nIDogJGxldHRlci1zcGFjaW5nLW1lZGl1bTtcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG5cdEBpbmNsdWRlIGljb24ocHJpY2UtdGFnNCwgYmVmb3JlKSB7XG5cdFx0Zm9udC1zaXplIDogMTZweDtcblx0fVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVja291dCAtIFN0ZXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrb3V0IC0gQWRyZXNzZW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVE9ETy1QRjogTMO2c3VuZyBmaW5kZW4hXG4vLyBGdW5rdGlvbmllcnQgbnVyIGJlaSAnYmlsbGluZ2FkcmVzcycgbmljaHQgYmVpICdzaGlwcGluZ2FkZHJlc3MnXG4vLyBVcnNhY2hlIGxpZWd0IGluICdpc290b3BlLmpzJyBaZWlsZSA1NyAnVG9nZ2xlIEFkcmVzcyBGaWVsZHMnXG4ubW9kX2lzb19jaGVja291dCAuYWRkcmVzc19uZXcge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXHRtYXgtd2lkdGggOiBub25lO1xuXHRAaW5jbHVkZSBncmlkLXJlbW92ZS1yb3ctbWFyZ2luO1xufVxuXG4ubW9kX2lzb19jaGVja291dCAuYWRkcmVzc19uZXcgLndpZGdldCB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5hZGRyZXNzX25ldyAud2lkZ2V0Om50aC1jaGlsZCgxKSxcbi5tb2RfaXNvX2NoZWNrb3V0IC5hZGRyZXNzX25ldyAud2lkZ2V0Om50aC1jaGlsZCgxMCkge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbn1cblxuLm1vZF9pc29fY2hlY2tvdXQgLnNoaXBwaW5nYWRkcmVzcyB7XG5cdG1hcmdpbi10b3AgIDogJGdsb2JhbC1tYXJnaW47XG5cdHBhZGRpbmctdG9wIDogJGdsb2JhbC1wYWRkaW5nO1xuXHRib3JkZXItdG9wICA6IDFweCBzb2xpZCAkYmxhY2s7XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5zaGlwcGluZ2FkZHJlc3MgLndpZGdldC1yYWRpbyBzcGFuIHtcblx0ZGlzcGxheSA6IGJsb2NrO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVja291dCAtIFZlcnNhbmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1vZF9pc29fY2hlY2tvdXQgLnNoaXBwaW5nbWV0aG9kIC53aWRnZXQtcmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdIGxhYmVsIHtcblx0Ly9kaXNwbGF5ICAgIDogbm9uZTtcblx0Ly92aXNpYmlsaXR5IDogaGlkZGVuO1xuXHRkaXNwbGF5IDogYmxvY2s7XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5zaGlwcGluZ21ldGhvZCAud2lkZ2V0LXJhZGlvIC5yYWRpb19jb250YWluZXIgPiBzcGFuIHtcblx0ZGlzcGxheSA6IGJsb2NrO1xufVxuXG4ubW9kX2lzb19jaGVja291dCAuc2hpcHBpbmdtZXRob2QgLndpZGdldC1yYWRpbyA+ICoge1xuXHRkaXNwbGF5IDogaW5saW5lO1xufVxuXG4ubW9kX2lzb19jaGVja291dCAuc2hpcHBpbmdtZXRob2QgLndpZGdldC1yYWRpbyBsYWJlbCB7XG5cdG1hcmdpbiA6IDA7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrb3V0IC0gWmFobHVuZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubW9kX2lzb19jaGVja291dCAucGF5bWVudG1ldGhvZCAucmFkaW9fY29udGFpbmVyIHNwYW4ge1xuXHRkaXNwbGF5IDogYmxvY2s7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrb3V0IC0gw5xiZXJzaWNodCArIE9yZGVyIERldGFpbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1vZF9pc29fY2hlY2tvdXQgLm9yZGVyaW5mbyAuaW5mb19jb250YWluZXI6Zmlyc3Qtb2YtdHlwZSxcbi5tb2RfaXNvX29yZGVyZGV0YWlscyAuaW5mb19jb250YWluZXI6Zmlyc3Qtb2YtdHlwZSB7XG5cdG1hcmdpbi10b3AgIDogJGdsb2JhbC1tYXJnaW47XG5cdHBhZGRpbmctdG9wIDogJGdsb2JhbC1wYWRkaW5nO1xuXHRib3JkZXItdG9wICA6IDFweCBzb2xpZCAkYmxhY2s7XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5vcmRlcmluZm8gLmluZm9fY29udGFpbmVyLFxuLm1vZF9pc29fb3JkZXJkZXRhaWxzIC5pbmZvX2NvbnRhaW5lciB7XG5cdG1hcmdpbi1ib3R0b20gIDogJGdsb2JhbC1tYXJnaW47XG5cdHBhZGRpbmctYm90dG9tIDogJGdsb2JhbC1wYWRkaW5nO1xuXHRib3JkZXItYm90dG9tICA6IDFweCBzb2xpZCAkYmxhY2s7XG59XG5cbi5tb2RfaXNvX2NoZWNrb3V0IC5vcmRlcmluZm8gLmluZm9fY29udGFpbmVyLmxhc3QsXG4ubW9kX2lzb19vcmRlcmRldGFpbHMgLmluZm9fY29udGFpbmVyLmxhc3Qge1xuXHRtYXJnaW4tYm90dG9tIDogMDtcbn1cblxuLm1vZF9pc29fY2hlY2tvdXQgLm9yZGVyaW5mbyAuaW5mb19jb250YWluZXIuc2hpcHBpbmdfbWV0aG9kIGEuZWRpdCB7XG5cdGRpc3BsYXkgICAgOiBub25lO1xuXHR2aXNpYmlsaXR5IDogaGlkZGVuO1xufVxuXG4ubW9kX2lzb19jaGVja291dCAub3JkZXJjb25kaXRpb25zYWZ0ZXJwcm9kdWN0cyB7XG5cdC8vbWFyZ2luLXRvcCAgOiAkZ2xvYmFsLW1hcmdpbjtcblx0cGFkZGluZy10b3AgOiAkZ2xvYmFsLXBhZGRpbmc7XG5cdGJvcmRlci10b3AgIDogMXB4IHNvbGlkICRibGFjaztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubW9kX2lzb19vcmRlcmRldGFpbHMgaDIge1xuXHRmb250LXNpemUgOiByZW0tY2FsYygxOCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEFkcmVzc2J1Y2hcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQmVzdGVsbCBIaXN0b3JpZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubW9kX2lzb19vcmRlcmhpc3RvcnkgdGFibGUge1xuXHR3aWR0aCAgICAgIDogMTAwJTtcblx0dGV4dC1hbGlnbiA6IGxlZnQ7XG59XG5cbi5tb2RfaXNvX29yZGVyaGlzdG9yeSB0ciB7IGJvcmRlci1ib3R0b20gOiAxcHggc29saWQgJGJsYWNrOyB9XG5cbi5tb2RfaXNvX29yZGVyaGlzdG9yeSB0ZCB7IHBhZGRpbmcgOiAxMHB4IDA7IH1cblxuLm1vZF9pc29fb3JkZXJoaXN0b3J5IHRoOm50aC1jaGlsZCgyKSxcbi5tb2RfaXNvX29yZGVyaGlzdG9yeSB0ZDpudGgtY2hpbGQoMikge1xuXHRwYWRkaW5nLWxlZnQgIDogNXB4O1xuXHRwYWRkaW5nLXJpZ2h0IDogNXB4O1xufVxuXG4vL1xuXG4ubW9kX2lzb19vcmRlcmhpc3RvcnkgLm9kZXJfc3RhdHVzIHsgdGV4dC1hbGlnbiA6IHJpZ2h0OyB9XG5cbi8vLm1vZF9pc29fb3JkZXJoaXN0b3J5IC5vZGVyX3N0YXR1cyB7IHdpZHRoIDogMTAwJTsgfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNb290b29scyBPdmVybGF5IG1pdCBJc290b3BlIE1lbGR1bmdlblxuLy8gbW9kdWxlcy9pc290b3BlL2Fzc2V0cy9jc3MvaXNvdG9wZS5jc3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuI2lzb19hamF4Qm94IHtcblx0d2lkdGggICAgICA6IDgwJTtcblx0cGFkZGluZyAgICA6IDIwcHg7XG5cdHBvc2l0aW9uICAgOiBhYnNvbHV0ZTtcblx0dG9wICAgICAgICA6IDIwcHg7XG5cdGxlZnQgICAgICAgOiAxMCU7XG5cdGJvcmRlciAgICAgOiAxcHggc29saWQgIzAwMDAwMDtcblx0LypcdGZvbnQtZmFtaWx5OlwiVHJlYnVjaGV0IE1TXCIsVmVyZGFuYSxzYW5zLXNlcmlmO1xuXHRcdGZvbnQtc2l6ZToxNXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxOHB4OyovXG5cdHRleHQtYWxpZ24gOiBjZW50ZXI7XG5cdGNvbG9yICAgICAgOiAjMDAwMDAwO1xuXHR6LWluZGV4ICAgIDogOTk5OTtcbn1cblxuI2lzb19hamF4Qm94LmJ0bkNsb3NlIHtcblx0YmFja2dyb3VuZC1pbWFnZSA6IG5vbmU7XG5cdGN1cnNvciAgICAgICAgICAgOiBwb2ludGVyO1xufVxuXG4jaXNvX2FqYXhCb3ggcCB7XG5cdG1hcmdpbiAgOiAxZW0gMDtcblx0cGFkZGluZyA6IDA7XG59XG5cbiNpc29fYWpheEJveCAuaXNvX2Vycm9yIHtcblx0cGFkZGluZy1sZWZ0IDogMDtcblx0YmFja2dyb3VuZCAgIDogdHJhbnNwYXJlbnQ7XG5cdC8qXHRwYWRkaW5nLWxlZnQ6IDM0cHg7XG5cdFx0YmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2Nyb3NzLTI0LnBuZ1wiKSBsZWZ0IGNlbnRlciBuby1yZXBlYXQ7Ki9cbn1cblxuI2lzb19hamF4Qm94IC5pc29fY29uZmlybSB7XG5cdHBhZGRpbmctbGVmdCA6IDA7XG5cdGJhY2tncm91bmQgICA6IHRyYW5zcGFyZW50O1xuXHQvKlx0cGFkZGluZy1sZWZ0OiAzNHB4O1xuXHRcdGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy90aWNrLTI0LnBuZ1wiKSBsZWZ0IGNlbnRlciBuby1yZXBlYXQ7Ki9cbn1cblxuI2lzb19hamF4Qm94IC5pc29faW5mbyB7XG5cdHBhZGRpbmctbGVmdCA6IDA7XG5cdGJhY2tncm91bmQgICA6IHRyYW5zcGFyZW50O1xuXHQvKlx0cGFkZGluZy1sZWZ0OiAzNHB4O1xuXHRcdGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9pbmZvcm1hdGlvbi0yNC5wbmdcIikgbGVmdCBjZW50ZXIgbm8tcmVwZWF0OyovXG59XG5cbiNpc29fYWpheE92ZXJsYXkge1xuXHR3aWR0aCAgICAgIDogMTAwJTtcblx0aGVpZ2h0ICAgICA6IDEwMCU7XG5cdHBvc2l0aW9uICAgOiBmaXhlZDtcblx0dG9wICAgICAgICA6IDA7XG5cdGxlZnQgICAgICAgOiAwO1xuXHRiYWNrZ3JvdW5kIDogcmdiYSgzNCwgMzQsIDM0LCAwLjg1KTtcblx0ei1pbmRleCAgICA6IDk5OTg7XG5cdC8qXHRiYWNrZ3JvdW5kLWNvbG9yIDogIzAwMDAwMDtcblx0XHQtbW96LW9wYWNpdHkgICAgIDogMC41O1xuXHRcdG9wYWNpdHkgICAgICAgICAgOiAwLjU7XG5cdFx0X2Rpc3BsYXkgICAgICAgICA6IG5vbmU7XG5cdFx0ZmlsdGVyICAgICAgICAgICA6IEFscGhhKG9wYWNpdHk9NTApOyovXG59XG5cbi8vIE9yaWdpbmFsIENTUyB2b24gSXNvdG9wZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyNpc29fYWpheEJveCB7XG4vL1x0d2lkdGg6MjAlO1xuLy9cdHBhZGRpbmc6OXB4IDUwcHggOXB4IDI0cHg7XG4vL1x0cG9zaXRpb246YWJzb2x1dGU7XG4vL1x0dG9wOjMwcHg7XG4vL1x0bGVmdDo0MCU7XG4vL1x0YmFja2dyb3VuZDojZmZmIHVybChcIi4uLy4uLy4uLy4uL3RoZW1lcy9kZWZhdWx0L2ltYWdlcy9sb2FkaW5nLmdpZlwiKSBuby1yZXBlYXQgcmlnaHQgY2VudGVyO1xuLy9cdGJvcmRlcjoycHggc29saWQgIzAwMDtcbi8vXHRmb250LWZhbWlseTpcIlRyZWJ1Y2hldCBNU1wiLFZlcmRhbmEsc2Fucy1zZXJpZjtcbi8vXHRmb250LXNpemU6MTVweDtcbi8vXHRsaW5lLWhlaWdodDogMThweDtcbi8vXHR0ZXh0LWFsaWduOmxlZnQ7XG4vL1x0Y29sb3I6IzAwMDtcbi8vXHR6LWluZGV4OiA5OTk5O1xuLy99XG4vL1xuLy8jaXNvX2FqYXhCb3guYnRuQ2xvc2Uge1xuLy9cdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4vL1x0Y3Vyc29yOiBwb2ludGVyO1xuLy99XG4vL1xuLy8jaXNvX2FqYXhCb3ggcCB7XG4vL1x0bWFyZ2luOjFlbSAwO1xuLy9cdHBhZGRpbmc6MDtcbi8vfVxuLy9cbi8vI2lzb19hamF4Qm94IC5pc29fZXJyb3Ige1xuLy9cdHBhZGRpbmctbGVmdDogMzRweDtcbi8vXHRiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvY3Jvc3MtMjQucG5nXCIpIGxlZnQgY2VudGVyIG5vLXJlcGVhdDtcbi8vfVxuLy9cbi8vI2lzb19hamF4Qm94IC5pc29fY29uZmlybSB7XG4vL1x0cGFkZGluZy1sZWZ0OiAzNHB4O1xuLy9cdGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy90aWNrLTI0LnBuZ1wiKSBsZWZ0IGNlbnRlciBuby1yZXBlYXQ7XG4vL31cbi8vXG4vLyNpc29fYWpheEJveCAuaXNvX2luZm8ge1xuLy9cdHBhZGRpbmctbGVmdDogMzRweDtcbi8vXHRiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvaW5mb3JtYXRpb24tMjQucG5nXCIpIGxlZnQgY2VudGVyIG5vLXJlcGVhdDtcbi8vfVxuLy9cbi8vI2lzb19hamF4T3ZlcmxheSB7XG4vL1x0d2lkdGg6MTAwJTtcbi8vXHRoZWlnaHQ6MTAwJTtcbi8vXHRwb3NpdGlvbjpmaXhlZDtcbi8vXHR0b3A6MDtcbi8vXHRsZWZ0OjA7XG4vL1x0YmFja2dyb3VuZC1jb2xvcjojMDAwO1xuLy9cdHotaW5kZXg6IDk5OTg7XG4vL1x0LW1vei1vcGFjaXR5OjAuNTtcbi8vXHRvcGFjaXR5OjAuNTtcbi8vXHRfZGlzcGxheTpub25lO1xuLy9cdGZpbHRlcjpBbHBoYShvcGFjaXR5PTUwKTtcbi8vfVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGFnaW5hdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ucGFnaW5hdGlvbiB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3coKTtcbn1cblxuLnBhZ2luYXRpb24gdWwge1xuXHR0ZXh0LWFsaWduICA6IHJpZ2h0O1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcblx0bWFyZ2luLWxlZnQgOiAwO1xufVxuXG4ucGFnaW5hdGlvbiBwLFxuLnBhZ2luYXRpb24gdWwgbGkubmV4dCxcbi5wYWdpbmF0aW9uIHVsIGxpLmxhc3QsXG4ucGFnaW5hdGlvbiB1bCBsaS5maXJzdCxcbi5wYWdpbmF0aW9uIHVsIGxpLnByZXZpb3VzIHsgZGlzcGxheSA6IG5vbmUgIWltcG9ydGFudDsgdmlzaWJpbGl0eSA6IGhpZGRlbjsgfVxuXG4ucGFnaW5hdGlvbiB1bCB7IGRpc3BsYXkgOiBpbmxpbmUtYmxvY2s7IH1cblxuLnBhZ2luYXRpb24gbGkgeyBkaXNwbGF5IDogaW5saW5lLWJsb2NrOyBtYXJnaW4tbGVmdCA6IDVweDsgfVxuXG4ucGFnaW5hdGlvbiBsaTpmaXJzdC1jaGlsZCB7IG1hcmdpbi1sZWZ0IDogMDsgfVxuXG4ucGFnaW5hdGlvbiBsaSBhLFxuLnBhZ2luYXRpb24gbGkgc3BhbiB7IGJvcmRlciA6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjsgcGFkZGluZyA6IDVweCAxMHB4OyB9XG5cbi5wYWdpbmF0aW9uIGxpIGEgeyB0ZXh0LWRlY29yYXRpb24gOiBub25lOyB9XG5cbi5wYWdpbmF0aW9uIGxpIHNwYW4geyBjb2xvciA6ICR3aGl0ZTsgYmFja2dyb3VuZCA6ICRwcmltYXJ5LWNvbG9yOyB9XG5cbi5wYWdpbmF0aW9uIGxpIGE6aG92ZXIsXG4ucGFnaW5hdGlvbiBsaSBhOmZvY3VzIHsgY29sb3IgOiAkd2hpdGU7IGJhY2tncm91bmQgOiAkc2Vjb25kYXJ5LWNvbG9yOyB9XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCcmVhZGNydW1icyBNdWx0aSBTdGVwIEluZGljYXRvclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8gTGluazogaHR0cHM6Ly9jb2R5aG91c2UuY28vZ2VtL2Nzcy1icmVhZGNydW1icy1hbmQtbXVsdGktc3RlcC1pbmRpY2F0b3IvXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFRPRE8tUEY6IE51ciBydWRpbWVudMOkciBiZWFyYmVpdGV0LiBLZWluZSBJY29ucy8gR3JhZmlrZW4gZGVmaW5pZXJ0XG5cbi5zdGVwcyBvbCB7XG5cdG1hcmdpbi1sZWZ0ICAgIDogMDtcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG59XG5cbi5zdGVwcyAudGV4dC1jZW50ZXIge1xuXHR0ZXh0LWFsaWduIDogbGVmdDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkJhc2ljIFN0eWxlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNkLWJyZWFkY3J1bWIsXG4uY2QtbXVsdGktc3RlcHMge1xuXHR3aWR0aCA6IDEwMCU7XG59XG5cbi5jZC1icmVhZGNydW1iOmFmdGVyLFxuLmNkLW11bHRpLXN0ZXBzOmFmdGVyIHtcblx0Y29udGVudCA6IFwiXCI7XG5cdGRpc3BsYXkgOiB0YWJsZTtcblx0Y2xlYXIgICA6IGJvdGg7XG59XG5cbi5jZC1icmVhZGNydW1iIGxpLFxuLmNkLW11bHRpLXN0ZXBzIGxpIHtcblx0ZGlzcGxheSA6IGlubGluZS1ibG9jaztcblx0ZmxvYXQgICA6IGxlZnQ7XG5cdG1hcmdpbiAgOiAwLjVlbSAwO1xufVxuXG4uY2QtYnJlYWRjcnVtYiBsaTo6YWZ0ZXIsXG4uY2QtbXVsdGktc3RlcHMgbGk6OmFmdGVyIHtcblx0LyogdGhpcyBpcyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gaXRlbXMgKi9cblx0ZGlzcGxheSA6IGlubGluZS1ibG9jaztcblx0Y29udGVudCA6ICdcXDAwYmInO1xuXHRtYXJnaW4gIDogMCAuNmVtO1xuXHRjb2xvciAgIDogIzk1OWZhNTtcbn1cblxuLmNkLWJyZWFkY3J1bWIgbGk6bGFzdC1vZi10eXBlOjphZnRlcixcbi5jZC1tdWx0aS1zdGVwcyBsaTpsYXN0LW9mLXR5cGU6OmFmdGVyIHtcblx0LyogaGlkZSBzZXBhcmF0b3IgYWZ0ZXIgdGhlIGxhc3QgaXRlbSAqL1xuXHRkaXNwbGF5IDogbm9uZTtcbn1cblxuLmNkLWJyZWFkY3J1bWIgbGkgPiAqLFxuLmNkLW11bHRpLXN0ZXBzIGxpID4gKiB7XG5cdC8qIHNpbmdsZSBzdGVwICovXG5cdGRpc3BsYXkgOiBpbmxpbmUtYmxvY2s7XG5cdGNvbG9yICAgOiAjMmMzZjRjO1xufVxuXG4uY2QtYnJlYWRjcnVtYiBsaS5jdXJyZW50ID4gKixcbi5jZC1tdWx0aS1zdGVwcyBsaS5jdXJyZW50ID4gKiB7XG5cdC8qIHNlbGVjdGVkIHN0ZXAgKi9cblx0Y29sb3IgICAgICAgOiAkcHJpbWFyeS1jb2xvcjtcblx0Zm9udC13ZWlnaHQgOiAkZm9udC13ZWlnaHQtMjtcbn1cblxuLm5vLXRvdWNoIC5jZC1icmVhZGNydW1iIGE6aG92ZXIsXG4ubm8tdG91Y2ggLmNkLW11bHRpLXN0ZXBzIGE6aG92ZXIge1xuXHQvKiBzdGVwcyBhbHJlYWR5IHZpc2l0ZWQgKi9cblx0Y29sb3IgOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxuLmNkLWJyZWFkY3J1bWIuY3VzdG9tLXNlcGFyYXRvciBsaTo6YWZ0ZXIsXG4uY2QtbXVsdGktc3RlcHMuY3VzdG9tLXNlcGFyYXRvciBsaTo6YWZ0ZXIge1xuXHQvKiByZXBsYWNlIHRoZSBkZWZhdWx0IGFycm93IHNlcGFyYXRvciB3aXRoIGEgY3VzdG9tIGljb24gKi9cblx0Y29udGVudCAgICAgICAgOiAnJztcblx0aGVpZ2h0ICAgICAgICAgOiAxNnB4O1xuXHR3aWR0aCAgICAgICAgICA6IDE2cHg7XG5cdGJhY2tncm91bmQgICAgIDogdXJsKC4uL2ltZy9jZC1jdXN0b20tc2VwYXJhdG9yLnN2Zykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduIDogbWlkZGxlO1xufVxuXG4uY2QtYnJlYWRjcnVtYi5jdXN0b20taWNvbnMgbGkgPiAqOjpiZWZvcmUsXG4uY2QtbXVsdGktc3RlcHMuY3VzdG9tLWljb25zIGxpID4gKjo6YmVmb3JlIHtcblx0LyogYWRkIGEgY3VzdG9tIGljb24gYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRjb250ZW50ICAgICAgICA6ICcnO1xuXHRkaXNwbGF5ICAgICAgICA6IGlubGluZS1ibG9jaztcblx0aGVpZ2h0ICAgICAgICAgOiAyMHB4O1xuXHR3aWR0aCAgICAgICAgICA6IDIwcHg7XG5cdG1hcmdpbi1yaWdodCAgIDogLjRlbTtcblx0bWFyZ2luLXRvcCAgICAgOiAtMnB4O1xuXHRiYWNrZ3JvdW5kICAgICA6IHVybCguLi9pbWcvY2QtY3VzdG9tLWljb25zLTAxLnN2Zykgbm8tcmVwZWF0IDAgMDtcblx0dmVydGljYWwtYWxpZ24gOiBtaWRkbGU7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaTpub3QoLmN1cnJlbnQpOm50aC1vZi10eXBlKDIpID4gKjo6YmVmb3JlLFxuLmNkLW11bHRpLXN0ZXBzLmN1c3RvbS1pY29ucyBsaTpub3QoLmN1cnJlbnQpOm50aC1vZi10eXBlKDIpID4gKjo6YmVmb3JlIHtcblx0LyogY2hhbmdlIGN1c3RvbSBpY29uIHVzaW5nIGltYWdlIHNwcml0ZXMgKi9cblx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IC0yMHB4IDA7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaTpub3QoLmN1cnJlbnQpOm50aC1vZi10eXBlKDMpID4gKjo6YmVmb3JlLFxuLmNkLW11bHRpLXN0ZXBzLmN1c3RvbS1pY29ucyBsaTpub3QoLmN1cnJlbnQpOm50aC1vZi10eXBlKDMpID4gKjo6YmVmb3JlIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IC00MHB4IDA7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaTpub3QoLmN1cnJlbnQpOm50aC1vZi10eXBlKDQpID4gKjo6YmVmb3JlLFxuLmNkLW11bHRpLXN0ZXBzLmN1c3RvbS1pY29ucyBsaTpub3QoLmN1cnJlbnQpOm50aC1vZi10eXBlKDQpID4gKjo6YmVmb3JlIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IC02MHB4IDA7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50OmZpcnN0LW9mLXR5cGUgPiAqOjpiZWZvcmUsXG4uY2QtbXVsdGktc3RlcHMuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6Zmlyc3Qtb2YtdHlwZSA+ICo6OmJlZm9yZSB7XG5cdC8qIGNoYW5nZSBjdXN0b20gaWNvbiBmb3IgdGhlIGN1cnJlbnQgaXRlbSAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uIDogMCAtMjBweDtcbn1cblxuLmNkLWJyZWFkY3J1bWIuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6bnRoLW9mLXR5cGUoMikgPiAqOjpiZWZvcmUsXG4uY2QtbXVsdGktc3RlcHMuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6bnRoLW9mLXR5cGUoMikgPiAqOjpiZWZvcmUge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uIDogLTIwcHggLTIwcHg7XG59XG5cbi5jZC1icmVhZGNydW1iLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDMpID4gKjo6YmVmb3JlLFxuLmNkLW11bHRpLXN0ZXBzLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDMpID4gKjo6YmVmb3JlIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IC00MHB4IC0yMHB4O1xufVxuXG4uY2QtYnJlYWRjcnVtYi5jdXN0b20taWNvbnMgbGkuY3VycmVudDpudGgtb2YtdHlwZSg0KSA+ICo6OmJlZm9yZSxcbi5jZC1tdWx0aS1zdGVwcy5jdXN0b20taWNvbnMgbGkuY3VycmVudDpudGgtb2YtdHlwZSg0KSA+ICo6OmJlZm9yZSB7XG5cdGJhY2tncm91bmQtcG9zaXRpb24gOiAtNjBweCAtMjBweDtcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCg2NzApIHtcblx0LmNkLWJyZWFkY3J1bWIsIC5jZC1tdWx0aS1zdGVwcyB7XG5cdFx0cGFkZGluZyA6IDAgMS4yZW07XG5cdH1cblx0LmNkLWJyZWFkY3J1bWIgbGksIC5jZC1tdWx0aS1zdGVwcyBsaSB7XG5cdFx0bWFyZ2luIDogMS4yZW0gMDtcblx0fVxuXHQuY2QtYnJlYWRjcnVtYiBsaTo6YWZ0ZXIsIC5jZC1tdWx0aS1zdGVwcyBsaTo6YWZ0ZXIge1xuXHRcdG1hcmdpbiA6IDAgMWVtO1xuXHR9XG5cdC5jZC1icmVhZGNydW1iIGxpID4gKiwgLmNkLW11bHRpLXN0ZXBzIGxpID4gKiB7XG5cdFx0Ly9mb250LXNpemU6IDEuNnJlbTtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuVHJpYW5nbGUgYnJlYWRjcnVtYlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbmNsdWRlIGJyZWFrcG9pbnQoNjcwKSB7XG5cdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIHtcblx0XHQvKiByZXNldCBiYXNpYyBzdHlsZSAqL1xuXHRcdGJhY2tncm91bmQtY29sb3IgOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nICAgICAgICAgIDogMDtcblx0fVxuXHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaSB7XG5cdFx0cG9zaXRpb24gOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nICA6IDA7XG5cdFx0bWFyZ2luICAgOiA0cHggNHB4IDRweCAwO1xuXHR9XG5cdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpOmxhc3Qtb2YtdHlwZSB7XG5cdFx0bWFyZ2luLXJpZ2h0IDogMDtcblx0fVxuXHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaSA+ICoge1xuXHRcdHBvc2l0aW9uICAgICAgICAgOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nICAgICAgICAgIDogMWVtIC44ZW0gMWVtIDIuNWVtO1xuXHRcdGNvbG9yICAgICAgICAgICAgOiAjMmMzZjRjO1xuXHRcdGJhY2tncm91bmQtY29sb3IgOiAjZWRlZmYwO1xuXHRcdC8qIHRoZSBib3JkZXIgY29sb3IgaXMgdXNlZCB0byBzdHlsZSBpdHMgOjphZnRlciBwc2V1ZG8tZWxlbWVudCAqL1xuXHRcdGJvcmRlci1jb2xvciAgICAgOiAjZWRlZmYwO1xuXHR9XG5cdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpLmN1cnJlbnQgPiAqIHtcblx0XHQvKiBzZWxlY3RlZCBzdGVwICovXG5cdFx0Y29sb3IgICAgICAgICAgICA6ICNmZmZmZmY7XG5cdFx0YmFja2dyb3VuZC1jb2xvciA6ICM5NmMwM2Q7XG5cdFx0Ym9yZGVyLWNvbG9yICAgICA6ICM5NmMwM2Q7XG5cdH1cblx0LmNkLWJyZWFkY3J1bWIudHJpYW5nbGUgbGk6Zmlyc3Qtb2YtdHlwZSA+ICoge1xuXHRcdHBhZGRpbmctbGVmdCAgOiAxLjZlbTtcblx0XHRib3JkZXItcmFkaXVzIDogLjI1ZW0gMCAwIC4yNWVtO1xuXHR9XG5cdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpOmxhc3Qtb2YtdHlwZSA+ICoge1xuXHRcdHBhZGRpbmctcmlnaHQgOiAxLjZlbTtcblx0XHRib3JkZXItcmFkaXVzIDogMCAuMjVlbSAuMjVlbSAwO1xuXHR9XG5cdC5uby10b3VjaCAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBhOmhvdmVyIHtcblx0XHQvKiBzdGVwcyBhbHJlYWR5IHZpc2l0ZWQgKi9cblx0XHRjb2xvciAgICAgICAgICAgIDogI2ZmZmZmZjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yIDogIzJjM2Y0Yztcblx0XHRib3JkZXItY29sb3IgICAgIDogIzJjM2Y0Yztcblx0fVxuXHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaTo6YWZ0ZXIsXG5cdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpID4gKjo6YWZ0ZXIge1xuXHRcdC8qXG5cdFx0XHRsaSA+ICo6OmFmdGVyIGlzIHRoZSBjb2xvcmVkIHRyaWFuZ2xlIGFmdGVyIGVhY2ggaXRlbVxuXHRcdFx0bGk6OmFmdGVyIGlzIHRoZSB3aGl0ZSBzZXBhcmF0b3IgYmV0d2VlbiB0d28gaXRlbXNcblx0XHQqL1xuXHRcdGNvbnRlbnQgICAgICAgICAgICA6ICcnO1xuXHRcdHBvc2l0aW9uICAgICAgICAgICA6IGFic29sdXRlO1xuXHRcdHRvcCAgICAgICAgICAgICAgICA6IDA7XG5cdFx0bGVmdCAgICAgICAgICAgICAgIDogMTAwJTtcblx0XHRjb250ZW50ICAgICAgICAgICAgOiAnJztcblx0XHRoZWlnaHQgICAgICAgICAgICAgOiAwO1xuXHRcdHdpZHRoICAgICAgICAgICAgICA6IDA7XG5cdFx0LyogNDhweCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSA8YT4gZWxlbWVudCAqL1xuXHRcdGJvcmRlciAgICAgICAgICAgICA6IDI0cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXJpZ2h0LXdpZHRoIDogMDtcblx0XHRib3JkZXItbGVmdC13aWR0aCAgOiAyMHB4O1xuXHR9XG5cdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpOjphZnRlciB7XG5cdFx0LyogdGhpcyBpcyB0aGUgd2hpdGUgc2VwYXJhdG9yIGJldHdlZW4gdHdvIGl0ZW1zICovXG5cdFx0ei1pbmRleCAgICAgICAgICAgOiAxO1xuXHRcdHRyYW5zZm9ybSAgICAgICAgIDogdHJhbnNsYXRlWCg0cHgpO1xuXHRcdGJvcmRlci1sZWZ0LWNvbG9yIDogI2ZmZmZmZjtcblx0XHQvKiByZXNldCBzdHlsZSAqL1xuXHRcdG1hcmdpbiAgICAgICAgICAgIDogMDtcblx0fVxuXHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaSA+ICo6OmFmdGVyIHtcblx0XHQvKiB0aGlzIGlzIHRoZSBjb2xvcmVkIHRyaWFuZ2xlIGFmdGVyIGVhY2ggZWxlbWVudCAqL1xuXHRcdHotaW5kZXggICAgICAgICAgIDogMjtcblx0XHRib3JkZXItbGVmdC1jb2xvciA6IGluaGVyaXQ7XG5cdH1cblx0LmNkLWJyZWFkY3J1bWIudHJpYW5nbGUgbGk6bGFzdC1vZi10eXBlOjphZnRlcixcblx0LmNkLWJyZWFkY3J1bWIudHJpYW5nbGUgbGk6bGFzdC1vZi10eXBlID4gKjo6YWZ0ZXIge1xuXHRcdC8qIGhpZGUgdGhlIHRyaWFuZ2xlIGFmdGVyIHRoZSBsYXN0IHN0ZXAgKi9cblx0XHRkaXNwbGF5IDogbm9uZTtcblx0fVxuXHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20tc2VwYXJhdG9yIGxpOjphZnRlciB7XG5cdFx0LyogcmVzZXQgc3R5bGUgKi9cblx0XHRiYWNrZ3JvdW5kLWltYWdlIDogbm9uZTtcblx0fVxuXHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGk6OmFmdGVyLFxuXHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGkgPiAqOjphZnRlciB7XG5cdFx0LyogNTBweCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSA8YT4gZWxlbWVudCAqL1xuXHRcdGJvcmRlci10b3Atd2lkdGggICAgOiAyNXB4O1xuXHRcdGJvcmRlci1ib3R0b20td2lkdGggOiAyNXB4O1xuXHR9XG5cdFxuXHRALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuXHRcdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlIGxpOjphZnRlcixcblx0XHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZSBsaSA+ICo6OmFmdGVyIHtcblx0XHRcdC8qIGZpeCBhIGJ1ZyBvbiBGaXJlZml4IC0gdG9vdGggZWRnZSBvbiBjc3MgdHJpYW5nbGUgKi9cblx0XHRcdGJvcmRlci1sZWZ0LXN0eWxlIDogZGFzaGVkO1xuXHRcdH1cblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQ3VzdG9tIGljb25zIGhvdmVyIGVmZmVjdHMgLSBicmVhZGNydW1iIGFuZCBtdWx0aS1zdGVwc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbmNsdWRlIGJyZWFrcG9pbnQoNjcwKSB7XG5cdC5uby10b3VjaCAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGk6Zmlyc3Qtb2YtdHlwZSBhOmhvdmVyOjpiZWZvcmUsXG5cdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50OmZpcnN0LW9mLXR5cGUgZW06OmJlZm9yZSxcblx0Lm5vLXRvdWNoIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlci5jdXN0b20taWNvbnMgbGk6Zmlyc3Qtb2YtdHlwZSBhOmhvdmVyOjpiZWZvcmUsXG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlci5jdXN0b20taWNvbnMgbGkuY3VycmVudDpmaXJzdC1vZi10eXBlIGVtOjpiZWZvcmUge1xuXHRcdC8qIGNoYW5nZSBjdXN0b20gaWNvbiB1c2luZyBpbWFnZSBzcHJpdGVzIC0gaG92ZXIgZWZmZWN0IG9yIGN1cnJlbnQgaXRlbSAqL1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb24gOiAwIC00MHB4O1xuXHR9XG5cdC5uby10b3VjaCAuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGk6bnRoLW9mLXR5cGUoMikgYTpob3Zlcjo6YmVmb3JlLFxuXHQuY2QtYnJlYWRjcnVtYi50cmlhbmdsZS5jdXN0b20taWNvbnMgbGkuY3VycmVudDpudGgtb2YtdHlwZSgyKSBlbTo6YmVmb3JlLFxuXHQubm8tdG91Y2ggLmNkLW11bHRpLXN0ZXBzLnRleHQtY2VudGVyLmN1c3RvbS1pY29ucyBsaTpudGgtb2YtdHlwZSgyKSBhOmhvdmVyOjpiZWZvcmUsXG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlci5jdXN0b20taWNvbnMgbGkuY3VycmVudDpudGgtb2YtdHlwZSgyKSBlbTo6YmVmb3JlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uIDogLTIwcHggLTQwcHg7XG5cdH1cblx0Lm5vLXRvdWNoIC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlLmN1c3RvbS1pY29ucyBsaTpudGgtb2YtdHlwZSgzKSBhOmhvdmVyOjpiZWZvcmUsXG5cdC5jZC1icmVhZGNydW1iLnRyaWFuZ2xlLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDMpIGVtOjpiZWZvcmUsXG5cdC5uby10b3VjaCAuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIuY3VzdG9tLWljb25zIGxpOm50aC1vZi10eXBlKDMpIGE6aG92ZXI6OmJlZm9yZSxcblx0LmNkLW11bHRpLXN0ZXBzLnRleHQtY2VudGVyLmN1c3RvbS1pY29ucyBsaS5jdXJyZW50Om50aC1vZi10eXBlKDMpIGVtOjpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb24gOiAtNDBweCAtNDBweDtcblx0fVxuXHQubm8tdG91Y2ggLmNkLWJyZWFkY3J1bWIudHJpYW5nbGUuY3VzdG9tLWljb25zIGxpOm50aC1vZi10eXBlKDQpIGE6aG92ZXI6OmJlZm9yZSxcblx0LmNkLWJyZWFkY3J1bWIudHJpYW5nbGUuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6bnRoLW9mLXR5cGUoNCkgZW06OmJlZm9yZSxcblx0Lm5vLXRvdWNoIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlci5jdXN0b20taWNvbnMgbGk6bnRoLW9mLXR5cGUoNCkgYTpob3Zlcjo6YmVmb3JlLFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIuY3VzdG9tLWljb25zIGxpLmN1cnJlbnQ6bnRoLW9mLXR5cGUoNCkgZW06OmJlZm9yZSB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IC02MHB4IC00MHB4O1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5NdWx0aSBzdGVwcyBpbmRpY2F0b3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AaW5jbHVkZSBicmVha3BvaW50KDY3MCkge1xuXHQuY2QtbXVsdGktc3RlcHMge1xuXHRcdC8qIHJlc2V0IHN0eWxlICovXG5cdFx0YmFja2dyb3VuZC1jb2xvciA6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmcgICAgICAgICAgOiAwO1xuXHR9XG5cdFxuXHQuY2QtbXVsdGktc3RlcHMgbGkge1xuXHRcdHBvc2l0aW9uIDogcmVsYXRpdmU7XG5cdFx0ZmxvYXQgICAgOiBub25lO1xuXHRcdG1hcmdpbiAgIDogMC40ZW0gNDBweCAwLjRlbSAwO1xuXHR9XG5cdC5jZC1tdWx0aS1zdGVwcyBsaTpsYXN0LW9mLXR5cGUge1xuXHRcdG1hcmdpbi1yaWdodCA6IDA7XG5cdH1cblx0LmNkLW11bHRpLXN0ZXBzIGxpOjphZnRlciB7XG5cdFx0LyogdGhpcyBpcyB0aGUgbGluZSBjb25uZWN0aW5nIDIgYWRqYWNlbnQgaXRlbXMgKi9cblx0XHRwb3NpdGlvbiAgIDogYWJzb2x1dGU7XG5cdFx0Y29udGVudCAgICA6ICcnO1xuXHRcdGhlaWdodCAgICAgOiA0cHg7XG5cdFx0YmFja2dyb3VuZCA6ICNmNWY0ZjQ7XG5cdFx0LyogcmVzZXQgc3R5bGUgKi9cblx0XHRtYXJnaW4gICAgIDogMDtcblx0fVxuXHQuY2QtbXVsdGktc3RlcHMgbGkudmlzaXRlZDo6YWZ0ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3IgOiAjOTZjMDNkO1xuXHR9XG5cdC5jZC1tdWx0aS1zdGVwcyBsaSA+ICosXG5cdC5jZC1tdWx0aS1zdGVwcyBsaS5jdXJyZW50ID4gKiB7XG5cdFx0cG9zaXRpb24gOiByZWxhdGl2ZTtcblx0XHRjb2xvciAgICA6ICMyYzNmNGM7XG5cdH1cblx0XG5cdC5jZC1tdWx0aS1zdGVwcy5jdXN0b20tc2VwYXJhdG9yIGxpOjphZnRlciB7XG5cdFx0LyogcmVzZXQgc3R5bGUgKi9cblx0XHRoZWlnaHQgICAgIDogNHB4O1xuXHRcdGJhY2tncm91bmQgOiAkc2Vjb25kYXJ5LWNvbG9yO1xuXHR9XG5cdFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIgbGk6OmFmdGVyIHtcblx0XHR3aWR0aCAgICAgOiAxMDAlO1xuXHRcdHRvcCAgICAgICA6IDUwJTtcblx0XHRsZWZ0ICAgICAgOiAxMDAlO1xuXHRcdHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtMXB4KTtcblx0fVxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIgbGkgPiAqIHtcblx0XHR6LWluZGV4ICAgICAgICAgIDogMTtcblx0XHRwYWRkaW5nICAgICAgICAgIDogLjZlbSAxZW07XG5cdFx0Ym9yZGVyLXJhZGl1cyAgICA6IC4yNWVtO1xuXHRcdGJhY2tncm91bmQtY29sb3IgOiAjZjVmNGY0O1xuXHR9XG5cdC5uby10b3VjaCAuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIgYTpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvciA6ICMyYzNmNGM7XG5cdH1cblx0LmNkLW11bHRpLXN0ZXBzLnRleHQtY2VudGVyIGxpLmN1cnJlbnQgPiAqLFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC1jZW50ZXIgbGkudmlzaXRlZCA+ICoge1xuXHRcdGNvbG9yICAgICAgICAgICAgOiAkd2hpdGU7XG5cdFx0YmFja2dyb3VuZC1jb2xvciA6ICRwcmltYXJ5LWNvbG9yO1xuXHR9XG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LWNlbnRlci5jdXN0b20taWNvbnMgbGkudmlzaXRlZCBhOjpiZWZvcmUge1xuXHRcdC8qIGNoYW5nZSB0aGUgY3VzdG9tIGljb24gZm9yIHRoZSB2aXNpdGVkIGl0ZW0gLSBjaGVjayBpY29uICovXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbiA6IDAgLTYwcHg7XG5cdH1cblx0XG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcCBsaSxcblx0LmNkLW11bHRpLXN0ZXBzLnRleHQtYm90dG9tIGxpIHtcblx0XHR3aWR0aCAgICAgIDogODBweDtcblx0XHR0ZXh0LWFsaWduIDogY2VudGVyO1xuXHR9XG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcCBsaTo6YWZ0ZXIsXG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbSBsaTo6YWZ0ZXIge1xuXHRcdC8qIHRoaXMgaXMgdGhlIGxpbmUgY29ubmVjdGluZyAyIGFkamFjZW50IGl0ZW1zICovXG5cdFx0cG9zaXRpb24gOiBhYnNvbHV0ZTtcblx0XHRsZWZ0ICAgICA6IDUwJTtcblx0XHQvKiA0MHB4IGlzIHRoZSA8bGk+IHJpZ2h0IG1hcmdpbiB2YWx1ZSAqL1xuXHRcdHdpZHRoICAgIDogY2FsYygxMDAlICsgNDBweCk7XG5cdH1cblx0LmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wIGxpID4gKjo6YmVmb3JlLFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gbGkgPiAqOjpiZWZvcmUge1xuXHRcdC8qIHRoaXMgaXMgdGhlIHNwb3QgaW5kaWNhdG9yICovXG5cdFx0Y29udGVudCAgICAgICAgICA6ICcnO1xuXHRcdHBvc2l0aW9uICAgICAgICAgOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4ICAgICAgICAgIDogMTtcblx0XHRsZWZ0ICAgICAgICAgICAgIDogNTAlO1xuXHRcdHJpZ2h0ICAgICAgICAgICAgOiBhdXRvO1xuXHRcdHRyYW5zZm9ybSAgICAgICAgOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdGhlaWdodCAgICAgICAgICAgOiAxMnB4O1xuXHRcdHdpZHRoICAgICAgICAgICAgOiAxMnB4O1xuXHRcdGJvcmRlci1yYWRpdXMgICAgOiA1MCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvciA6ICNlZGVmZjA7XG5cdH1cblx0LmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wIGxpLnZpc2l0ZWQgPiAqOjpiZWZvcmUsXG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcCBsaS5jdXJyZW50ID4gKjo6YmVmb3JlLFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gbGkudmlzaXRlZCA+ICo6OmJlZm9yZSxcblx0LmNkLW11bHRpLXN0ZXBzLnRleHQtYm90dG9tIGxpLmN1cnJlbnQgPiAqOjpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQtY29sb3IgOiAjOTZjMDNkO1xuXHR9XG5cdC5uby10b3VjaCAuY2QtbXVsdGktc3RlcHMudGV4dC10b3AgYTpob3Zlcixcblx0Lm5vLXRvdWNoIC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbSBhOmhvdmVyIHtcblx0XHRjb2xvciA6ICM5NmMwM2Q7XG5cdH1cblx0Lm5vLXRvdWNoIC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcCBhOmhvdmVyOjpiZWZvcmUsXG5cdC5uby10b3VjaCAuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gYTpob3Zlcjo6YmVmb3JlIHtcblx0XHRib3gtc2hhZG93IDogMCAwIDAgM3B4IHJnYmEoMTUwLCAxOTIsIDYxLCAwLjMpO1xuXHR9XG5cdFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC10b3AgbGk6OmFmdGVyIHtcblx0XHQvKiB0aGlzIGlzIHRoZSBsaW5lIGNvbm5lY3RpbmcgMiBhZGphY2VudCBpdGVtcyAqL1xuXHRcdGJvdHRvbSA6IDRweDtcblx0fVxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC10b3AgbGkgPiAqIHtcblx0XHRwYWRkaW5nLWJvdHRvbSA6IDIwcHg7XG5cdH1cblx0LmNkLW11bHRpLXN0ZXBzLnRleHQtdG9wIGxpID4gKjo6YmVmb3JlIHtcblx0XHQvKiB0aGlzIGlzIHRoZSBzcG90IGluZGljYXRvciAqL1xuXHRcdGJvdHRvbSA6IDA7XG5cdH1cblx0XG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbSBsaTo6YWZ0ZXIge1xuXHRcdC8qIHRoaXMgaXMgdGhlIGxpbmUgY29ubmVjdGluZyAyIGFkamFjZW50IGl0ZW1zICovXG5cdFx0dG9wIDogM3B4O1xuXHR9XG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbSBsaSA+ICoge1xuXHRcdHBhZGRpbmctdG9wIDogMjBweDtcblx0fVxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20gbGkgPiAqOjpiZWZvcmUge1xuXHRcdC8qIHRoaXMgaXMgdGhlIHNwb3QgaW5kaWNhdG9yICovXG5cdFx0dG9wIDogMDtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQWRkIGEgY291bnRlciB0byB0aGUgbXVsdGktc3RlcHMgaW5kaWNhdG9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNkLW11bHRpLXN0ZXBzLmNvdW50IGxpIHtcblx0Y291bnRlci1pbmNyZW1lbnQgOiBzdGVwcztcbn1cblxuLmNkLW11bHRpLXN0ZXBzLmNvdW50IGxpID4gKjo6YmVmb3JlIHtcblx0Y29udGVudCA6IGNvdW50ZXIoc3RlcHMpIFwiIC0gXCI7XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoNjcwKSB7XG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LXRvcC5jb3VudCBsaSA+ICo6OmJlZm9yZSxcblx0LmNkLW11bHRpLXN0ZXBzLnRleHQtYm90dG9tLmNvdW50IGxpID4gKjo6YmVmb3JlIHtcblx0XHQvKiB0aGlzIGlzIHRoZSBzcG90IGluZGljYXRvciAqL1xuXHRcdGNvbnRlbnQgICAgIDogY291bnRlcihzdGVwcyk7XG5cdFx0aGVpZ2h0ICAgICAgOiAyNnB4O1xuXHRcdHdpZHRoICAgICAgIDogMjZweDtcblx0XHRsaW5lLWhlaWdodCA6IDI2cHg7XG5cdFx0Y29sb3IgICAgICAgOiAjZmZmZmZmO1xuXHR9XG5cdFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC10b3AuY291bnQgbGk6bm90KC5jdXJyZW50KSBlbTo6YmVmb3JlLFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC1ib3R0b20uY291bnQgbGk6bm90KC5jdXJyZW50KSBlbTo6YmVmb3JlIHtcblx0XHQvKiBzdGVwcyBub3QgdmlzaXRlZCB5ZXQgLSBjb3VudGVyIGNvbG9yICovXG5cdFx0Y29sb3IgOiAjMmMzZjRjO1xuXHR9XG5cdFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC10b3AuY291bnQgbGk6OmFmdGVyIHtcblx0XHRib3R0b20gOiAxMXB4O1xuXHR9XG5cdFxuXHQuY2QtbXVsdGktc3RlcHMudGV4dC10b3AuY291bnQgbGkgPiAqIHtcblx0XHRwYWRkaW5nLWJvdHRvbSA6IDM0cHg7XG5cdH1cblx0XG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbS5jb3VudCBsaTo6YWZ0ZXIge1xuXHRcdHRvcCA6IDExcHg7XG5cdH1cblx0XG5cdC5jZC1tdWx0aS1zdGVwcy50ZXh0LWJvdHRvbS5jb3VudCBsaSA+ICoge1xuXHRcdHBhZGRpbmctdG9wIDogMzRweDtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnV0dG9uLFxuLnN1Ym1pdCxcbltjbGFzcyo9XCJtb2RfaXNvXCJdIC5yZXZpZXcgYS5lZGl0LFxuLnBhZ2Vfc2lkZWJhci1zdWJuYXZpZ2F0aW9uIGEsXG4ucGFnZV9zaWRlYmFyLXN1Ym5hdmlnYXRpb24gc3Bhbixcbi5tb2RfaXNvX29yZGVyaGlzdG9yeSAuZG9jdW1lbnRfbnVtYmVyIGEge1xuXHRtYXJnaW4gICAgICAgICAgIDogJGdsb2JhbC1tYXJnaW4gMDtcblx0Ly9wYWRkaW5nICAgICAgICAgIDogMC41ZW0gMWVtIDAuMjVlbSAxZW07XG5cdHBhZGRpbmcgICAgICAgICAgOiAxMHB4IDEwcHggOHB4IDEwcHg7XG5cdGZvbnQtd2VpZ2h0ICAgICAgOiAkZm9udC13ZWlnaHQtMjtcblx0Y29sb3IgICAgICAgICAgICA6ICRwcmltYXJ5LWNvbG9yO1xuXHQvL2xldHRlci1zcGFjaW5nICAgOiAkbGV0dGVyLXNwYWNpbmctbWVkaXVtO1xuXHR0ZXh0LXRyYW5zZm9ybSAgIDogdXBwZXJjYXNlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yIDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlciAgICAgICAgICAgOiAxcHggc29saWQgJHByaW1hcnktY29sb3I7XG59XG5cbi5wYWdlX3NpZGViYXItc3VibmF2aWdhdGlvbiBzcGFuIHsgZGlzcGxheSA6IGJsb2NrOyB9XG5cbi5tb2RfaXNvX3Byb2R1Y3RmaWx0ZXIgYS5jbGVhcl9maWx0ZXJzIHtcblx0ZGlzcGxheSAgICAgICAgOiBibG9jaztcblx0bWFyZ2luICAgICAgICAgOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcblx0cGFkZGluZy10b3AgICAgOiAxMnB4O1xuXHRwYWRkaW5nLWJvdHRvbSA6IDExcHg7XG59XG5cbi5tb2RfaXNvX29yZGVyaGlzdG9yeSAuZG9jdW1lbnRfbnVtYmVyIGEge1xuXHRwYWRkaW5nIDogNHB4IDJweCAycHggMnB4O1xufVxuXG4uYnV0dG9uOmZvY3VzLFxuLmJ1dHRvbjpob3Zlcixcbi5zdWJtaXQ6Zm9jdXMsXG4uc3VibWl0OmhvdmVyLFxuW2NsYXNzKj1cIm1vZF9pc29cIl0gLnJldmlldyBhLmVkaXQ6Zm9jdXMsXG5bY2xhc3MqPVwibW9kX2lzb1wiXSAucmV2aWV3IGEuZWRpdDpob3Zlcixcbi5wYWdlX3NpZGViYXItc3VibmF2aWdhdGlvbiBhOmZvY3VzLFxuLnBhZ2Vfc2lkZWJhci1zdWJuYXZpZ2F0aW9uIGE6aG92ZXIsXG4ucGFnZV9zaWRlYmFyLXN1Ym5hdmlnYXRpb24gc3Bhbixcbi5tb2RfaXNvX29yZGVyaGlzdG9yeSAuZG9jdW1lbnRfbnVtYmVyIGE6Zm9jdXMsXG4ubW9kX2lzb19vcmRlcmhpc3RvcnkgLmRvY3VtZW50X251bWJlciBhOmhvdmVyIHtcblx0Y29sb3IgICAgICAgICAgICA6ICR3aGl0ZTtcblx0YmFja2dyb3VuZC1jb2xvciA6ICRzZWNvbmRhcnktY29sb3I7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1vZF9pc29fcHJvZHVjdHJlYWRlciAuc3VibWl0LFxuLm1vZF9pc29fY2hlY2tvdXQgLnN1Ym1pdC5jb25maXJtIHtcblx0Ly9jb2xvciAgICAgICAgICAgIDogJHdoaXRlO1xuXHQvL2JhY2tncm91bmQtY29sb3IgOiAkc2Vjb25kYXJ5LWNvbG9yO1xufVxuXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5zdWJtaXQ6Zm9jdXMsXG4ubW9kX2lzb19wcm9kdWN0cmVhZGVyIC5zdWJtaXQ6aG92ZXIsXG4ubW9kX2lzb19jaGVja291dCAuc3VibWl0LmNvbmZpcm06Zm9jdXMsXG4ubW9kX2lzb19jaGVja291dCAuc3VibWl0LmNvbmZpcm06aG92ZXIge1xuXHQvL2NvbG9yICAgICAgICAgICAgOiAkcHJpbWFyeS1jb2xvcjtcblx0Ly9iYWNrZ3JvdW5kLWNvbG9yIDogdHJhbnNwYXJlbnQ7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8ucGFnZV9jb250ZW50LWJhc2tldC1taW5pIC5idXR0b24ge1xuLy9cdGZvbnQtc2l6ZSA6IHJlbS1jYWxjKDEwKTtcbi8vXHRAaW5jbHVkZSBicmVha3BvaW50KHhzbWFsbCkge1xuLy9cdFx0Zm9udC1zaXplIDogcmVtLWNhbGMoMTQpO1xuLy9cdH1cbi8vXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuLy9cdFx0Zm9udC1zaXplIDogcmVtLWNhbGMoMTYpO1xuLy9cdH1cbi8vfVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5tb2RfcmVnaXN0cmF0aW9uIC5zdWJtaXQge1xuXHRtYXJnaW4tdG9wIDogcmVtLWNhbGMoMjUpO1xuXHRAaW5jbHVkZSBidXR0b24tZXhwYW5kKHRydWUpO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idXR0b25faGFtYnVyZ2VyIHNwYW4ge1xuXHR3aWR0aCAgICAgICAgICAgIDogMjVweDtcblx0aGVpZ2h0ICAgICAgICAgICA6IDJweDtcblx0YmFja2dyb3VuZC1jb2xvciA6ICMyMzIzMjM7XG5cdGRpc3BsYXkgICAgICAgICAgOiBibG9jaztcblx0bWFyZ2luICAgICAgICAgICA6IDNweCBhdXRvO1xuXHR0cmFuc2l0aW9uICAgICAgIDogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5cbi5idXR0b25faGFtYnVyZ2VyOmZvY3VzLFxuLmJ1dHRvbl9oYW1idXJnZXI6aG92ZXIge1xuXHRjdXJzb3IgOiBwb2ludGVyO1xufVxuXG4vLyBUb2RvIFBGOiBQcm9ibGVtIGJlaSBBbmltYXRpb24gaW4gVmVyYmluZHVuZyBtaXQgT2ZmQ2FudmFzIChjaGVja2VuKSAtIHNpZWhlIGFwcC5qcyBaZWlsZSAyMCBmZi4gKGRlYWt0aXZpZXJ0KVxuLy8uYnV0dG9uX2hhbWJ1cmdlci5pcy1hY3RpdmUge1xuLy9cdHRyYW5zaXRpb24gICAgICAgOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbi8vXHR0cmFuc2l0aW9uLWRlbGF5IDogMC42cztcbi8vXHR0cmFuc2Zvcm0gICAgICAgIDogcm90YXRlKDQ1ZGVnKTtcbi8vfVxuLy9cbi8vLmJ1dHRvbl9oYW1idXJnZXIuaXMtYWN0aXZlIHNwYW46bnRoLWNoaWxkKDIpIHtcbi8vXHR3aWR0aCA6IDA7XG4vL31cbi8vXG4vLy5idXR0b25faGFtYnVyZ2VyLmlzLWFjdGl2ZSBzcGFuOm50aC1jaGlsZCgxKSxcbi8vLmJ1dHRvbl9oYW1idXJnZXIuaXMtYWN0aXZlIHNwYW46bnRoLWNoaWxkKDMpIHtcbi8vXHR0cmFuc2l0aW9uLWRlbGF5IDogMC4zcztcbi8vfVxuLy9cbi8vLmJ1dHRvbl9oYW1idXJnZXIuaXMtYWN0aXZlIHNwYW46bnRoLWNoaWxkKDEpIHtcbi8vXHR0cmFuc2Zvcm0gOiB0cmFuc2xhdGVZKDVweCk7XG4vL31cbi8vXG4vLy5idXR0b25faGFtYnVyZ2VyLmlzLWFjdGl2ZSBzcGFuOm50aC1jaGlsZCgzKSB7XG4vL1x0dHJhbnNmb3JtIDogdHJhbnNsYXRlWSgtNXB4KSByb3RhdGUoOTBkZWcpO1xuLy99XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVXNlclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWdpc3RyaWVydW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5tb2RfcGVyc29uYWxEYXRhIHtcblx0bWFyZ2luLWJvdHRvbSAgOiAkZ2xvYmFsLW1hcmdpbjtcblx0cGFkZGluZy1ib3R0b20gOiAkZ2xvYmFsLXBhZGRpbmc7XG5cdGJvcmRlci1ib3R0b20gIDogMXB4IHNvbGlkICRibGFjaztcbn1cblxuLm1vZF9yZWdpc3RyYXRpb24gLmZpZWxkcyxcbi5tb2RfcGVyc29uYWxEYXRhIC5maWVsZHMge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXHRtYXgtd2lkdGggOiBub25lO1xuXHRAaW5jbHVkZSBncmlkLXJlbW92ZS1yb3ctbWFyZ2luO1xufVxuXG4ubW9kX3JlZ2lzdHJhdGlvbiAud2lkZ2V0LFxuLm1vZF9wZXJzb25hbERhdGEgLndpZGdldCB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG59XG5cbi5tb2RfcmVnaXN0cmF0aW9uIC53aWRnZXQ6bnRoLWNoaWxkKDEpLFxuLm1vZF9wZXJzb25hbERhdGEgLndpZGdldDpudGgtY2hpbGQoMSksXG4ubW9kX3JlZ2lzdHJhdGlvbiAud2lkZ2V0Om50aC1jaGlsZCgxMCksXG4ubW9kX3BlcnNvbmFsRGF0YSAud2lkZ2V0Om50aC1jaGlsZCgxMCkge1xuXHRAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubW9kX2xvZ2luIC5maWVsZHMsXG4ubW9kX2xvc3RQYXNzd29yZCAuZmllbGRzIHtcblx0QGluY2x1ZGUgZmxleC1ncmlkLXJvdztcblx0bWF4LXdpZHRoIDogbm9uZTtcblx0QGluY2x1ZGUgZ3JpZC1yZW1vdmUtcm93LW1hcmdpbjtcbn1cblxuLm1vZF9sb2dpbiAud2lkZ2V0LFxuLm1vZF9sb3N0UGFzc3dvcmQgLndpZGdldCB7XG5cdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHhzbWFsbCkge1xuXHRcdEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oNik7XG5cdH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFjY29yZGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2VfYWNjb3JkaW9uIHsgfVxuXG4uY2VfYWNjb3JkaW9uIC50b2dnbGVyIHtcblx0cG9zaXRpb24gICAgICAgOiByZWxhdGl2ZTtcblx0b3V0bGluZSAgICAgICAgOiAwO1xuXHRjdXJzb3IgICAgICAgICA6IHBvaW50ZXI7XG5cdHBhZGRpbmcgICAgICAgIDogcmVtLWNhbGMoJGdyaWQtY29sdW1uLWd1dHRlci1tZWRpdW0pLzIgMDtcblx0dGV4dC10cmFuc2Zvcm0gOiB1cHBlcmNhc2U7XG5cdGZvbnQtc2l6ZSAgICAgIDogcmVtLWNhbGMoMTUpO1xuXHRmb250LXdlaWdodCAgICA6ICRmb250LXdlaWdodC0xO1xuXHRsZXR0ZXItc3BhY2luZyA6ICRsZXR0ZXItc3BhY2luZy1tZWRpdW07XG5cdFxuXHRAaW5jbHVkZSBpY29uKGZpbHRlcjMsIGJlZm9yZSkge1xuXHRcdG1hcmdpbi1yaWdodCA6IDVweDtcblx0XHRmb250LXNpemUgICAgOiAxNnB4O1xuXHR9XG5cdFxuXHRAaW5jbHVkZSBpY29uKGFycm93LWRvd24zLCBhZnRlcikge1xuXHRcdHBvc2l0aW9uICA6IGFic29sdXRlO1xuXHRcdHRvcCAgICAgICA6IGNhbGMoNTAlIC0gN3B4KTtcblx0XHRyaWdodCAgICAgOiAwO1xuXHRcdGZvbnQtc2l6ZSA6IDE0cHg7XG5cdH1cblx0XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Ly9wYWRkaW5nLXRvcCA6IHJlbS1jYWxjKCRncmlkLWNvbHVtbi1ndXR0ZXItbWVkaXVtKTtcblx0fVxufVxuXG4uY2VfYWNjb3JkaW9uIC50b2dnbGVyOmZvY3VzLFxuLmNlX2FjY29yZGlvbiAudG9nZ2xlcjpob3ZlciB7IH1cblxuLmNlX2FjY29yZGlvbiAudG9nZ2xlci5hY3RpdmUge1xuXHRAaW5jbHVkZSBpY29uKGFycm93LXVwMywgYWZ0ZXIpIHtcblx0XHRmb250LXNpemUgOiAxNnB4O1xuXHR9XG59XG5cbi5jZV9hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSB7XG5cdHBhZGRpbmctYm90dG9tIDogcmVtLWNhbGMoJGdyaWQtY29sdW1uLWd1dHRlci1tZWRpdW0pLTFyZW07XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNb2RhbCAoUmV2ZWFsKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ubGlua19tb2RhbC1vcGVuIHtcblx0Ly9mb250LXdlaWdodCAgICA6ICRmb250LXdlaWdodC0zO1xuXHRwYWRkaW5nLWJvdHRvbSA6IDFweDtcblx0Ym9yZGVyLWJvdHRvbSAgOiAxcHggc29saWQgJGJsYWNrO1xufVxuXG4ucmV2ZWFsIC5idXR0b25fd3JhcHBlciB7XG5cdHRleHQtYWxpZ24gOiBjZW50ZXI7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSU0NFIDEtMDAxIC0gQ0UgSXRlbSAtIEludHJvIFRleHQgKFRlbXBsYXRlOiByc2NlXzFfMDAxX2ludHJvX3RleHQpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vLy5jZV9pdGVtLWludHJvLXRleHQgeyB9XG4vLy5jZV9pdGVtLWludHJvLXRleHRfX2FkZGl0aW9uIHt9XG4vLy5jZV9pdGVtLWludHJvLXRleHRfX2hlYWRsaW5lIHsgfVxuLy8uY2VfaXRlbS1pbnRyby10ZXh0X19zdWJoZWFkbGluZSB7IH1cbi8vLmNlX2l0ZW0taW50cm8tdGV4dF9fY29udGVudCB7IH1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJTQ0UgMi0wMDEgLSBDRSBJdGVtIC0gTWVkaWEgVGVhc2VyIChUZW1wbGF0ZTogcnNjZV8yXzAwMV9tZWRpYV90ZWFzZXIpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vLy5jZV9pdGVtLW1lZGlhLXRlYXNlciB7fVxuLy8uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2JhY2tncm91bmQge31cbi8vLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19jb250ZW50LXdyYXBwZXItb3V0c2lkZSB7fVxuLy8uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci1pbnNpZGUge31cbi8vLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19oZWFkbGluZS13cmFwcGVyIHt9XG4vLy5jZV9pdGVtLW1lZGlhLXRlYXNlcl9fYWRkaXRpb24ge31cbi8vLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19oZWFkbGluZSB7fVxuLy8uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX3N1YmhlYWRsaW5lXG4vLy5jZV9pdGVtLW1lZGlhLXRlYXNlcl9fY29udGVudCB7fVxuLy8uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2xvZ28ge31cbi8vLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19saW5rIHt9XG4vLy5saW5rX3Njcm9sbC1kb3duIHt9XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uY2VfaXRlbS1tZWRpYS10ZWFzZXIge1xuXHRwb3NpdGlvbiAgICAgICAgICAgOiByZWxhdGl2ZTtcblx0aGVpZ2h0ICAgICAgICAgICAgIDogMTAwdmg7XG5cdG92ZXJmbG93ICAgICAgICAgICA6IGhpZGRlbjtcblx0Ly9iYWNrZ3JvdW5kICAgICAgICAgOiAkYmxhY2s7XG5cdGJvcmRlciAgICAgICAgICAgICA6IHJlbS1jYWxjKCRncmlkLWNvbHVtbi1ndXR0ZXItc21hbGwpIHNvbGlkICR3aGl0ZTtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRib3JkZXIgOiByZW0tY2FsYygkZ3JpZC1jb2x1bW4tZ3V0dGVyLW1lZGl1bSkgc29saWQgJHdoaXRlO1xuXHR9XG5cdEBpbmNsdWRlIG11aS1hbmltYXRpb24oZmFkZShpbikpO1xuXHRhbmltYXRpb24tZHVyYXRpb24gOiA1cztcbn1cblxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19iYWNrZ3JvdW5kIHtcblx0cG9zaXRpb24gICAgICAgIDogYWJzb2x1dGU7XG5cdHRvcCAgICAgICAgICAgICA6IDA7XG5cdGxlZnQgICAgICAgICAgICA6IDA7XG5cdHJpZ2h0ICAgICAgICAgICA6IDA7XG5cdGJvdHRvbSAgICAgICAgICA6IDA7XG5cdG92ZXJmbG93ICAgICAgICA6IGhpZGRlbjtcblx0YmFja2dyb3VuZCAgICAgIDogNTAlIDUwJSBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZSA6IGNvdmVyO1xufVxuXG4vLyBIVE1MNSBWaWRlbyAvLyBNZWRpYWVsZW1lbnQgaW0gU2VpdGVubGF5b3V0IE1VU1MoISkgZGVha3RpdmllcnQgc2VpbiFcbi8vIENoYW5nZSB0aGlzIHRvIFwib2JqZWN0LWZpdDogY292ZXJcIiBvbmNlIGFsbCBicm93c2VycyBzdXBwb3J0IGl0XG4vLyBMaW5rOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMDg1MTU5MFxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19iYWNrZ3JvdW5kIHZpZGVvIHtcblx0cG9zaXRpb24gICA6IGFic29sdXRlO1xuXHR0b3AgICAgICAgIDogNTAlO1xuXHRsZWZ0ICAgICAgIDogNTAlO1xuXHRtaW4td2lkdGggIDogMTAwJTtcblx0bWluLWhlaWdodCA6IDEwMCU7XG5cdHRyYW5zZm9ybSAgOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vIFplbnRyaWVydW5nXG4uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci1vdXRzaWRlIHtcblx0cG9zaXRpb24gICA6IHJlbGF0aXZlO1xuXHR0b3AgICAgICAgIDogNTAlO1xuXHR0ZXh0LWFsaWduIDogY2VudGVyO1xuXHR0cmFuc2Zvcm0gIDogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19jb250ZW50LXdyYXBwZXItaW5zaWRlIHtcblx0cGFkZGluZy1sZWZ0ICAgICAgIDogMjBweDtcblx0cGFkZGluZy1yaWdodCAgICAgIDogMjBweDtcblx0QGluY2x1ZGUgbXVpLWFuaW1hdGlvbihmYWRlKGluKSk7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbiA6IDEwcztcblx0XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0cGFkZGluZy1sZWZ0ICA6IDQwcHg7XG5cdFx0cGFkZGluZy1yaWdodCA6IDQwcHg7XG5cdH1cbn1cblxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19oZWFkbGluZS13cmFwcGVyLW91dHNpZGUge1xuXHQvL21heC13aWR0aCAgICAgICAgOiA2MDBweDtcblx0Ly9tYXJnaW4gICAgICAgICAgIDogJGdsb2JhbC1tYXJnaW4gYXV0byAwIGF1dG87XG5cdC8vcGFkZGluZyAgICAgICAgICA6IDFlbTtcblx0Ly9iYWNrZ3JvdW5kLWNvbG9yIDogdHJhbnNwYXJlbnQ7XG5cdC8vYm9yZGVyICAgICAgICAgICA6IDJweCBzb2xpZCAkd2hpdGU7XG59XG5cbi5jZV9pdGVtLW1lZGlhLXRlYXNlcl9faGVhZGxpbmUtd3JhcHBlci1pbnNpZGUge1xuXHQvL3BhZGRpbmcgICAgICAgICAgOiAxZW0gMmVtO1xuXHQvL2JhY2tncm91bmQtY29sb3IgOiAkd2hpdGU7XG59XG5cbi5jZV9pdGVtLW1lZGlhLXRlYXNlcl9faGVhZGxpbmUsXG4uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX3N1YmhlYWRsaW5lIHtcblx0Ly90ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcblx0Ly9mb250LXNpemUgICAgICA6IHJlbS1jYWxjKDE4KTtcblx0Ly9mb250LXdlaWdodCAgICA6ICRmb250LXdlaWdodC0yO1xufVxuXG4uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX3N1YmhlYWRsaW5lIHtcblx0Ly9mb250LXNpemUgICA6IHJlbS1jYWxjKDEyKTtcblx0Ly9mb250LXdlaWdodCA6ICRmb250LXdlaWdodC0wO1xuXHQvL3BhZGRpbmctdG9wIDogMC4yNXJlbTtcbn1cblxuLy8uY2VfaXRlbS1tZWRpYS10ZWFzZXJfX2hlYWRsaW5lOmJlZm9yZSB7XG4vL1x0ZGlzcGxheSAgICAgICAgICAgOiBibG9jaztcbi8vXHRtYXJnaW4gICAgICAgICAgICA6IHJlbS1jYWxjKDMyKSBhdXRvIHJlbS1jYWxjKDI0KSBhdXRvO1xuLy9cdGhlaWdodCAgICAgICAgICAgIDogMTZweDtcbi8vXHR3aWR0aCAgICAgICAgICAgICA6IDIwMHB4O1xuLy9cdGNvbnRlbnQgICAgICAgICAgIDogJyc7XG4vL1x0YmFja2dyb3VuZC1zaXplICAgOiAxNnB4IDE2cHg7XG4vL1x0YmFja2dyb3VuZC1yZXBlYXQgOiByZXBlYXQteDtcbi8vXHRiYWNrZ3JvdW5kLWltYWdlICA6IHVybCguLi9pbWcvWFhYWFhYWC5zdmcpO1xuLy99XG5cbi5jZV9pdGVtLW1lZGlhLXRlYXNlcl9fbGluayBhIHtcblx0dGV4dC1hbGlnbiAgOiBjZW50ZXI7XG5cdGNvbG9yICAgICAgIDogJHdoaXRlO1xuXHRwYWRkaW5nLXRvcCA6IDNyZW07XG5cdGRpc3BsYXkgICAgIDogYmxvY2s7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7IC8vVE9ETy1QRjogw5xiZXJhcmJlaXRlblxuXHRcdHBvc2l0aW9uIDogcmVsYXRpdmU7XG5cdFx0Ly9sZWZ0ICAgICA6IGNhbGMoNTAlIC0gMTZweCk7XG5cdFx0Ly9ib3R0b20gICA6IDMwcHg7XG5cdFx0XG5cdH1cbn1cblxuLmNlX2l0ZW0tbWVkaWEtdGVhc2VyX19saW5rIGE6YmVmb3JlIHtcblx0QGluY2x1ZGUgaWNvbihhcnJvdy1kb3duNCk7XG5cdGNvbG9yICAgICA6ICR3aGl0ZTtcblx0cG9zaXRpb24gIDogcmVsYXRpdmU7XG5cdGZvbnQtc2l6ZSA6IHJlbV9jYWxjKDM2KTtcbn1cblxuLy8gVE9ETyBQRjogUHJvYmxlbSBtaXQgSWNvbiBGb250IE1peGluIGzDtnNlbiAhIVxuLy8gQGV4dGVuZCBkYXJmIG5pY2h0IGluIHVudGVyc2NoaWVkbGljaGVuIEBtZWRpYSBibG9ja3MgdmVyd2VuZGV0IHdlcmRlbiFcbi8vLmxpbmtfc2Nyb2xsLWRvd24ge1xuLy9cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7IC8vVE9ETy1QRjogw5xiZXJhcmJlaXRlblxuLy9cdFx0JjphZnRlciB7XG4vL1x0XHRcdEBpbmNsdWRlIGljb24oYXJyb3ctZG93bikgeyAvLyBUT0RPLVBGOiBBYmdsZWljaCBtaXQgcGFzc2VuZGVtIEljb24gaW0gSWNvbiBGb250XG4vL1x0XHRcdFx0Zm9udC1zaXplIDogMzJweDtcbi8vXHRcdFx0fVxuLy9cdFx0fVxuLy9cdH1cbi8vfVxuXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSU0NFIDEtMDEwIC0gQ0UgSXRlbSAtIFRlYXNlciAoVGVtcGxhdGU6IHJzY2VfMV8wMDFfdGVhc2VyKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8uY2VfaXRlbS10ZWFzZXIgeyB9XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jZV9pdGVtLXRlYXNlciAuY29sdW1ucyA+IGRpdiwgLmNlX2l0ZW0tdGVhc2VyIC5jb2x1bW5zID4gYSB7XG5cdGhlaWdodCAgICAgICAgICAgOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yIDogJGxpZ2h0LWdyYXk7XG5cdHBhZGRpbmcgICAgICAgICAgOiAxLjVyZW07XG59XG5cbi5jZV9pdGVtLXRlYXNlciAuY29sdW1ucyA+IGEge1xuXHRkaXNwbGF5IDogYmxvY2s7XG5cdHdpZHRoICAgOiAxMDAlO1xufVxuXG4uY2VfaXRlbS10ZWFzZXIgLmJnLWltYWdlIHtcblx0YmFja2dyb3VuZC1yZXBlYXQgOiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZSAgIDogY292ZXI7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSU0NFIDItMDAxIC0gQ0UgSXRlbSAtIE9yYml0IFNsaWRlciAoVGVtcGxhdGU6IHJzY2UtMi0wMTAtb3JiaXQtc2xpZGVyKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ub3JiaXQge1xuXHRwb3NpdGlvbiA6IHJlbGF0aXZlO1xufVxuXG4ub3JiaXQtY2FwdGlvbiB7XG5cdGRpc3BsYXkgOiBub25lO1xufVxuXG4uY2Vfb3JiaXRfc2xpZGVyLnNsaWRlci1iYWNrZ3JvdW5kIGxpIHtcblx0aGVpZ2h0ICAgICAgICAgICAgICA6IDEwMHZoO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdCAgIDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uIDogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXNpemUgICAgIDogY292ZXI7XG59XG5cbi5jZV9vcmJpdF9zbGlkZXIuc2xpZGVyLWJhY2tncm91bmQgdWwge1xuXHRoZWlnaHQgOiAxMDB2aCAhaW1wb3J0YW50O1xufVxuXG4uY2Vfb3JiaXRfc2xpZGVyIC5tYWluLWNhcHRpb24ge1xuXHRwb3NpdGlvbiAgICAgICAgIDogcmVsYXRpdmU7XG5cdGNvbG9yICAgICAgICAgICAgOiAkd2hpdGU7XG5cdGJvdHRvbSAgICAgICAgICAgOiAwO1xuXHRyaWdodCAgICAgICAgICAgIDogMDtcblx0YmFja2dyb3VuZC1jb2xvciA6IHJnYmEoJGJsYWNrLCAxKTtcblx0cGFkZGluZyAgICAgICAgICA6IDFyZW0gMS41cmVtIDAuNXJlbSAxLjVyZW07XG5cdHdpZHRoICAgICAgICAgICAgOiAxMDAlO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHBvc2l0aW9uICAgICAgICAgOiBhYnNvbHV0ZTtcblx0XHRib3R0b20gICAgICAgICAgIDogMTUlO1xuXHRcdHdpZHRoICAgICAgICAgICAgOiBhdXRvO1xuXHRcdGJhY2tncm91bmQtY29sb3IgOiByZ2JhKCRibGFjaywgMC44KTtcblx0fVxufVxuXG4uY2Vfb3JiaXRfc2xpZGVyIC5tYWluLWNhcHRpb24gaDMge1xuXHR0ZXh0LXRyYW5zZm9ybSA6IHVwcGVyY2FzZTtcblx0Zm9udC1zaXplICAgICAgOiByZW1fY2FsYygxNCk7XG5cdGZvbnQtd2VpZ2h0ICAgIDogJGZvbnQtd2VpZ2h0LTE7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplIDogcmVtX2NhbGMoMTgpO1xuXHR9XG59XG5cbi8vLmNlX29yYml0X3NsaWRlciAub3JiaXQtYnVsbGV0cyB7XG4vL1x0cG9zaXRpb24gICA6IHJlbGF0aXZlO1xuLy9cdHRleHQtYWxpZ24gOiBjZW50ZXI7XG4vL1x0d2lkdGggICAgICA6IDEwMCU7XG4vL1xuLy99XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGV2ZWxvcG1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vLyBUZW1wb3LDpHJlIERhdGVpIHfDpGhyZW5kIEVudHdpY2tsdW5nIC0gRsO8ciBQUk8gQmV0cmllYiBzb2xsdGVuIGFsbGUgSW5oYWx0ZSBpbiBzZXBhcmF0ZSBNb2R1bGUgYXVzZ2VsYWdlcnQgc2VpbiFcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEhlbGZlcmtsYXNzZSAtIEludGVncmF0aW9uIGluIEFycmF5ICdyb3cnIHZvbiBETUEgU2ltcGxlIEdyaWQgS29uZmlndXJhdGlvblxuLy8gU0FTUyBOdXR6dW5nIHZpYSBtaXhpbiAncmVtb3ZlLWdyaWQtcm93LW1hcmdpbicgLSBzaWVoZSAnc2V0dGluZ3MtcHJvamVjdCdcbi5yZW1vdmUtbWFyZ2luIHtcblx0QGluY2x1ZGUgZ3JpZC1yZW1vdmUtcm93LW1hcmdpbjtcbn1cblxuLy8ucHJvZHVjdCB7XG4vL1x0QGluY2x1ZGUgbXVpLWFuaW1hdGlvbihmYWRlKGluKSk7XG4vL1x0YW5pbWF0aW9uLWR1cmF0aW9uIDogOHM7XG4vL31cblxuIl19 */

@charset "UTF-8";

.ce_table .even {
    background: rgba(0,0,0,0.03);
}
.ce_table thead {
    background: rgba(0,0,0,0.07);
}
.ce_table tr th {
	padding:5px;
}
.ce_table td {
    padding: 2px 5px;
}

.page_layout-1-3-0 .page_column-3 {
    min-height: 400px;
}

@media print, screen and (min-width: 40em) {
 	.ce_orbit_slider .main-caption {
    background-color: rgba(0, 0, 0, 0.5);
	}
}
.ce_image .caption {
    background-color: rgba(0, 0, 0, 0.3);
}
.ce_orbit_slider .main-caption h3 {
	font-size: 1.5em;
	font-family: "Times New Roman", Times, serif;
	letter-spacing:0.2em;
}

.button:focus, .button:hover, .submit:focus, .submit:hover, [class*="mod_iso"] .review a.edit:focus, [class*="mod_iso"] .review a.edit:hover, .page_sidebar-subnavigation a:focus, .page_sidebar-subnavigation a:hover, .page_sidebar-subnavigation span, .mod_iso_orderhistory .document_number a:focus, .mod_iso_orderhistory .document_number a:hover {
    color: #fefefe;
    background-color: rgba(0,0,0,0.2);
}

.button, .submit, [class*="mod_iso"] .review a.edit, .page_sidebar-subnavigation a, .page_sidebar-subnavigation span, .mod_iso_orderhistory .document_number a {
    margin: 1rem 0;
    padding: 10px 10px 8px 10px;
    font-weight: 400;
    color: #000000;
    text-transform: uppercase;
    border: 1px solid rgba(0,0,0,0.2);
}

.page_sidebar-subnavigation li.active ::after /*, .page_sidebar-subnavigation a:hover::after */ { 
   content: url("../../files/theme/img/vogel.svg"); 
   margin-left: 10px;
}
.page_type-shoplist.sibling.is-submenu-item.is-dropdown-submenu-item {
    background:#000000;
}

.page_content .image_container a::before {
    content: '';
    position: absolute;
    background-color: rgba(26, 26, 26, 0.7);
    background-image: url("../../files/theme/img/signet-atelier-cincin-white.svg");
    background-position: center center;
    background-size: 60px 60px;
    background-repeat: no-repeat;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: block;
    opacity: 0;
    -webkit-transition: 0.2s opacity linear;
    transition: 0.2s opacity linear;
}

.is-dropdown-submenu  {
    min-width: 200px;
}

.top-bar a {
    color: #000000;
    text-transform: uppercase;
    padding: 0.7rem 1rem;
}

.mod_article .ce_text {
    overflow: hidden;
}

/*
.is-dropdown-submenu {
background: rgba(0,0,0,0.5)!important;
}
*/


