/**
 * @group Color
 * @label Base Color (used for navbar, widget titles, etc.)
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Header/Footer Color
 * @type color
 * @default_value #222
 */
/**
 * @group Color
 * @label Pre-Footer Color
 * @type color
 * @default_value #ddd
 */
/**
 * @group Color
 * @label Color of links
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Hover color of links
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Background color of post meta boxes (author bio, related posts, etc.)
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Body Background Color
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Page Background Color
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Text Color
 * @type color
 * @default_value #333
 */
/**
 * @group Basics
 * @label Default Vertical Spacing
 * @type pixels
 * @default_value 24px
 */
/**
 * @group Typography
 * @label Sans Font Family
 * @type text
 * @default_value "Helvetica Neue", Helvetica, Arial, sans-serif
 */
/**
 * @group Typography
 * @label Serif Font Family
 * @type text
 */
/**
 * @group Typography
 * @label Base Font Size
 * @type pixels
 */
/**
 * @group Typography
 * @label Sans Font Family
 * @type dropdown
 * @options @serifFontFamily|@sansFontFamily
 * @default_value @serifFontFamily
 */
/**
 * @group Typography
 * @label Base Line Height
 * @type text
 * @default_value 1.5
 */
.clearfix {
  *zoom: 1;
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
}
.clearfix:after {
  clear: both;
}
.visuallyhidden {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
}
.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.input-block-level {
  display: block;
  width: 100%;
  min-height: 28px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
html.nav-open,
html.nav-open body {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.navbar {
  *position: relative;
  *z-index: 2;
  overflow: visible;
  margin-bottom: 4.8px;
  color: #484848;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.navbar .container {
  width: auto;
}
.navbar .toggle-nav-bar {
  display: none;
}
.navbar .navbar-inner {
  background-color: #ffffff;
}
.navbar .navbar-text {
  margin-bottom: 0;
}
.navbar #header-social li > a {
  padding-left: 4px;
  padding-right: 4px;
}
.navbar .nav {
  position: relative;
  left: 0;
  display: block;
  float: left;
  margin: 0;
  color: #484848;
}
.navbar .nav > li > a {
  color: #484848;
}
.navbar li {
  display: block;
  float: left;
  margin-bottom: 0;
}
.navbar li > a {
  display: block;
  text-decoration: none;
  line-height: 40px;
  padding-left: 10px;
  padding-right: 10px;
}
.navbar li.dropdown > a {
  padding-right: 0;
}
.navbar li.dropdown .dropdown-menu li a {
  color: #484848;
  padding-right: 10px;
  line-height: 1.5;
}
.navbar li.dropdown .dropdown-menu li a:hover {
  color: #3b3b3b;
}
.navbar li > a:hover {
  background-color: #f2f2f2;
  color: #3b3b3b;
}
.navbar li > a:hover .caret:before {
  border-top-color: #3b3b3b;
}
.navbar .sub-menu:before,
.navbar .sub-sub-menu:before {
  border-bottom: 9px solid transparent;
  border-left: none;
  border-right: 9px solid rgba(0, 0, 0, 0.2);
  border-top: 9px solid transparent;
  left: -9px;
  top: 30%;
}
.navbar .sub-menu:after,
.navbar .sub-sub-menu:after {
  border-top: 8px solid transparent;
  border-left: none;
  border-right: 8px solid #ffffff;
  border-bottom: 8px solid transparent;
  top: 31%;
  left: -8px;
}
.navbar li.home-icon a:hover,
.navbar li.home-link a:hover {
  background-color: transparent;
  color: #319ecf;
}
.navbar .home-icon:hover img,
.navbar li.home-link:hover i {
  opacity: 0.85;
  filter: alpha(opacity=85);
}
.navbar li.home-link {
  overflow: hidden;
}
.navbar li.home-link > a {
  display: block;
}
.navbar li.home-link > a:hover {
  background: none;
}
.navbar li.home-link > a img {
  display: block;
  height: 40px;
  width: 40px;
}
.navbar li.home-icon > a {
  padding: 0;
}
.navbar li.home-icon > a:hover {
  background: none;
}
.navbar li.home-icon > a img {
  display: inline-block;
  height: 24px;
  width: auto;
  margin-right: 1em;
}
.navbar .btn-navbar {
  display: none;
  float: left;
  margin-right: 10px;
  background-color: transparent;
  border: none;
  padding: 12.5px 10px;
}
.navbar .btn-navbar .label {
  float: right;
  color: white;
  line-height: 1;
  margin: -2px 0 0 5px;
  padding: 0;
  font-size: 15px;
}
.navbar .btn-navbar .navbar .btn-navbar .bars {
  float: left;
}
.navbar .btn-navbar .icon-bar {
  display: block;
  width: 18px;
  height: 3px;
}
.navbar .btn-navbar .icon-bar + .icon-bar {
  margin-top: 3px;
}
@media (min-width: 769px) {
  .navbar .nav-left {
    display: none;
  }
}
@media (max-width: 768px) {
  .navbar {
    position: relative;
    z-index: 9;
  }
  .navbar li.dropdown .dropdown-menu li a {
    line-height: 40px;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 40px;
  }
  .navbar .container {
    width: auto;
    padding: 0;
  }
  .navbar .toggle-nav-bar {
    display: block;
  }
  .navbar .nav-shelf {
    background: #ffffff;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    visibility: hidden;
    opacity: 0;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
  }
  .navbar .nav-shelf .site-name,
  .navbar .nav-shelf .home-icon,
  .navbar .nav-shelf .home-link {
    display: none;
  }
  .navbar .nav-shelf ul,
  .navbar .nav-shelf li {
    float: none;
  }
  .navbar .nav-shelf li.home-link {
    display: none;
  }
  .navbar .nav-shelf li b.caret {
    float: right;
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);
    transform: rotate(-90deg);
  }
  .navbar .nav-shelf li.open > a .caret {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  .navbar .nav-shelf li.open > ul.dropdown-menu {
    display: block;
    position: relative;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    border: none;
    padding: 0;
  }
  .navbar .nav-shelf li.open > ul.dropdown-menu:before,
  .navbar .nav-shelf li.open > ul.dropdown-menu:after {
    display: none;
  }
  .navbar .nav-shelf .nav > li:last-child {
    border-bottom: none;
    padding-bottom: none;
  }
  .navbar.open .nav-shelf {
    visibility: visible;
    opacity: 1;
    border-bottom: 1px solid #dddddd;
  }
  .navbar .nav li.home-link,
  .navbar .nav li.site-name {
    display: none;
  }
}
.navbar-inner {
  float: left;
  width: 100%;
}
.caret {
  display: inline-block;
  position: relative;
  width: 16px;
  padding: 0 8px;
  top: 2px;
}
.caret:before {
  display: block;
  position: relative;
  width: 0;
  height: 0;
  border-top: 6px solid #484848;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  border-bottom: 5px solid transparent;
  content: "";
}
.dropup,
.dropdown {
  position: relative;
}
.dropup .caret,
.dropdown .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
}
.dropup.active .caret,
.dropdown.active .caret {
  opacity: 1;
  filter: alpha(opacity=100);
}
.dropdown-toggle {
  *margin-bottom: -3px;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 3px 0;
  margin: 0;
  list-style: none;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border: 1px solid rgba(0, 0, 0, 0.2);
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
}
.dropdown-menu li {
  padding-top: 0;
  width: 100%;
}
.dropdown-menu li {
  margin-bottom: 0;
}
.dropdown-menu li > a {
  display: block;
  width: auto;
  padding: 3px 15px;
  clear: both;
  white-space: nowrap;
  text-shadow: none;
}
.dropdown-menu li > a:hover {
  text-decoration: none;
}
.dropdown-menu .active > a,
.dropdown-menu .active > a:hover {
  color: #484848;
  background-color: #ffffff;
}
.dropdown-menu:before {
  content: '';
  display: inline-block;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #dddddd;
  border-bottom-color: rgba(0, 0, 0, 0.2);
  position: absolute;
  top: -10px;
  left: 9px;
}
.dropdown-menu:after {
  content: '';
  display: inline-block;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-bottom: 9px solid #ffffff;
  position: absolute;
  top: -9px;
  left: 10px;
}
.dropdown-menu .sub-menu,
.dropdown-menu .sub-sub-menu {
  position: absolute;
  top: -20%;
  left: 99%;
  visibility: hidden;
  margin-top: 0;
}
.dropdown-menu .icon-arrow-right {
  position: relative;
  top: 2px;
  left: 3px;
}
.dropdown-menu li:hover .sub-menu,
.dropdown-menu .sub-menu li:hover .sub-sub-menu {
  visibility: visible;
  display: block;
}
@media (max-width: 768px) {
  .dropdown-menu li:hover .sub-sub-menu,
  .dropdown-menu li:hover .sub-menu {
    display: none;
    visibility: hidden;
  }
  .dropdown-menu li:hover .sub-sub-menu:before,
  .dropdown-menu li:hover .sub-menu:before {
    display: none;
  }
}
@media (min-width: 769px) {
  html.no-touch ul.nav li.dropdown:hover ul.dropdown-menu,
  html.touch ul.nav li.dropdown.open ul.dropdown-menu {
    display: block;
  }
}
.open {
  *z-index: 1000;
}
.open > .dropdown-menu {
  display: block;
}
@media (min-width: 769px) {
  .open > .dropdown-menu {
    display: none;
  }
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px solid #000000;
  content: "\2191";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 1px;
}
#topics-bar {
  padding: 3px 0;
}
#topics-bar ul {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#topics-bar ul li {
  display: inline;
  margin-right: 10px;
  white-space: nowrap;
  font-size: 14px;
}
#topics-bar ul li.menu-label {
  font-size: 15px;
  font-weight: bold;
}
#main-nav.navbar {
  border-top: 1px solid #aaaaaa;
  border-bottom: 1px solid #aaaaaa;
}
.sticky-nav-container {
  margin: 0 auto;
  position: relative;
}
.sticky-nav-holder {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99998;
  visibility: hidden;
  opacity: 0;
  background-color: #ffffff;
  border-bottom: 1px solid #dddddd;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.sticky-nav-holder.transitioning {
  overflow: hidden;
  height: 56px;
}
.sticky-nav-holder.transitioning .navbar {
  opacity: 0;
}
.sticky-nav-holder.show {
  visibility: visible;
  opacity: 1;
}
body.admin-bar .sticky-nav-holder {
  top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar .sticky-nav-holder {
    top: 46px;
  }
}
@media (max-width: 600px) {
  body.admin-bar .sticky-nav-holder {
    top: 0;
  }
}
@media (min-width: 769px) {
  .sticky-nav-holder {
    display: none;
  }
  body .sticky-nav-holder.main_nav_hide_article,
  body .sticky-nav-holder.sticky_nav_display {
    display: block;
  }
}
.navbar.sticky-navbar {
  margin-bottom: 0;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.navbar.sticky-navbar .nav {
  color: #484848;
}
.navbar.sticky-navbar li a {
  line-height: 56px;
  color: #484848;
}
.navbar.sticky-navbar li a:hover {
  color: #3b3b3b;
}
.navbar.sticky-navbar li a .caret:before {
  border-top-color: #484848;
}
.navbar.sticky-navbar li a:hover .caret:before {
  border-top-color: #3b3b3b;
}
.navbar.sticky-navbar li.home-link > a:hover {
  color: #555555;
}
.navbar.sticky-navbar li.dropdown .dropdown-menu li a {
  color: #484848;
}
.navbar.sticky-navbar li.dropdown .dropdown-menu li a:hover {
  color: #3b3b3b;
}
.navbar.sticky-navbar .social-icons {
  margin: 0;
  float: left;
}
.navbar.sticky-navbar .btn-navbar {
  padding: 0 10px 0 10px;
  margin-right: 0;
  line-height: 56px;
}
.navbar.sticky-navbar .btn-navbar .bars {
  display: inline-block;
}
.navbar.sticky-navbar .btn-navbar .icon-bar {
  background-color: #484848;
}
.navbar.sticky-navbar .btn-navbar:hover .icon-bar {
  background-color: #3b3b3b;
}
.navbar.sticky-navbar.home-link {
  min-width: 40px;
  text-align: center;
}
.navbar.sticky-navbar.home-link .nav > li a img {
  width: 1.49em;
  height: 1.49em;
}
.navbar.sticky-navbar.home-link .nav > li .icon-home:before {
  position: relative;
  top: 0;
}
.navbar.sticky-navbar .nav-right {
  float: right;
}
.navbar.sticky-navbar .nav-right #header-extras {
  float: left;
  margin: 0;
}
.navbar.sticky-navbar .nav-right #header-extras a.donate-link:hover {
  background: transparent;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span {
  padding: 4px 8px;
  color: #ffffff;
  background-color: #b43434;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span:hover {
  background-color: #c63b3b;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span i {
  display: none;
}
.navbar.sticky-navbar .nav-right .form-search {
  position: relative;
}
.navbar.sticky-navbar .nav-right .form-search .toggle {
  color: transparent;
  display: inline-block;
  text-align: center;
  cursor: pointer;
  position: relative;
  z-index: 91;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  -ms-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
}
.navbar.sticky-navbar .nav-right .form-search .input-append {
  position: absolute;
  right: 44px;
  top: 0;
  right: 0;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  -ms-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  padding: 10px;
  z-index: 90;
  width: 246px;
}
.navbar.sticky-navbar .nav-right .form-search .input-append .text-input-wrapper {
  display: block;
  float: left;
  width: 196px;
}
.navbar.sticky-navbar .nav-right .form-search .input-append input {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  height: 36px !important;
}
.navbar.sticky-navbar .nav-right .form-search .input-append button {
  width: 50px !important;
  height: 36px !important;
  float: left;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .input-append {
  position: absolute;
  opacity: 1;
  visibility: visible;
}
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .input-append,
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .toggle {
  background-color: #343434;
  color: #ffffff;
}
.navbar.sticky-navbar .nav-left > ul {
  margin: 0;
  padding: 0;
}
@media (min-width: 769px) {
  .navbar.sticky-navbar .nav-left {
    display: none;
  }
}
.navbar.sticky-navbar .site-name {
  display: block;
  color: #343434;
}
.navbar.sticky-navbar .site-name a {
  font-weight: bold;
  padding: 0 10px 0 0;
  color: #484848;
  max-width: 214px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.navbar.sticky-navbar .site-name a:hover {
  background-color: transparent;
  color: #3b3b3b;
  text-decoration: none;
}
.navbar.sticky-navbar .nav-right {
  float: right;
}
.navbar.sticky-navbar .nav-right #header-extras {
  float: left;
  margin: 0;
}
.navbar.sticky-navbar .nav-right #header-extras a.donate-link:hover {
  background: transparent;
}
@media (max-width: 768px) {
  .navbar.sticky-navbar li.dropdown .dropdown-menu li a {
    line-height: 56px;
  }
  .navbar.sticky-navbar .nav-shelf b.caret {
    padding: 22px;
  }
}
#menu-overflow > ul {
  overflow-y: scroll;
  max-height: 80vh;
}
#menu-overflow > ul .caret::before,
#menu-overflow > ul .caret::after {
  display: none;
}
#menu-overflow > ul ul.dropdown-menu {
  position: relative;
  border: none;
  float: none;
  box-shadow: none;
}
#menu-overflow > ul ul.dropdown-menu li a {
  padding-left: 1.5em;
}
#menu-overflow > ul ul.dropdown-menu::before,
#menu-overflow > ul ul.dropdown-menu::after {
  display: none;
}
#menu-overflow > ul ul.dropdown-menu .sub-menu,
#menu-overflow > ul ul.dropdown-menu .sub-sub-menu {
  display: none;
}
/**
 * Before Footer, Site Footer
 *
 * #before-footer - a dynamic widget area prior to #site-footer
 * #site-footer
 *   #supplementary - primary widget zones for site footer
 *   #boilerplate - social icons, copyright, INN logo and footer links
 *
 * @since 0.5.3
 */
.before-footer-wrapper {
  background-color: #dddddd;
}
#before-footer .widget:last-child {
  margin-bottom: 0;
}
.footer-bg {
  background-color: #222222;
  padding: 0 0 18px;
  margin-bottom: 0;
}
#supplementary {
  padding: 24px 0 0 0;
}
#supplementary._1col aside {
  text-align: center;
}
/* specific to the one column footer layout */
._1col .widget_nav_menu li {
  display: inline;
  margin-right: 1em;
}
/*
 * image displays 300px wide, but is physically 1699x385 px^2
 * We'll use math to get the padding top and bottom correct, according to the brand guidelines
 * margin top and margin bottom should be equal to the height of one of the squares.
 * By cropping the image to the outer boundary of the lower-left square in inn_logo_reversetype.png, we get a square height of 184px.
 * 184/1669 = x/300
 */
#inn-logo {
  margin-top: 22.04913122px;
  margin-bottom: 16.53684841px;
  max-width: 200px;
}
#footer-logos-bg {
  background-color: #ffffff;
  padding: 10px 0;
}
#footer-logos {
  overflow: hidden;
}
#footer-logos a {
  display: block;
  float: left;
  width: 16.666666667%;
}
#footer-logos a img {
  display: block;
  width: 100%;
  max-width: 180px;
  margin: 0 auto;
}
#footer-logos h6 {
  margin-bottom: 4px;
  padding-bottom: 3px;
  border-bottom: 1px solid #dddddd;
  font-size: 12px;
  color: #7d8185;
  text-transform: uppercase;
  font-weight: normal;
}
#footer-logos h6 a {
  float: right;
  text-align: right;
}
ul#footer-social {
  padding-top: 22.04913122px;
  padding-bottom: 16.53684841px;
  margin: 0 auto;
  width: 100%;
}
@media (max-width: 768px) {
  ul#footer-social {
    text-align: left;
  }
}
ul#footer-social li {
  height: 46.13541043px;
  display: table-cell;
  vertical-align: middle;
  font-size: 18px;
}
@media (max-width: 768px) {
  ul#footer-social li {
    margin-top: 0;
  }
}
ul#footer-social li a {
  padding-right: 10px;
  padding-top: 16.07737739px;
}
ul#footer-social li i {
  position: relative;
  top: 0;
  padding: 5px;
  margin-top: 27.56141402;
  font-size: 18px;
  color: #ffffff;
}
ul#footer-social li i:hover {
  color: #bfbfbf;
}
ul#footer-social li:last-child a {
  padding-right: 0;
}
#boilerplate {
  width: 100%;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#boilerplate p {
  margin-bottom: 0;
  color: #9F9FA3;
}
#boilerplate .menu {
  display: inline;
  margin: 0;
  font-size: 10.672px;
}
#boilerplate .menu li {
  display: inline;
  padding-right: 10px;
}
#boilerplate .menu {
  clear: none;
}
footer #boilerplate p {
  color: #9F9FA3;
}
footer #boilerplate a {
  color: #dddddd;
}
footer #boilerplate a:hover {
  color: #09C9FF;
}
@media (min-width: 769px) {
  #boilerplate .span6.right {
    text-align: right;
    margin-top: 0;
    margin-bottom: 0;
  }
}
@media (min-width: 979px) {
  .footer-credit-padding-inn-logo-missing {
    margin-top: 84.72139005px;
  }
}
@media (max-width: 979px) {
  #boilerplate .row-fluid .span6 {
    width: 100%;
    clear: both;
    margin-left: 0;
    text-align: center;
  }
  ul#footer-social {
    display: inline-block;
    width: auto;
    margin: 0 auto;
  }
  .footer-credit span {
    display: block;
  }
}
.back-to-top {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
}
body.normal.single-post article.post > header .entry-date,
body.normal.single-post article.post > header .sep {
  display: inline;
}
.top-date {
  display: none;
}
.byline .twitter {
  margin-left: 0.3em;
}
.byline .twitter a:hover {
  color: #55acee;
}
p.wp-caption-text {
  font-family: "helvetica neue", helvetica, sans-serif;
  font-size: 14px !important;
  font-weight: 400;
  letter-spacing: 0.0125em;
}
figcaption cite {
  font-style: normal;
}
/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 700;
  color: #484848;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  color: #484848;
}
/*  Nats changes to heading sizes  */
.entry-content h1,
entry-content h2 {
  font-size: 30px;
}
.entry-content h3 {
  font-size: 24px;
}
.entry-content h4,
.entry-content h5 .entry-content h6 {
  font-size: 20px;
}
.entry-content h5,
.entry-content h6 {
  color: gray;
}
#topics-bar ul li {
  text-transform: capitalize;
}
/* end nat's changes */
a {
  color: #b43434;
}
a:hover {
  color: #b43434;
  text-decoration: underline;
}
p,
button,
input,
select,
textarea {
  font-family: "leitura-news", Georgia, serif;
  font-weight: 300;
}
h5.byline {
  font-family: "helvetica neue", helvetica, sans-serif;
}
/* Largo Helvetica Overrides */
.top-tag,
.nav,
.top-date,
.load-more,
.post-social > span,
.rss-subscribe-link,
.tags,
.related-items p,
.subscribe,
.widget.largo-series-posts li a,
ul.staff-roster .staff-name,
.archive-background .related-topics,
.labels,
.navbar,
.pager,
.post-pagination a,
.post-pagination span,
#sidebar .widget_analytic-bridge-popular-posts ol li::before {
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 300;
}
.widgettitle,
.stories h3.widgettitle {
  font-size: 32px;
  text-align: left;
  color: #226f91;
  padding-bottom: 0.3em;
  border-bottom: 2px solid #226f91;
}
.widgettitle a,
.stories h3.widgettitle a {
  color: #226f91;
}
.widget {
  padding: 0;
}
.widget h5 {
  font-weight: 400;
}
.widget img.attachment-large,
.widget img.attachment-medium {
  padding-bottom: 0;
  margin-bottom: 0.66em;
}
#sidebar .widget {
  margin-top: 24px;
}
#sidebar .widget:first-child {
  margin-top: 0;
}
#sidebar .widgettitle {
  font-size: 24px;
}
.author-box ul li a {
  background-color: #226f91;
}
.author-box ul li a:hover {
  background-color: #2c8fba;
}
.article-bottom .author-box .widgettitle {
  font-size: 24px;
  border-bottom: none;
  padding-bottom: 0;
}
.widget-area .largo-taxonomy-list h5 {
  margin-bottom: 0;
}
.largo-taxonomy-list a {
  color: #484848;
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 300;
}
.largo-taxonomy-list a:hover {
  color: #226f91;
}
.largo-taxonomy-list img {
  margin-bottom: 1em;
}
.largo-taxonomy-list li {
  margin-bottom: 20px;
}
.saved-links {
  border: 1px solid #aaaaaa;
  padding: 24px;
}
.source {
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 300;
}
.widget.saved-links .post-lead p {
  font-size: 12px;
}
.widget.saved-links .post-lead h5 {
  padding: 0;
}
.widget.saved-links .post-lead p.description {
  margin-bottom: 6px;
}
.dfw-unit {
  text-align: center;
}
.dfw-unit:before {
  content: "Advertisement";
  text-align: center;
  font-family: "helvetica neue", helvetica, sans-serif;
  text-transform: uppercase;
  font-size: 10px;
  width: 100%;
  color: #7d8185;
  display: block;
}
#header-ad-zone-container div div,
#before-footer div div,
.ad-zone.center div div {
  margin: 0 auto;
}
#header-ad-zone-container .dfw-unit:before,
#before-footer .dfw-unit:before,
.ad-zone.center .dfw-unit:before {
  content: none;
}
#header-ad-zone-container {
  width: 100%;
  border-bottom: 1px solid #ccc;
  padding: 5px 0;
}
.before-footer-wrapper {
  background-color: #fff;
}
#before-footer {
  padding: 4px 0 8px;
}
#sidebar .widget_analytic-bridge-popular-posts li + li {
  border-top: none;
  margin-top: 0;
  padding-top: 12px;
}
#site-footer li {
  letter-spacing: 0.1em;
  font-weight: 300;
}
#site-footer li a {
  color: #ffffff;
}
#site-footer li a:hover {
  color: #b43434;
  text-decoration: underline;
}
#site-footer li ul {
  margin-top: 12px;
}
@media (max-width: 768px) {
  #site-footer li li:last-child,
  #site-footer .widget,
  #site-footer div[class^="span"] {
    margin-bottom: 0;
  }
}
#boilerplate p {
  font-family: "helvetica neue", helvetica, sans-serif;
}
#site-footer .span5 ul li:last-child a {
  padding: 12px;
  display: inline-block;
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
#site-footer .span5 ul li:last-child a a,
#site-footer .span5 ul li:last-child a a:hover {
  color: #fff;
  text-decoration: none;
}
#site-footer .span5 ul li:last-child a:hover {
  background-color: #cc4f4f;
  color: #fff;
}
/* Changed button position per Tom's request NF */
header .newsletter-signup {
  position: absolute;
  top: 70px;
  right: 60px;
  margin-left: 20px;
  font-size: 20px;
}
.newsletter-signup {
  z-index: 999;
}
.newsletter-signup a {
  color: #000000;
  font-family: "tablet-gothic-condensed", sans-serif;
}
.newsletter-signup a:hover {
  text-decoration: none;
  color: #4d4d4d;
}
.newsletter-signup a:hover span {
  background-color: #cc4f4f;
  color: #ffffff;
}
.newsletter-signup span {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  padding: 5px 8px 8px 8px;
  margin-left: 6px;
}
.newsletter-signup span a,
.newsletter-signup span a:hover {
  color: #fff;
  text-decoration: none;
}
.newsletter-signup span:hover {
  background-color: #cc4f4f;
  color: #fff;
}
.article-bottom .newsletter-signup {
  font-size: 24px;
  margin-bottom: 2em;
}
.global-nav #header-search {
  display: none;
}
#header-search {
  float: right;
  margin-top: 12px;
}
.donate-btn {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
.donate-btn a,
.donate-btn a:hover {
  color: #fff;
  text-decoration: none;
}
.donate-btn:hover {
  background-color: #cc4f4f;
  color: #fff;
}
#site-header {
  position: relative;
  margin: 10px 0;
}
#site-header .header_img {
  max-width: 208px;
  width: 100%;
  height: auto;
}
#main-nav.navbar {
  border-top: 2px solid #aaa;
  border-bottom: 2px solid #aaa;
}
#main-nav.navbar li {
  font-size: 20px;
}
#main-nav.navbar li > a {
  line-height: 52px;
}
#main-nav.navbar .dropdown-menu li > a {
  line-height: 40px;
}
#topics-bar a {
  color: #226f91;
}
/* Base styles for section and widget titles */
.section-title {
  font-size: 32px;
  text-align: left;
  color: #226f91;
  padding-bottom: 0.3em;
  border-bottom: 2px solid #226f91;
}
.text-align-center {
  text-align: center;
}
.cta-button {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
.cta-button a,
.cta-button a:hover {
  color: #fff;
  text-decoration: none;
}
.cta-button:hover {
  background-color: #cc4f4f;
  color: #fff;
}
/**
 * Define the various paddings and heights around the flag
 */
/**
 * Increase the height of the padding on post headlines
 */
body.normal.single-post .post-type-press-releases h1.entry-title,
body.normal.single-post .post-type-sponsored h1.entry-title {
  padding-top: 62px;
  clear: both;
}
@media (max-width: 768px) {
  body.normal.single-post .post-type-press-releases h1.entry-title,
  body.normal.single-post .post-type-sponsored h1.entry-title {
    padding-top: 1.25em;
  }
}
/**
 * A mixin to set up the basic ::before and ::after and background and padding for the Press Releases and Sponsored post types.
 *
 * Doesn't set the background color or the border colors. Does set their widths and padding.
 */
.flag-mixin {
  color: #fff;
  padding: 0.625em;
  position: relative;
  display: inline-block;
  font-weight: bold;
  font-family: "helvetica neue", helvetica, sans-serif;
  letter-spacing: 0.02em;
  box-sizing: border-box;
}
.flag-mixin::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin-right: -1.275em;
  background: transparent;
  border-left-width: 1px;
  border-left-style: solid;
  border-top-width: 1.275em;
  border-top-style: solid ;
  border-right: 1.275em solid transparent;
  border-bottom-width: 1.275em;
  border-bottom-style: solid;
}
/*
 * General post styles
 */
.post-type-press-releases .top-tag span,
.post-type-sponsored .top-tag span {
  z-index: 10;
}
.post-type-press-releases .top-tag a,
.post-type-sponsored .top-tag a {
  color: #fff;
  padding: 0.625em;
  position: relative;
  display: inline-block;
  font-weight: bold;
  font-family: "helvetica neue", helvetica, sans-serif;
  letter-spacing: 0.02em;
  box-sizing: border-box;
  font-size: 20px;
}
.post-type-press-releases .top-tag a::after,
.post-type-sponsored .top-tag a::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin-right: -1.275em;
  background: transparent;
  border-left-width: 1px;
  border-left-style: solid;
  border-top-width: 1.275em;
  border-top-style: solid ;
  border-right: 1.275em solid transparent;
  border-bottom-width: 1.275em;
  border-bottom-style: solid;
}
/*
 * Specific color styles
 */
.post-type-press-releases .top-tag a {
  background-color: #f0b956;
}
.post-type-press-releases .top-tag a::after {
  border-top-color: #f0b956;
  border-left-color: #f0b956;
  border-bottom-color: #f0b956;
}
.post-type-sponsored .top-tag a {
  background-color: #50c5f7;
}
.post-type-sponsored .top-tag a:after {
  border-top-color: #50c5f7;
  border-left-color: #50c5f7;
  border-bottom-color: #50c5f7;
}
.topstory-below .has-thumbnail.post-type-press-releases .top-tag,
.topstory-below .has-thumbnail.post-type-sponsored .top-tag {
  padding: 0;
}
.topstory-below .has-thumbnail.post-type-press-releases .top-tag a,
.topstory-below .has-thumbnail.post-type-sponsored .top-tag a {
  font-size: 16px;
  color: #ffffff;
}
.topstory-below .has-thumbnail.post-type-press-releases .top-tag a::after,
.topstory-below .has-thumbnail.post-type-sponsored .top-tag a::after {
  z-index: 0;
}
.post-type-press-releases .entry-content h5.top-tag,
.post-type-sponsored .entry-content h5.top-tag {
  display: inline-block;
  clear: both;
  margin-bottom: 1em;
}
.post-type-press-releases .entry-content h5.top-tag a,
.post-type-sponsored .entry-content h5.top-tag a {
  font-size: 16px;
  color: #fff;
}
/**
 * The hierarchical header doesn't display a top term (used in categories), so we fake it with a ::before
 */
.primary-featured-post .post-type-press-releases::before,
.secondary-featured-post .post-type-press-releases::before,
.primary-featured-post .post-type-sponsored::before,
.secondary-featured-post .post-type-sponsored::before {
  height: 40px;
  display: inline-block;
  color: #fff;
  font-weight: bold;
  font-family: "helvetica neue", helvetica, sans-serif;
  letter-spacing: 0.02em;
  background-color: #f0b956;
  padding-bottom: 0;
  padding-top: 0;
  padding-right: 10px;
  padding-left: 10px;
  z-index: 0;
  box-sizing: border-box;
  line-height: 0;
  border-top: 20px solid #f0b956;
  border-bottom: 20px solid #f0b956;
  border-right: 20px solid white;
  margin-bottom: 10px;
}
@media (min-width: 769px) {
  .secondary-featured-post .span8 .post-type-press-releases::before,
  .secondary-featured-post .span8 .post-type-sponsored::before {
    margin-left: 2.12765957%;
  }
}
.primary-featured-post .post-type-sponsored::before,
.secondary-featured-post .post-type-sponsored::before {
  content: "SPONSORED";
  border-top-color: #50c5f7;
  border-bottom-color: #50c5f7;
}
.primary-featured-post .post-type-press-releases::before,
.secondary-featured-post .post-type-press-releases::before {
  content: "PRESS RELEASE";
}
h5.top-tag {
  margin-bottom: 12px;
}
/**
 * Styles for the sponsored content div that can be pasted into the top of stories.
 *
 * .sponcon-sponsor-before-wrapper is for legacy HTML.
 */
.sponcon-sponsor-before-wrapper,
.sponsored-by {
  background-color: #f5f5f5;
  padding: 0.5em 0.75em 0.75em;
  border: 1px solid #e3e3e3;
  margin-bottom: 15px;
  *zoom: 1;
}
.sponcon-sponsor-before-wrapper:before,
.sponsored-by:before,
.sponcon-sponsor-before-wrapper:after,
.sponsored-by:after {
  display: table;
  content: "";
}
.sponcon-sponsor-before-wrapper:after,
.sponsored-by:after {
  clear: both;
}
.sponcon-sponsor-before-wrapper h3,
.sponsored-by h3,
.sponcon-sponsor-before-wrapper p,
.sponsored-by p {
  font-family: "tablet-gothic-condensed", sans-serif;
}
.sponcon-sponsor-before-wrapper h3,
.sponsored-by h3 {
  margin-bottom: 8px;
  font-size: 16px;
}
.sponcon-sponsor-before-wrapper p,
.sponsored-by p {
  margin-top: 1.5em;
  margin-bottom: 0;
  font-size: 18px;
}
.sponcon-sponsor-before-wrapper .align-left,
.sponsored-by .align-left {
  max-width: 50%;
  margin-top: 0;
  margin-bottom: 0;
}
.sponcon-sponsor-before-wrapper .sponcon-sponsor-before-sponsored-by,
.sponsored-by .sponcon-sponsor-before-sponsored-by {
  float: left;
  margin: 6px 20px 12px 0;
}
.sponcon-sponsor-before-wrapper figure,
.sponsored-by figure {
  margin: 0;
}
/**
 * Press release posts menu, inserted into posts
 * 
 * @see rns_press_release_menu
 */
#press-release-menu ul {
  border: 1px solid #999;
  padding-top: 1em;
  padding-right: 1em;
  padding-bottom: 1em;
  padding-left: 2em;
  font-family: "tablet-gothic-condensed", sans-serif;
}
@media (max-width: 1079px) {
  #sidebar #press-release-menu.widget {
    min-width: 100%;
    box-sizing: border-box;
  }
}
@media (min-width: 1080px) {
  #sidebar #press-release-menu.widget {
    width: 300px;
    max-width: 100%;
  }
}
/**
 * Add a margin-bottom to the press release featured image in the main body of the post
 */
@media (max-width: 768px) {
  #feat-img-press-releases {
    margin-bottom: 24px;
  }
}
.single-roundup article header,
.single-roundup .article-bottom,
.single-roundup .entry-content {
  padding: 0 17.021276594%;
}
.single-roundup .entry-content h3 {
  font-size: 32px;
  text-align: left;
  color: #226f91;
  padding-bottom: 0.3em;
  border-bottom: 2px solid #226f91;
  text-transform: uppercase;
}
.single-roundup .entry-content .headline-excerpt h4.top-tag {
  text-transform: uppercase;
  font-family: "tablet-gothic-condensed", sans-serif;
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 2px;
  color: #aaa;
}
.single-roundup .entry-content .headline-excerpt h3 {
  padding: 0;
  border-bottom: none;
  font-size: 24px;
  margin-bottom: 6px;
}
.single-roundup .entry-content .headline-excerpt .article-content {
  margin-bottom: 1.5em;
}
@media only screen and (max-width: 979px) {
  .single-roundup .article-bottom,
  .single-roundup .entry-content {
    padding: 0 6.38297872%;
  }
}
@media only screen and (max-width: 529px) {
  .single-roundup .article-bottom,
  .single-roundup .entry-content {
    padding: 0;
  }
}
body.normal.page .entry-content .entry-content {
  padding: 0 10%;
  margin-top: 24px;
}
.columns-header + header {
  margin-top: 2em;
}
body.tax-columns #main .hero.is-image img,
body.single-format-standard #main .hero.is-image img {
  border: none;
}
.entry-content .tax-term-listing img.thumb {
  max-width: 80px;
}
.entry-content .tax-term-listing h3 {
  font-size: 32px;
  margin-bottom: 8px;
}
.entry-content .tax-term-listing h3.widgettitle {
  border-bottom: 1px solid #aaa;
}
.entry-content .tax-term-listing h3.widgettitle a {
  color: #333;
}
.entry-content .tax-term-listing h3.entry-title {
  font-size: 24px;
  margin-bottom: 0;
}
.entry-content .tax-term-listing h5.byline {
  margin-bottom: 8px;
  margin-top: 8px;
  font-size: 15px;
}
.entry-content .tax-term-listing p {
  font-size: 18px;
  margin-bottom: 8px;
}
.entry-content .tax-term-listing p.recent {
  font-size: 15px;
}
.entry-content .tax-term-listing p.recent span {
  font-size: 11px;
  font-style: italic;
}
.entry-content .tax-term-listing article {
  margin-bottom: 8px;
}
.entry-content .tax-term-listing .item {
  margin-top: 36px;
  margin-bottom: 36px;
}
.entry-content .tax-term-listing .item::after {
  content: "";
  visibility: hidden;
  display: block;
  height: 0;
  clear: both;
  opacity: 0;
}
.gform_button {
  padding: 12px;
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
}
.gform_button a,
.gform_button a:hover {
  color: #fff;
  text-decoration: none;
}
.gform_button:hover {
  background-color: #cc4f4f;
  color: #fff;
}
.ui-datepicker {
  width: 260px;
}
.ui-datepicker td a {
  width: 36px;
}
.ui-datepicker-header {
  padding: 10px 20px 20px;
}
.gform_wrapper .gfield_checkbox li label {
  display: block;
  margin-bottom: 5px;
  font-size: 16px;
  float: left;
  padding-left: 3%;
  position: relative;
}
.gform_wrapper .gfield_checkbox li input[type='checkbox'] {
  position: absolute;
  left: 0;
}
.gform_wrapper input[type=text] {
  margin-bottom: 0;
}
.gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label {
  margin-bottom: 24px;
}
.gform_wrapper.gf_browser_chrome .ginput_complex .ginput_right select,
.gform_wrapper.gf_browser_chrome .ginput_complex select {
  height: 41px;
  margin-bottom: 0 !important;
}
#gform_wrapper_17 ul.gfield_radio li {
  display: inline;
  margin-right: 20px;
}
#gform_wrapper_17 ul.gfield_radio li input {
  display: none;
}
#gform_wrapper_17 ul.gfield_radio li label {
  padding: 12px 24px;
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  font-size: 18px;
}
#gform_wrapper_17 ul.gfield_radio li label a,
#gform_wrapper_17 ul.gfield_radio li label a:hover {
  color: #fff;
  text-decoration: none;
}
#gform_wrapper_17 ul.gfield_radio li label:hover {
  background-color: #cc4f4f;
  color: #fff;
}
#gform_wrapper_17 ul.gfield_radio li input[type=radio]:checked + label {
  background-color: #7d8185;
  font-weight: 500;
}
#gform_wrapper_24 .gfield_description {
  padding-top: 8px;
}
#gform_wrapper_24 .gform_next_button,
#gform_wrapper_24 .gform_previous_button {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  padding: 12px 24px;
}
#gform_wrapper_24 .gform_next_button a,
#gform_wrapper_24 .gform_previous_button a,
#gform_wrapper_24 .gform_next_button a:hover,
#gform_wrapper_24 .gform_previous_button a:hover {
  color: #fff;
  text-decoration: none;
}
#gform_wrapper_24 .gform_next_button:hover,
#gform_wrapper_24 .gform_previous_button:hover {
  background-color: #cc4f4f;
  color: #fff;
}
#gform_wrapper_24 .gform_previous_button {
  background-color: #7d8185;
  margin-top: 8px;
}
/**
 * Styles for search forms and search results
 *
 * Styles for the global nav search are in less/inc/header.less
 */
.archive.search-results .input-append {
  width: 100%;
  position: relative;
}
.archive.search-results .form-search {
  margin-bottom: 1em;
}
.archive.search-results .form-search input {
  width: 90%;
  box-sizing: border-box;
}
.archive.search-results .form-search button {
  width: 10%;
  box-sizing: border-box;
}
.archive.search-results .search-term {
  background-color: #dddddd;
  padding: 1px 5px;
}
.archive.search-results h3 .rss-link {
  margin-left: 1em;
}
.archive.search-results h3 {
  margin-bottom: 1em;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #7d8185;
}
.archive.search-results .stories article {
  padding-bottom: 12px;
}
.archive.search-results .entry-content p {
  margin-bottom: 0;
}
.archive.search-results .date-link a,
.archive.search-results .date-link {
  color: #7d8185;
}
/* Google CSE */
.gcs_container {
  margin: 20px 0;
}
.gcs_container table {
  margin: 0;
}
.gcs_container table,
.gcs_container tbody,
.gcs_container tr,
.gcs_container td {
  border: none;
}
.gcs_container .gsc-search-box {
  margin: 18px 0;
}
.gcs_container .gsc-search-box .gsst_a .gscb_a {
  position: relative;
  top: 3px;
}
.gcs_container .gsc-search-box td.gsib_a {
  padding: 0 6px !important;
}
.gcs_container .gsc-control-cse .gs-result .gs-title,
.gcs_container .gsc-control-cse .gs-result .gs-title * {
  font-size: 22px;
  line-height: 1.2;
}
/**
 * Styles for the 'download' post type registered by Easy Digital Downloads
 */
/**
 * Styles for single-download.php and partials/content-download.php
 */
.type-download h1.entry-title {
  font-size: 28px;
}
.type-download .download-contents-title {
  margin-top: 1em;
  margin-bottom: 12px;
}
.type-download .download-contents li {
  list-style-type: none;
}
.type-download .download-contents .size {
  display: inline-block;
  font-family: "tablet-gothic-condensed", sans-serif;
  padding: 0 2px;
  margin-left: 0.5em;
  font-size: 0.8em;
  outline: 1px solid #b43434;
}
@media only screen and (min-width: 768px) {
  .type-download .entry-content {
    padding: 0 17.021276594%;
  }
  .type-download > header {
    clear: both;
    margin: 24px 17.0213%;
    position: relative;
  }
}
.edd-add-to-cart.button.blue {
  background-color: #b43434;
  border-radius: 3px;
  border: none;
  color: #fff;
  font-family: "tablet-gothic-condensed", sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  font-size: 1.3em;
}
.edd-add-to-cart.button.blue a,
.edd-add-to-cart.button.blue a:hover {
  color: #fff;
  text-decoration: none;
}
.edd-add-to-cart.button.blue:hover {
  background-color: #cc4f4f;
  color: #fff;
}
/* General Styles */
body p {
  color: #151719;
}
.global-nav-bg {
  height: 38px;
  background-color: #222;
  margin-top: -30px;
}
.textwidget {
  font-family: "leitura-news", Georgia, serif;
  font-size: 16px;
}
.btn {
  text-transform: uppercase;
}
.btn.btn-primary {
  background-color: #226f91;
  color: #ffffff;
  border: none;
}
.btn.btn-primary:hover {
  background-color: #1d5f7c;
}
#main img {
  border: 1px solid #eee;
}
#nav-below,
.morelink,
#nav-below.pager {
  text-align: center;
  display: block;
  clear: both;
  margin: 24px 0;
  font-family: "tablet-gothic-condensed", sans-serif;
  font-weight: 300;
}
#nav-below a,
.morelink a,
#nav-below.pager a {
  padding: 12px 24px;
  font-size: 20px;
  color: #fff;
  background-color: #226f91;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
#nav-below a:hover,
.morelink a:hover,
#nav-below.pager a:hover {
  background-color: #aaa;
  color: #fff;
  text-decoration: none;
}
#nav-below.pager a,
#nav-below .morelink a {
  padding: 24px 48px;
}
.page-template-page-clean header.text-align-center {
  margin-top: 10px;
}
body.normal.page-template-page-clean article.page > header.entry-header {
  margin: 24px 0;
}
/* ================= Nat's Edits =================== */
/* keeps archive hero image backgrounds white */
.hero figure {
  clear: both;
  margin: 1em 0;
  background: #fff !important;
}
/* fixes figure tag to not mess with blog headings */
.archive .hero figure,
.category-opinion .hero figure {
  display: block;
  -webkit-margin-before: 0 !important;
  -webkit-margin-after: 0 !important;
  -webkit-margin-start: 0 !important;
  -webkit-margin-end: 0 !important;
  background: #fff !important;
}
/* fixes small gallery previous / next arrows */
.navis-slideshow a.slick-previous:before {
  left: 15px !important;
  border-width: 50px 30px 50px 0 !important;
}
.navis-slideshow a.slick-next:before {
  left: 0 !important;
  border-width: 50px 0 50px 30px !important;
}
/* ================= End Nat's Edits =================== */
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xhcmdvL2xlc3MvaW5jL21peGlucy5sZXNzIiwiLi4vbGFyZ28vbGVzcy9pbmMvbmF2YmFyLWNvbW1vbi5sZXNzIiwiLi4vbGFyZ28vbGVzcy9pbmMvdmFyaWFibGVzLmxlc3MiLCIuLi9sYXJnby9sZXNzL2luYy9uYXZiYXItc3RpY2t5Lmxlc3MiLCIuLi9sYXJnby9sZXNzL2luYy9mb290ZXIubGVzcyIsImxlc3Mvc2luZ2xlLmxlc3MiLCJsZXNzL3ZhcnMubGVzcyIsImxlc3MvX3R5cG9ncmFwaHkubGVzcyIsImxlc3MvX3dpZGdldHMubGVzcyIsImxlc3MvX21peGlucy5sZXNzIiwibGVzcy9faGVhZGVyLmxlc3MiLCJsZXNzL3Nwb25zb3JlZC5sZXNzIiwibGVzcy9zbGluZ3Nob3RzLmxlc3MiLCJsZXNzL2NvbHVtbnMubGVzcyIsImxlc3MvdGF4Lmxlc3MiLCJsZXNzL2Zvcm1zLmxlc3MiLCIuLi9sYXJnby9sZXNzL2luYy9zZWFyY2gubGVzcyIsImxlc3MvZG93bmxvYWRzLmxlc3MiLCJsZXNzL3N0eWxlLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQTtFQUNFLFFBQUE7O0FBQ0EsU0FBQztBQUNELFNBQUM7RUFDQyxjQUFBO0VBQ0EsU0FBUyxFQUFUOztBQUVGLFNBQUM7RUFDQyxXQUFBOztBQU9KO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLE1BQU0sYUFBTjtFQUNBLFdBQUE7RUFBYSxVQUFBO0VBQ2IsWUFBQTtFQUFjLFVBQUE7RUFBWSxTQUFBOztBQU01QjtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsNkJBQUE7RUFDQSxTQUFBOztBQUlGO0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQXdQQSw4QkFBQTtFQUNHLDJCQUFB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Q0Esc0JBQUE7RUFDQSxpQkFBQTs7QUFJSjtFQUNFLGFadENLLDhCWXNDTDtFQUNBLGVBQUE7O0FBR0Y7RUFDRSx5QkFBQTs7QUFDQSxJQUFDO0VBQ0MseUJBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTs7QUFDQSxJQUpELFlBSUU7RUFDQyx5QkFBQTs7QUFLTixLQUFNO0VBQ0osc0JBQUE7O0FBR0Y7QUFDQTtBQUNBLFVBQVU7RUFDUixrQkFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGFabEVLLHFDWWtFTDtFQUNBLGdCQUFBOztBQVJGLFVBU0U7QUFSRixTQVFFO0FBUEYsVUFBVSxNQU9SO0VBQ0Usa0JBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtFQUNBLHlCQUFBO0VsQjhIRiwwQkFBQTtFQUNHLHVCQUFBO0VBQ0ssa0JBQUE7O0FrQjlITixVQU5GLEVBTUc7QUFBRCxTQU5GLEVBTUc7QUFBRCxVQWJNLE1BT1IsRUFNRztFQUNGLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLHFCQUFBOztBQUlILFVBQVUsTUFBTztBQUNqQixVQUFXLFVBQVU7RUFDbkIsa0JBQUE7O0FBR0YseUJBQTBCLE9BQU07RUFDOUIsZ0JBQUE7O0FBRUYsSUFBSSxPQUFPLHlCQUEwQixRQUFPLEtBQU0sU0FBUTtFQUN4RCxjQUFBOzs7O0FBTUYsS0FBTTtFQUNGLFdBQUE7RUFDQSxhQUFBO0VBQ0EsMkJBQUE7OztBQUtKLFFBQVMsTUFBTTtBQUFRLGlCQUFrQixNQUFNO0VBQzNDLGNBQUE7RUFDQSxtQ0FBQTtFQUNBLGtDQUFBO0VBQ0Esa0NBQUE7RUFDQSxnQ0FBQTtFQUNILDJCQUFBOzs7QUFLRCxnQkFBaUIsRUFBQyxlQUFlO0VBQzdCLHFCQUFBO0VBQ0EseUNBQUE7O0FBR0osZ0JBQWlCLEVBQUMsV0FBVztFQUN6QixrQkFBQTtFQUNBLHlDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTWl4aW5zLmxlc3Ncbi8vIFNuaXBwZXRzIG9mIHJldXNhYmxlIENTUyB0byBkZXZlbG9wIGZhc3RlciBhbmQga2VlcCBjb2RlIHJlYWRhYmxlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBVVElMSVRZIE1JWElOU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQ2xlYXJmaXhcbi8vIC0tLS0tLS0tXG4vLyBGb3IgY2xlYXJpbmcgZmxvYXRzIGxpa2UgYSBib3NzIGg1YnAuY29tL3Fcbi5jbGVhcmZpeCB7XG4gICp6b29tOiAxO1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLyBDU1MgaW1hZ2UgcmVwbGFjZW1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhpZGUgYW4gaXRlbSB2aXN1YWxseSBvbmx5XG4udmlzdWFsbHloaWRkZW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4OyB3aWR0aDogMXB4O1xuICBtYXJnaW46IC0xcHg7IHBhZGRpbmc6IDA7IGJvcmRlcjogMDtcbn1cblxuLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2NvbW1pdC9hYTAzOTZlYWU3NTdcbi5oaWRlLXRleHQge1xuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gQmxvY2sgbGV2ZWwgZm9ybSBpbnB1dHNcbi5pbnB1dC1ibG9jay1sZXZlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMjhweDsgICAgICAgIC8vIE1ha2UgaW5wdXRzIGF0IGxlYXN0IHRoZSBoZWlnaHQgb2YgdGhlaXIgYnV0dG9uIGNvdW50ZXJwYXJ0XG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpOyAvLyBNYWtlcyBpbnB1dHMgYmVoYXZlIGxpa2UgdHJ1ZSBibG9jay1sZXZlbCBlbGVtZW50c1xufVxuXG4vLyBXZWJraXQtc3R5bGUgZm9jdXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLnRhYi1mb2N1cygpIHtcbiAgLy8gRGVmYXVsdFxuICBvdXRsaW5lOiB0aGluIGRvdHRlZCAjMzMzO1xuICAvLyBXZWJraXRcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLy8gQ2VudGVyLWFsaWduIGEgYmxvY2sgbGV2ZWwgZWxlbWVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmNlbnRlci1ibG9jaygpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vIElFNyBpbmxpbmUtYmxvY2tcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi5pZTctaW5saW5lLWJsb2NrKCkge1xuICAqZGlzcGxheTogaW5saW5lOyAvKiBJRTcgaW5saW5lLWJsb2NrIGhhY2sgKi9cbiAgKnpvb206IDE7XG59XG5cbi8vIElFNyBsaWtlcyB0byBjb2xsYXBzZSB3aGl0ZXNwYWNlIG9uIGVpdGhlciBzaWRlIG9mIHRoZSBpbmxpbmUtYmxvY2sgZWxlbWVudHMuXG4vLyBFbXMgYmVjYXVzZSB3ZSdyZSBhdHRlbXB0aW5nIHRvIG1hdGNoIHRoZSB3aWR0aCBvZiBhIHNwYWNlIGNoYXJhY3Rlci4gTGVmdFxuLy8gdmVyc2lvbiBpcyBmb3IgZm9ybSBidXR0b25zLCB3aGljaCB0eXBpY2FsbHkgY29tZSBhZnRlciBvdGhlciBlbGVtZW50cywgYW5kXG4vLyByaWdodCB2ZXJzaW9uIGlzIGZvciBpY29ucywgd2hpY2ggY29tZSBiZWZvcmUuIEFwcGx5aW5nIGJvdGggaXMgb2ssIGJ1dCBpdCB3aWxsXG4vLyBtZWFuIHRoYXQgc3BhY2UgYmV0d2VlbiB0aG9zZSBlbGVtZW50cyB3aWxsIGJlIC42ZW0gKH4yIHNwYWNlIGNoYXJhY3RlcnMpIGluIElFNyxcbi8vIGluc3RlYWQgb2YgdGhlIDEgc3BhY2UgaW4gb3RoZXIgYnJvd3NlcnMuXG4uaWU3LXJlc3RvcmUtbGVmdC13aGl0ZXNwYWNlKCkge1xuICAqbWFyZ2luLWxlZnQ6IC4zZW07XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgKm1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi5pZTctcmVzdG9yZS1yaWdodC13aGl0ZXNwYWNlKCkge1xuICAqbWFyZ2luLXJpZ2h0OiAuM2VtO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgKm1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi8vIFNpemluZyBzaG9ydGN1dHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5zaXplKEBoZWlnaHQsIEB3aWR0aCkge1xuICB3aWR0aDogQHdpZHRoO1xuICBoZWlnaHQ6IEBoZWlnaHQ7XG59XG4uc3F1YXJlKEBzaXplKSB7XG4gIC5zaXplKEBzaXplLCBAc2l6ZSk7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wbGFjZWhvbGRlcihAY29sb3I6IEBwbGFjZWhvbGRlclRleHQpIHtcbiAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICB9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICB9XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gIH1cbn1cblxuLy8gVGV4dCBvdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xuLnRleHQtb3ZlcmZsb3coKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5cbi8vIEZPTlRTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4jZm9udCB7XG4gICNmYW1pbHkge1xuICAgIC5zZXJpZigpIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBAc2VyaWZGb250RmFtaWx5O1xuICAgIH1cbiAgICAuc2Fucy1zZXJpZigpIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG4gICAgfVxuICAgIC5tb25vc3BhY2UoKSB7XG4gICAgICBmb250LWZhbWlseTogQG1vbm9Gb250RmFtaWx5O1xuICAgIH1cbiAgfVxuICAuc2hvcnRoYW5kKEBzaXplOiBAYmFzZUZvbnRTaXplLCBAd2VpZ2h0OiBub3JtYWwsIEBsaW5lSGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQpIHtcbiAgICBmb250LXNpemU6IEBzaXplO1xuICAgIGZvbnQtd2VpZ2h0OiBAd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZUhlaWdodDtcbiAgfVxuICAuc2VyaWYoQHNpemU6IEBiYXNlRm9udFNpemUsIEB3ZWlnaHQ6IG5vcm1hbCwgQGxpbmVIZWlnaHQ6IEBiYXNlTGluZUhlaWdodCkge1xuICAgICNmb250ID4gI2ZhbWlseSA+IC5zZXJpZjtcbiAgICAjZm9udCA+IC5zaG9ydGhhbmQoQHNpemUsIEB3ZWlnaHQsIEBsaW5lSGVpZ2h0KTtcbiAgfVxuICAuc2Fucy1zZXJpZihAc2l6ZTogQGJhc2VGb250U2l6ZSwgQHdlaWdodDogbm9ybWFsLCBAbGluZUhlaWdodDogQGJhc2VMaW5lSGVpZ2h0KSB7XG4gICAgI2ZvbnQgPiAjZmFtaWx5ID4gLnNhbnMtc2VyaWY7XG4gICAgI2ZvbnQgPiAuc2hvcnRoYW5kKEBzaXplLCBAd2VpZ2h0LCBAbGluZUhlaWdodCk7XG4gIH1cbiAgLm1vbm9zcGFjZShAc2l6ZTogQGJhc2VGb250U2l6ZSwgQHdlaWdodDogbm9ybWFsLCBAbGluZUhlaWdodDogQGJhc2VMaW5lSGVpZ2h0KSB7XG4gICAgI2ZvbnQgPiAjZmFtaWx5ID4gLm1vbm9zcGFjZTtcbiAgICAjZm9udCA+IC5zaG9ydGhhbmQoQHNpemUsIEB3ZWlnaHQsIEBsaW5lSGVpZ2h0KTtcbiAgfVxufVxuXG5cbi8vIEZPUk1TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNaXhpbiBmb3IgZm9ybSBmaWVsZCBzdGF0ZXNcbi5mb3JtRmllbGRTdGF0ZShAdGV4dENvbG9yOiAjNTU1LCBAYm9yZGVyQ29sb3I6ICNjY2MsIEBiYWNrZ3JvdW5kQ29sb3I6ICNmNWY1ZjUpIHtcbiAgLy8gU2V0IHRoZSB0ZXh0IGNvbG9yXG4gID4gbGFiZWwsXG4gIC5oZWxwLWJsb2NrLFxuICAuaGVscC1pbmxpbmUge1xuICAgIGNvbG9yOiBAdGV4dENvbG9yO1xuICB9XG4gIC8vIFN0eWxlIGlucHV0cyBhY2NvcmRpbmdseVxuICAuY2hlY2tib3gsXG4gIC5yYWRpbyxcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGNvbG9yOiBAdGV4dENvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogQGJvcmRlckNvbG9yO1xuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlckNvbG9yLCAxMCUpO1xuICAgICAgLmJveC1zaGFkb3coMCAwIDZweCBsaWdodGVuKEBib3JkZXJDb2xvciwgMjAlKSk7XG4gICAgfVxuICB9XG4gIC8vIEdpdmUgYSBzbWFsbCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBpbnB1dC1wcmVwZW5kLy1hcHBlbmRcbiAgLmlucHV0LXByZXBlbmQgLmFkZC1vbixcbiAgLmlucHV0LWFwcGVuZCAuYWRkLW9uIHtcbiAgICBjb2xvcjogQHRleHRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZENvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogQHRleHRDb2xvcjtcbiAgfVxufVxuXG5cblxuLy8gQ1NTMyBQUk9QRVJUSUVTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCb3JkZXIgUmFkaXVzXG4uYm9yZGVyLXJhZGl1cyhAcmFkaXVzKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogQHJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiBAcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IEByYWRpdXM7XG59XG5cbi8vIERyb3Agc2hhZG93c1xuLmJveC1zaGFkb3coQHNoYWRvdykge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IEBzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogQHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiBAc2hhZG93O1xufVxuXG4vLyBUcmFuc2l0aW9uc1xuLnRyYW5zaXRpb24oQHRyYW5zaXRpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgLW1vei10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgIC1tcy10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgICAtby10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cblxuLy8gVHJhbnNmb3JtYXRpb25zXG4ucm90YXRlKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbn1cbi5zY2FsZShAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xufVxuLnRyYW5zbGF0ZShAeCwgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG59XG4uc2tldyhAeCwgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbiAgICAgICAtby10cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbn1cbi50cmFuc2xhdGUzZChAeCwgQHksIEB6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG4gICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG59XG5cbi8vIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIFByZXZlbnQgYnJvd3NlcnMgZnJvbSBmbGlja2VyaW5nIHdoZW4gdXNpbmcgQ1NTIDNEIHRyYW5zZm9ybXMuXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5cbi8vIFNlZSBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vZGFubnlrZWFuZS9ib290c3RyYXAuZ2l0IGJhY2tmYWNlLXZpc2liaWxpdHkgZm9yIGV4YW1wbGVzXG4uYmFja2ZhY2UtdmlzaWJpbGl0eShAdmlzaWJpbGl0eSl7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgICAtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG59XG5cbi8vIEJhY2tncm91bmQgY2xpcHBpbmdcbi8vIEhlYWRzIHVwOiBGRiAzLjYgYW5kIHVuZGVyIG5lZWQgXCJwYWRkaW5nXCIgaW5zdGVhZCBvZiBcInBhZGRpbmctYm94XCJcbi5iYWNrZ3JvdW5kLWNsaXAoQGNsaXApIHtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IEBjbGlwO1xuICAgICAtbW96LWJhY2tncm91bmQtY2xpcDogQGNsaXA7XG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBAY2xpcDtcbn1cblxuLy8gQmFja2dyb3VuZCBzaXppbmdcbi5iYWNrZ3JvdW5kLXNpemUoQHNpemUpe1xuICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogQHNpemU7XG4gICAgIC1tb3otYmFja2dyb3VuZC1zaXplOiBAc2l6ZTtcbiAgICAgICAtby1iYWNrZ3JvdW5kLXNpemU6IEBzaXplO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogQHNpemU7XG59XG5cblxuLy8gQm94IHNpemluZ1xuLmJveC1zaXppbmcoQGJveG1vZGVsKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogQGJveG1vZGVsO1xuICAgICAtbW96LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgIC1tcy1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogQGJveG1vZGVsO1xufVxuXG4vLyBVc2VyIHNlbGVjdFxuLy8gRm9yIHNlbGVjdGluZyB0ZXh0IG9uIHRoZSBwYWdlXG4udXNlci1zZWxlY3QoQHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgIC1vLXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBAc2VsZWN0O1xufVxuXG4vLyBSZXNpemUgYW55dGhpbmdcbi5yZXNpemFibGUoQGRpcmVjdGlvbikge1xuICByZXNpemU6IEBkaXJlY3Rpb247IC8vIE9wdGlvbnM6IGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG4gIG92ZXJmbG93OiBhdXRvOyAvLyBTYWZhcmkgZml4XG59XG5cbi8vIENTUzMgQ29udGVudCBDb2x1bW5zXG4uY29udGVudC1jb2x1bW5zKEBjb2x1bW5Db3VudCwgQGNvbHVtbkdhcDogQGdyaWRHdXR0ZXJXaWR0aCkge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogQGNvbHVtbkNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogQGNvbHVtbkNvdW50O1xuICAgICAgICAgIGNvbHVtbi1jb3VudDogQGNvbHVtbkNvdW50O1xuICAtd2Via2l0LWNvbHVtbi1nYXA6IEBjb2x1bW5HYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogQGNvbHVtbkdhcDtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiBAY29sdW1uR2FwO1xufVxuXG4vLyBPcHRpb25hbCBoeXBoZW5hdGlvblxuLmh5cGhlbnMoQG1vZGU6IGF1dG8pIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LWh5cGhlbnM6IEBtb2RlO1xuICAgICAtbW96LWh5cGhlbnM6IEBtb2RlO1xuICAgICAgLW1zLWh5cGhlbnM6IEBtb2RlO1xuICAgICAgIC1vLWh5cGhlbnM6IEBtb2RlO1xuICAgICAgICAgIGh5cGhlbnM6IEBtb2RlO1xufVxuXG4vLyBPcGFjaXR5XG4ub3BhY2l0eShAb3BhY2l0eSkge1xuICBvcGFjaXR5OiBAb3BhY2l0eSAvIDEwMDtcbiAgZmlsdGVyOiB+XCJhbHBoYShvcGFjaXR5PUB7b3BhY2l0eX0pXCI7XG59XG5cblxuXG4vLyBCQUNLR1JPVU5EU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQWRkIGFuIGFscGhhdHJhbnNwYXJlbmN5IHZhbHVlIHRvIGFueSBiYWNrZ3JvdW5kIG9yIGJvcmRlciBjb2xvciAodmlhIEVseXNlIEhvbGxhZGF5KVxuI3RyYW5zbHVjZW50IHtcbiAgLmJhY2tncm91bmQoQGNvbG9yOiBAd2hpdGUsIEBhbHBoYTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoaHVlKEBjb2xvciksIHNhdHVyYXRpb24oQGNvbG9yKSwgbGlnaHRuZXNzKEBjb2xvciksIEBhbHBoYSk7XG4gIH1cbiAgLmJvcmRlcihAY29sb3I6IEB3aGl0ZSwgQGFscGhhOiAxKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBoc2xhKGh1ZShAY29sb3IpLCBzYXR1cmF0aW9uKEBjb2xvciksIGxpZ2h0bmVzcyhAY29sb3IpLCBAYWxwaGEpO1xuICAgIC5iYWNrZ3JvdW5kLWNsaXAocGFkZGluZy1ib3gpO1xuICB9XG59XG5cbi8vIEdyYWRpZW50IEJhciBDb2xvcnMgZm9yIGJ1dHRvbnMgYW5kIGFsZXJ0c1xuLmdyYWRpZW50QmFyKEBwcmltYXJ5Q29sb3IsIEBzZWNvbmRhcnlDb2xvcikge1xuICAjZ3JhZGllbnQgPiAudmVydGljYWwoQHByaW1hcnlDb2xvciwgQHNlY29uZGFyeUNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiBAc2Vjb25kYXJ5Q29sb3IgQHNlY29uZGFyeUNvbG9yIGRhcmtlbihAc2Vjb25kYXJ5Q29sb3IsIDE1JSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMSkgcmdiYSgwLDAsMCwuMSkgZmFkZWluKHJnYmEoMCwwLDAsLjEpLCAxNSUpO1xufVxuXG4vLyBHcmFkaWVudHNcbiNncmFkaWVudCB7XG4gIC5ob3Jpem9udGFsKEBzdGFydENvbG9yOiAjNTU1LCBAZW5kQ29sb3I6ICMzMzMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZW5kQ29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIEZGIDMuNitcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBJRTEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAwLCBmcm9tKEBzdGFydENvbG9yKSwgdG8oQGVuZENvbG9yKSk7IC8vIFNhZmFyaSA0KywgQ2hyb21lIDIrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBPcGVyYSAxMS4xMFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gTGUgc3RhbmRhcmRcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MSlcIixAc3RhcnRDb2xvcixAZW5kQ29sb3IpKTsgLy8gSUU5IGFuZCBkb3duXG4gIH1cbiAgLnZlcnRpY2FsKEBzdGFydENvbG9yOiAjNTU1LCBAZW5kQ29sb3I6ICMzMzMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoQHN0YXJ0Q29sb3IsIEBlbmRDb2xvciwgNjAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBGRiAzLjYrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBJRTEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKEBzdGFydENvbG9yKSwgdG8oQGVuZENvbG9yKSk7IC8vIFNhZmFyaSA0KywgQ2hyb21lIDIrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gT3BlcmEgMTEuMTBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gVGhlIHN0YW5kYXJkXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsQHN0YXJ0Q29sb3IsQGVuZENvbG9yKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG4gIC5kaXJlY3Rpb25hbChAc3RhcnRDb2xvcjogIzU1NSwgQGVuZENvbG9yOiAjMzMzLCBAZGVnOiA0NWRlZykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBlbmRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIEZGIDMuNitcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBJRTEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBPcGVyYSAxMS4xMFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gVGhlIHN0YW5kYXJkXG4gIH1cbiAgLnZlcnRpY2FsLXRocmVlLWNvbG9ycyhAc3RhcnRDb2xvcjogIzAwYjNlZSwgQG1pZENvbG9yOiAjN2E0M2I2LCBAY29sb3JTdG9wOiA1MCUsIEBlbmRDb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peChAbWlkQ29sb3IsIEBlbmRDb2xvciwgODAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oQHN0YXJ0Q29sb3IpLCBjb2xvci1zdG9wKEBjb2xvclN0b3AsIEBtaWRDb2xvciksIHRvKEBlbmRDb2xvcikpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQHN0YXJ0Q29sb3IsIEBtaWRDb2xvciBAY29sb3JTdG9wLCBAZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAc3RhcnRDb2xvciwgQG1pZENvbG9yIEBjb2xvclN0b3AsIEBlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0wKVwiLEBzdGFydENvbG9yLEBlbmRDb2xvcikpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xuICB9XG4gIC5yYWRpYWwoQGlubmVyQ29sb3I6ICM1NTUsIEBvdXRlckNvbG9yOiAjMzMzKSAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBvdXRlckNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQocmFkaWFsLCBjZW50ZXIgY2VudGVyLCAwLCBjZW50ZXIgY2VudGVyLCA0NjAsIGZyb20oQGlubmVyQ29sb3IpLCB0byhAb3V0ZXJDb2xvcikpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyQ29sb3IsIEBvdXRlckNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lckNvbG9yLCBAb3V0ZXJDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lckNvbG9yLCBAb3V0ZXJDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyQ29sb3IsIEBvdXRlckNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG4gIC5zdHJpcGVkKEBjb2xvciwgQGFuZ2xlOiAtNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMTAwJSwgMTAwJSAwLCBjb2xvci1zdG9wKC4yNSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpKSwgY29sb3Itc3RvcCguMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC41LCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkpLCBjb2xvci1zdG9wKC43NSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpKSwgY29sb3Itc3RvcCguNzUsIHRyYW5zcGFyZW50KSwgdG8odHJhbnNwYXJlbnQpKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChAYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQGFuZ2xlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIH1cbn1cbi8vIFJlc2V0IGZpbHRlcnMgZm9yIElFXG4ucmVzZXQtZmlsdGVyKCkge1xuICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpXCIpKTtcbn1cblxuXG5cbi8vIENPTVBPTkVOVCBNSVhJTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJ1dHRvbiBiYWNrZ3JvdW5kc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4uYnV0dG9uQmFja2dyb3VuZChAc3RhcnRDb2xvciwgQGVuZENvbG9yKSB7XG4gIC8vIGdyYWRpZW50QmFyIHdpbGwgc2V0IHRoZSBiYWNrZ3JvdW5kIHRvIGEgcGxlYXNpbmcgYmxlbmQgb2YgdGhlc2UsIHRvIHN1cHBvcnQgSUU8PTlcbiAgLmdyYWRpZW50QmFyKEBzdGFydENvbG9yLCBAZW5kQ29sb3IpO1xuICAqYmFja2dyb3VuZC1jb2xvcjogQGVuZENvbG9yOyAvKiBEYXJrZW4gSUU3IGJ1dHRvbnMgYnkgZGVmYXVsdCBzbyB0aGV5IHN0YW5kIG91dCBtb3JlIGdpdmVuIHRoZXkgd29uJ3QgaGF2ZSBib3JkZXJzICovXG4gIC5yZXNldC1maWx0ZXIoKTtcblxuICAvLyBpbiB0aGVzZSBjYXNlcyB0aGUgZ3JhZGllbnQgd29uJ3QgY292ZXIgdGhlIGJhY2tncm91bmQsIHNvIHdlIG92ZXJyaWRlXG4gICY6aG92ZXIsICY6YWN0aXZlLCAmLmFjdGl2ZSwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBlbmRDb2xvcjtcbiAgICAqYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBlbmRDb2xvciwgNSUpO1xuICB9XG5cbiAgLy8gSUUgNyArIDggY2FuJ3QgaGFuZGxlIGJveC1zaGFkb3cgdG8gc2hvdyBhY3RpdmUsIHNvIHdlIGRhcmtlbiBhIGJpdCBvdXJzZWx2ZXNcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGVuZENvbG9yLCAxMCUpIGUoXCJcXDlcIik7XG4gIH1cbn1cblxuLy8gTmF2YmFyIHZlcnRpY2FsIGFsaWduXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBlbGVtZW50cyBpbiB0aGUgbmF2YmFyLlxuLy8gRXhhbXBsZTogYW4gZWxlbWVudCBoYXMgYSBoZWlnaHQgb2YgMzBweCwgc28gd3JpdGUgb3V0IGAubmF2YmFyVmVydGljYWxBbGlnbigzMHB4KTtgIHRvIGNhbGN1bGF0ZSB0aGUgYXBwcm9wcmlhdGUgdG9wIG1hcmdpbi5cbi5uYXZiYXJWZXJ0aWNhbEFsaWduKEBlbGVtZW50SGVpZ2h0KSB7XG4gIG1hcmdpbi10b3A6IChAbmF2YmFySGVpZ2h0IC0gQGVsZW1lbnRIZWlnaHQpIC8gMjtcbn1cblxuLy8gUG9wb3ZlciBhcnJvd3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZvciB0aXBzaWVzIGFuZCBwb3BvdmVyc1xuI3BvcG92ZXJBcnJvdyB7XG4gIC50b3AoQGFycm93V2lkdGg6IDVweCwgQGNvbG9yOiBAYmxhY2spIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQGFycm93V2lkdGg7XG4gICAgYm9yZGVyLWxlZnQ6IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogQGFycm93V2lkdGggc29saWQgQGNvbG9yO1xuICB9XG4gIC5sZWZ0KEBhcnJvd1dpZHRoOiA1cHgsIEBjb2xvcjogQGJsYWNrKSB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLUBhcnJvd1dpZHRoO1xuICAgIGJvcmRlci10b3A6IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiBAYXJyb3dXaWR0aCBzb2xpZCBAY29sb3I7XG4gIH1cbiAgLmJvdHRvbShAYXJyb3dXaWR0aDogNXB4LCBAY29sb3I6IEBibGFjaykge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AYXJyb3dXaWR0aDtcbiAgICBib3JkZXItbGVmdDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiBAYXJyb3dXaWR0aCBzb2xpZCBAY29sb3I7XG4gIH1cbiAgLnJpZ2h0KEBhcnJvd1dpZHRoOiA1cHgsIEBjb2xvcjogQGJsYWNrKSB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtQGFycm93V2lkdGg7XG4gICAgYm9yZGVyLXRvcDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiBAYXJyb3dXaWR0aCBzb2xpZCBAY29sb3I7XG4gIH1cbn1cblxuLy8gR3JpZCBTeXN0ZW1cbi8vIC0tLS0tLS0tLS0tXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG4uY29udGFpbmVyLWZpeGVkKCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAuY2xlYXJmaXgoKTtcbn1cblxuLy8gVGFibGUgY29sdW1uc1xuLnRhYmxlQ29sdW1ucyhAY29sdW1uU3BhbjogMSkge1xuICBmbG9hdDogbm9uZTsgLy8gdW5kbyBkZWZhdWx0IGdyaWQgY29sdW1uIHN0eWxlc1xuICB3aWR0aDogKChAZmx1aWRHcmlkQ29sdW1uV2lkdGgpICogQGNvbHVtblNwYW4pICsgKEBmbHVpZEdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1uU3BhbiAtIDEpKSAtIDE2OyAvLyAxNiBpcyB0b3RhbCBwYWRkaW5nIG9uIGxlZnQgYW5kIHJpZ2h0IG9mIHRhYmxlIGNlbGxzXG4gIG1hcmdpbi1sZWZ0OiAwOyAvLyB1bmRvIGRlZmF1bHQgZ3JpZCBjb2x1bW4gc3R5bGVzXG59XG5cbi8vIE1ha2UgYSBHcmlkXG4vLyBVc2UgLm1ha2VSb3cgYW5kIC5tYWtlQ29sdW1uIHRvIGFzc2lnbiBzZW1hbnRpYyBsYXlvdXRzIGdyaWQgc3lzdGVtIGJlaGF2aW9yXG4ubWFrZVJvdygpIHtcbiAgbWFyZ2luLWxlZnQ6IEBncmlkR3V0dGVyV2lkdGggKiAtMTtcbiAgLmNsZWFyZml4KCk7XG59XG4ubWFrZUNvbHVtbihAY29sdW1uczogMSwgQG9mZnNldDogMCkge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IChAZ3JpZENvbHVtbldpZHRoICogQG9mZnNldCkgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIChAb2Zmc2V0IC0gMSkpICsgKEBncmlkR3V0dGVyV2lkdGggKiAyKTtcbiAgd2lkdGg6IChAZ3JpZENvbHVtbldpZHRoICogQGNvbHVtbnMpICsgKEBncmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgLSAxKSk7XG59XG5cbi8vIFRoZSBHcmlkXG4jZ3JpZCB7XG5cbiAgLmNvcmUgKEBncmlkQ29sdW1uV2lkdGgsIEBncmlkR3V0dGVyV2lkdGgpIHtcblxuICAgIC5zcGFuWCAoQGluZGV4KSB3aGVuIChAaW5kZXggPiAwKSB7XG4gICAgICAuc3BhbkB7aW5kZXh9IHsgLnNwYW4oQGluZGV4KTsgfVxuICAgICAgLnNwYW5YKEBpbmRleCAtIDEpO1xuICAgIH1cbiAgICAuc3BhblggKDApIHt9XG5cbiAgICAub2Zmc2V0WCAoQGluZGV4KSB3aGVuIChAaW5kZXggPiAwKSB7XG4gICAgICAub2Zmc2V0QHtpbmRleH0geyAub2Zmc2V0KEBpbmRleCk7IH1cbiAgICAgIC5vZmZzZXRYKEBpbmRleCAtIDEpO1xuICAgIH1cbiAgICAub2Zmc2V0WCAoMCkge31cblxuICAgIC5vZmZzZXQgKEBjb2x1bW5zKSB7XG4gICAgICBtYXJnaW4tbGVmdDogKEBncmlkQ29sdW1uV2lkdGggKiBAY29sdW1ucykgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1ucyArIDEpKTtcbiAgICB9XG5cbiAgICAuc3BhbiAoQGNvbHVtbnMpIHtcbiAgICAgIHdpZHRoOiAoQGdyaWRDb2x1bW5XaWR0aCAqIEBjb2x1bW5zKSArIChAZ3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5zIC0gMSkpO1xuICAgIH1cblxuICAgIC5yb3cge1xuICAgICAgbWFyZ2luLWxlZnQ6IEBncmlkR3V0dGVyV2lkdGggKiAtMTtcbiAgICAgIC5jbGVhcmZpeCgpO1xuICAgIH1cblxuICAgIFtjbGFzcyo9XCJzcGFuXCJdIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IEBncmlkR3V0dGVyV2lkdGg7XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBjb250YWluZXIgd2lkdGgsIGFuZCBvdmVycmlkZSBpdCBmb3IgZml4ZWQgbmF2YmFycyBpbiBtZWRpYSBxdWVyaWVzXG4gICAgLmNvbnRhaW5lcixcbiAgICAubmF2YmFyLWZpeGVkLXRvcCAuY29udGFpbmVyLFxuICAgIC5uYXZiYXItZml4ZWQtYm90dG9tIC5jb250YWluZXIgeyAuc3BhbihAZ3JpZENvbHVtbnMpOyB9XG5cbiAgICAvLyBnZW5lcmF0ZSAuc3BhblggYW5kIC5vZmZzZXRYXG4gICAgLnNwYW5YIChAZ3JpZENvbHVtbnMpO1xuICAgIC5vZmZzZXRYIChAZ3JpZENvbHVtbnMpO1xuXG4gIH1cblxuICAuZmx1aWQgKEBmbHVpZEdyaWRDb2x1bW5XaWR0aCwgQGZsdWlkR3JpZEd1dHRlcldpZHRoKSB7XG5cbiAgICAuc3BhblggKEBpbmRleCkgd2hlbiAoQGluZGV4ID4gMCkge1xuICAgICAgLnNwYW5Ae2luZGV4fSB7IC5zcGFuKEBpbmRleCk7IH1cbiAgICAgIC5zcGFuWChAaW5kZXggLSAxKTtcbiAgICB9XG4gICAgLnNwYW5YICgwKSB7fVxuXG4gICAgLnNwYW4gKEBjb2x1bW5zKSB7XG4gICAgICB3aWR0aDogKEBmbHVpZEdyaWRDb2x1bW5XaWR0aCAqIEBjb2x1bW5zKSArIChAZmx1aWRHcmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgLSAxKSk7XG4gICAgICAqd2lkdGg6IChAZmx1aWRHcmlkQ29sdW1uV2lkdGggKiBAY29sdW1ucykgKyAoQGZsdWlkR3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5zIC0gMSkpIC0gKC41IC8gQGdyaWRSb3dXaWR0aCAqIDEwMCAqIDElKTtcbiAgICB9XG5cbiAgICAucm93LWZsdWlkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLmNsZWFyZml4KCk7XG4gICAgICBbY2xhc3MqPVwic3BhblwiXSB7XG4gICAgICAgIC5pbnB1dC1ibG9jay1sZXZlbCgpO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IEBmbHVpZEdyaWRHdXR0ZXJXaWR0aDtcbiAgICAgICAgKm1hcmdpbi1sZWZ0OiBAZmx1aWRHcmlkR3V0dGVyV2lkdGggLSAoLjUgLyBAZ3JpZFJvd1dpZHRoICogMTAwICogMSUpO1xuICAgICAgfVxuICAgICAgW2NsYXNzKj1cInNwYW5cIl06Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cblxuICAgICAgLy8gZ2VuZXJhdGUgLnNwYW5YXG4gICAgICAuc3BhblggKEBncmlkQ29sdW1ucyk7XG4gICAgfVxuXG4gIH1cblxuICAuaW5wdXQoQGdyaWRDb2x1bW5XaWR0aCwgQGdyaWRHdXR0ZXJXaWR0aCkge1xuXG4gICAgLnNwYW5YIChAaW5kZXgpIHdoZW4gKEBpbmRleCA+IDApIHtcbiAgICAgIGlucHV0LnNwYW5Ae2luZGV4fSwgdGV4dGFyZWEuc3BhbkB7aW5kZXh9LCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuQHtpbmRleH0geyAuc3BhbihAaW5kZXgpOyB9XG4gICAgICAuc3BhblgoQGluZGV4IC0gMSk7XG4gICAgfVxuICAgIC5zcGFuWCAoMCkge31cblxuICAgIC5zcGFuKEBjb2x1bW5zKSB7XG4gICAgICB3aWR0aDogKChAZ3JpZENvbHVtbldpZHRoKSAqIEBjb2x1bW5zKSArIChAZ3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5zIC0gMSkpIC0gMTA7XG4gICAgfVxuXG4gICAgaW5wdXQsXG4gICAgdGV4dGFyZWEsXG4gICAgLnVuZWRpdGFibGUtaW5wdXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IC8vIG92ZXJyaWRlIG1hcmdpbi1sZWZ0IGZyb20gY29yZSBncmlkIHN5c3RlbVxuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIC5zcGFuWFxuICAgIC5zcGFuWCAoQGdyaWRDb2x1bW5zKTtcblxuICB9XG5cbn1cblxuLmRhcmtMaWdodCAoQGEpIHdoZW4gKGxpZ2h0bmVzcyhAYSkgPj0gNTAlKSB7XG4gIGNvbG9yOiBAZ3JheURhcmtlcjtcbn1cbi5kYXJrTGlnaHQgKEBhKSB3aGVuIChsaWdodG5lc3MoQGEpIDwgNTAlKSB7XG4gIGNvbG9yOiBAd2hpdGU7XG59XG4iLCJodG1sLm5hdi1vcGVuLFxuaHRtbC5uYXYtb3BlbiBib2R5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5uYXZiYXIge1xuICAvLyBGaXggZm9yIElFNydzIGJhZCB6LWluZGV4aW5nIHNvIGRyb3Bkb3ducyBkb24ndFxuICAvLyBhcHBlYXIgYmVsb3cgY29udGVudCB0aGF0IGZvbGxvd3MgdGhlIG5hdmJhclxuICAqcG9zaXRpb246IHJlbGF0aXZlO1xuICAqei1pbmRleDogMjtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZSAvIDU7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAudG9nZ2xlLW5hdi1iYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubmF2YmFyLWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyQmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIEJyYW5kLCBsaW5rcywgdGV4dCwgYW5kIGJ1dHRvbnNcbiAgY29sb3I6IEBuYXZiYXJUZXh0O1xuICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuXG4gIC8vIEhvdmVyIGFuZCBhY3RpdmUgc3RhdGVzXG4gIC8vIFBsYWluIHRleHQgaW4gdG9wYmFyXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC8vIFNvY2lhbCBpY29ucyBhcHBlYXJpbmcgaW4gbWFpbiBvciBzdGlja3kgbmF2XG4gICNoZWFkZXItc29jaWFsIGxpID4gYSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgcGFkZGluZy1yaWdodDogNHB4O1xuICB9XG5cbiAgLy8gQ29tbW9uIG5hdiBsYXlvdXRcbiAgLm5hdiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiBAbmF2YmFyVGV4dDtcblxuICAgICYgPiBsaSA+IGEge1xuICAgICAgY29sb3I6IEBuYXZiYXJMaW5rQ29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5kaXZpZHVhbCBuYXYgbGlua3NcbiAgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmID4gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAbmF2YmFySGVpZ2h0O1xuICAgICAgcGFkZGluZy1sZWZ0OiBAbmF2YmFySGVpZ2h0IC8gNDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IEBuYXZiYXJIZWlnaHQgLyA0O1xuICAgIH1cbiAgfVxuXG4gIC8vIERyb3Bkb3ducyB3aXRoaW4gbmF2XG4gIGxpLmRyb3Bkb3duID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuICBsaS5kcm9wZG93biAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICBjb2xvcjogQG5hdmJhckxpbmtDb2xvcjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAbmF2YmFyTGlua0NvbG9ySG92ZXI7XG4gICAgfVxuICB9XG5cbiAgbGkgPiBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyTGlua0JhY2tncm91bmRBY3RpdmU7XG4gICAgY29sb3I6IEBuYXZiYXJMaW5rQ29sb3JIb3ZlcjtcblxuICAgIC5jYXJldDpiZWZvcmUge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQG5hdmJhckRyb3Bkb3duQ2FyZXRDb2xvckhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN1YiBtZW51c1xuICAuc3ViLW1lbnU6YmVmb3JlLFxuICAuc3ViLXN1Yi1tZW51OmJlZm9yZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogOXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBib3JkZXItdG9wOiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgbGVmdDogLTlweDtcbiAgICB0b3A6IDMwJTtcbiAgfVxuICAuc3ViLW1lbnU6YWZ0ZXIsXG4gIC5zdWItc3ViLW1lbnU6YWZ0ZXIge1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCBAd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHRvcDogMzElO1xuICAgIGxlZnQ6IC04cHg7XG4gIH1cblxuICAvLyBIb21lIGxpbmsgYW5kIGhvbWUgaWNvblxuICBsaS5ob21lLWljb24sXG4gIGxpLmhvbWUtbGluayB7XG4gICAgYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiBsaWdodGVuKEBsaW5rQ29sb3JIb3ZlciwgNSUpO1xuICAgIH1cbiAgfVxuXG4gIC5ob21lLWljb246aG92ZXIgaW1nLFxuICBsaS5ob21lLWxpbms6aG92ZXIgaSB7XG4gICAgLm9wYWNpdHkoODUpO1xuICB9XG5cbiAgbGkuaG9tZS1saW5rIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJiA+IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogQG5hdmJhckhlaWdodDtcbiAgICAgICAgd2lkdGg6IEBuYXZiYXJIZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGkuaG9tZS1pY29uID4gYSB7XG4gICAgcGFkZGluZzogMDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGhlaWdodDogKEBuYXZiYXJIZWlnaHQgLSAxNnB4KTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgfVxuICB9XG5cbiAgLy8gTmF2IHRvZ2dsZSAoYnVyZ2VyIGJ1dHRvbilcbiAgLmJ0bi1uYXZiYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcblxuICAgIC8vIEBpY29uYmFySGVpZ2h0IGlzIHVzZWQgNXg6IDN4IGZvciB0aGUgYmFycywgMnggZm9yIHRoZSBtYXJnaW4gYmV0d2VlbiB0aGVtLlxuICAgIHBhZGRpbmc6IChmbG9vcihAbmF2YmFySGVpZ2h0IC0gKDUgKiBAaWNvbmJhckhlaWdodCkpKSAvIDIgMTBweDtcblxuICAgIC5sYWJlbCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIG1hcmdpbjogLTJweCAwIDAgNXB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZvbnQtc2l6ZTogQG5hdmJhckZvbnRTaXplO1xuICAgIH1cblxuICAgIC5uYXZiYXIgLmJ0bi1uYXZiYXIgLmJhcnMge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmljb24tYmFyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IEBpY29uYmFySGVpZ2h0O1xuICAgIH1cblxuICAgIC5pY29uLWJhciArIC5pY29uLWJhciB7XG4gICAgICBtYXJnaW4tdG9wOiBAaWNvbmJhckhlaWdodDtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAubmF2LWxlZnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNwb25zaXZlIHN0eWxlcyBmb3IgLm5hdmJhclxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogOTtcblxuICAgIGxpLmRyb3Bkb3duIHtcbiAgICAgIC5kcm9wZG93bi1tZW51IGxpIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogQG5hdmJhckhlaWdodDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IEBuYXZiYXJIZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLnRvZ2dsZS1uYXYtYmFyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5uYXYtc2hlbGYge1xuICAgICAgYmFja2dyb3VuZDogQGRyb3Bkb3duQmFja2dyb3VuZDtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICAgIC5zaXRlLW5hbWUsIC5ob21lLWljb24sIC5ob21lLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICB1bCwgbGkge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgbGkuaG9tZS1saW5rIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgbGkgYi5jYXJldCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgLnJvdGF0ZSggLTkwZGVnICk7XG4gICAgICB9XG5cbiAgICAgIGxpLm9wZW4gPiBhIC5jYXJldCB7XG4gICAgICAgIC5yb3RhdGUoIDBkZWcgKTtcbiAgICAgIH1cblxuICAgICAgbGkub3BlbiA+IHVsLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAuYm94LXNoYWRvdyggbm9uZSApO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5uYXYgPiBsaSB7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi5vcGVuIC5uYXYtc2hlbGYge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGdyYXlMaWdodGVyO1xuICAgIH1cblxuICAgIC5uYXYgbGkge1xuICAgICAgJi5ob21lLWxpbmssXG4gICAgICAmLnNpdGUtbmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEdyYWRpZW50IGlzIGFwcGxpZWQgdG8gaXQncyBvd24gZWxlbWVudCBiZWNhdXNlIG92ZXJmbG93XG4vLyB2aXNpYmxlIGlzIG5vdCBob25vcmVkIGJ5IElFIHdoZW4gZmlsdGVyIGlzIHByZXNlbnRcbi5uYXZiYXItaW5uZXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIERyb3Bkb3duIGFycm93L2NhcmV0XG4uY2FyZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IEBiYXNlRm9udFNpemU7XG4gIHBhZGRpbmc6IDAgKEBiYXNlRm9udFNpemUgLyAyKTtcbiAgdG9wOiAycHg7XG5cbiAgJjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItdG9wOiA2cHggc29saWQgQG5hdmJhckRyb3Bkb3duQ2FyZXRDb2xvcjtcbiAgICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206ICA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxufVxuXG4vLyBHZW5lcmFsIGRyb3Bkb3duL2Ryb3B1cCBzdHlsZXNcbi5kcm9wdXAsXG4uZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLmNhcmV0IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHdoaXRlO1xuICB9XG5cbiAgJi5hY3RpdmUgLmNhcmV0IHtcbiAgICAub3BhY2l0eSgxMDApO1xuICB9XG59XG5cbi5kcm9wZG93bi10b2dnbGUge1xuICAvLyBUaGUgY2FyZXQgbWFrZXMgdGhlIHRvZ2dsZSBhIGJpdCB0b28gdGFsbCBpbiBJRTdcbiAgKm1hcmdpbi1ib3R0b206IC0zcHg7XG59XG5cbi8vIERyb3Bkb3duIG1lbnVcbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IEB6aW5kZXhEcm9wZG93bjtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBhZGRpbmc6IDNweCAwO1xuICBtYXJnaW46IDA7IC8vIG92ZXJyaWRlIGRlZmF1bHQgdWxcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duQmFja2dyb3VuZDtcbiAgYm9yZGVyOiAxcHggc29saWQgQGdyYXlMaWdodGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTtcbiAgKmJvcmRlci1yaWdodC13aWR0aDogMnB4O1xuICAqYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICAuYm94LXNoYWRvdygwIDVweCAxMHB4IHJnYmEoMCwwLDAsLjIpKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAtbW96LWJhY2tncm91bmQtY2xpcDogcGFkZGluZztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICBsaSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBMaW5rcyB3aXRoaW4gdGhlIGRyb3Bkb3duIG1lbnVcbiAgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmID4gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcGFkZGluZzogM3B4IDE1cHg7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBBY3RpdmUgbGlua3MvbWVudXMgd2l0aGluIGRyb3Bkb3duc1xuICAuYWN0aXZlID4gYSxcbiAgLmFjdGl2ZSA+IGE6aG92ZXIge1xuICAgIGNvbG9yOiBAbmF2YmFyTGlua0NvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bkJhY2tncm91bmQ7XG4gIH1cblxuICAvLyBUT0RPOiBXaGF0IGlzIHRoaXM/XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgQGdyYXlMaWdodGVyO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBkcm9wZG93bkJvcmRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTBweDtcbiAgICBsZWZ0OiA5cHg7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlci1sZWZ0OiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogOXB4IHNvbGlkIEBkcm9wZG93bkJhY2tncm91bmQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTlweDtcbiAgICBsZWZ0OiAxMHB4O1xuICB9XG5cbiAgLy8gQWRkIHN1cHBvcnQgZm9yIHNlY29uZCBsZXZlbCBkcm9wZG93biBtZW51c1xuICAuc3ViLW1lbnUsXG4gIC5zdWItc3ViLW1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0yMCU7XG4gICAgbGVmdDogOTklO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIC5pY29uLWFycm93LXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogM3B4O1xuICB9XG4gIGxpOmhvdmVyIC5zdWItbWVudSxcbiAgLnN1Yi1tZW51IGxpOmhvdmVyIC5zdWItc3ViLW1lbnUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBsaTpob3ZlciAuc3ViLXN1Yi1tZW51LFxuICAgIGxpOmhvdmVyIC5zdWItbWVudSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgaHRtbC5uby10b3VjaCB1bC5uYXYgbGkuZHJvcGRvd246aG92ZXIgdWwuZHJvcGRvd24tbWVudSxcbiAgaHRtbC50b3VjaCB1bC5uYXYgbGkuZHJvcGRvd24ub3BlbiB1bC5kcm9wZG93bi1tZW51IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vIE9wZW4gc3RhdGUgZm9yIHRoZSBkcm9wZG93blxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ub3BlbiB7XG4gIC8vIElFNydzIHotaW5kZXggb25seSBnb2VzIHRvIHRoZSBuZWFyZXN0IHBvc2l0aW9uZWQgYW5jZXN0b3IsIHdoaWNoIHdvdWxkXG4gIC8vIG1ha2UgdGhlIG1lbnUgYXBwZWFyIGJlbG93IGJ1dHRvbnMgdGhhdCBhcHBlYXJlZCBsYXRlciBvbiB0aGUgcGFnZVxuICAqei1pbmRleDogQHppbmRleERyb3Bkb3duO1xuXG4gICYgPiAuZHJvcGRvd24tbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIEFsbG93IGZvciBkcm9wZG93bnMgdG8gZ28gYm90dG9tIHVwIChha2EsIGRyb3B1cC1tZW51KVxuLmRyb3B1cCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biB7XG4gIC8vIFJldmVyc2UgdGhlIGNhcmV0XG4gIC5jYXJldCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgQGJsYWNrO1xuICAgIGNvbnRlbnQ6IFwiXFwyMTkxXCI7XG4gIH1cbiAgLy8gRGlmZmVyZW50IHBvc2l0aW9uaW5nIGZvciBib3R0b20gdXAgbWVudVxuICAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcHg7XG4gIH1cbn1cblxuLy8gXCJEb24ndCBtaXNzXCIvdG9waWNzIGJhclxuI3RvcGljcy1iYXIge1xuICBwYWRkaW5nOiAzcHggMDtcbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAmLm1lbnUtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBOYXZiYXIgc2VhcmNoIGZvcm1cbiNtYWluLW5hdi5uYXZiYXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgQG5hdmJhclJ1bGVDb2xvcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBuYXZiYXJSdWxlQ29sb3I7XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ09MT1Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdyYXlzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AYmxhY2s6ICAgICAgICAgICAgICAgICAjMDAwO1xuQGdyYXlEYXJrZXI6ICAgICAgICAgICAgIzIyMjtcbkBncmF5RGFyazogICAgICAgICAgICAgICM0ODQ4NDg7XG5AZ3JheTogICAgICAgICAgICAgICAgICAjN0Q4MTg1O1xuQGdyYXlMaWdodDogICAgICAgICAgICAgI2FhYTtcbkBncmF5TGlnaHRlcjogICAgICAgICAgICNkZGQ7XG5Ad2hpdGU6ICAgICAgICAgICAgICAgICAjZmZmO1xuXG5cbi8vIEFjY2VudCBjb2xvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBibHVlOiAgICAgICAgICAgICAgICAgICMyMjc1YmI7XG5AYmx1ZURhcms6ICAgICAgICAgICAgICAjMDA2NGNkO1xuQGdyZWVuOiAgICAgICAgICAgICAgICAgIzQ2YTU0NjtcbkByZWQ6ICAgICAgICAgICAgICAgICAgICNiZDI2MWQ7XG5AeWVsbG93OiAgICAgICAgICAgICAgICAjZmZjNDBkO1xuQG9yYW5nZTogICAgICAgICAgICAgICAgI2Y4OTQwNjtcbkBwaW5rOiAgICAgICAgICAgICAgICAgICNjMzMyNWY7XG5AcHVycGxlOiAgICAgICAgICAgICAgICAjN2E0M2I2O1xuXG4vKipcbiAqIEBncm91cCBDb2xvclxuICogQGxhYmVsIEJhc2UgQ29sb3IgKHVzZWQgZm9yIG5hdmJhciwgd2lkZ2V0IHRpdGxlcywgZXRjLilcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjMjI3NWJiXG4gKi9cbkBiYXNlQ29sb3I6XHRcdFx0XHRAYmx1ZTtcblxuLyoqXG4gKiBAZ3JvdXAgQ29sb3JcbiAqIEBsYWJlbCBIZWFkZXIvRm9vdGVyIENvbG9yXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgIzIyMlxuICovXG5AaGVhZGVyRm9vdGVyQ29sb3I6XHRcdEBncmF5RGFya2VyO1xuXG4vKipcbiAqIEBncm91cCBDb2xvclxuICogQGxhYmVsIFByZS1Gb290ZXIgQ29sb3JcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjZGRkXG4gKi9cbkBwcmVGb290ZXJDb2xvcjpcdFx0QGdyYXlMaWdodGVyO1xuXG4vKipcbiAqIEBncm91cCBDb2xvclxuICogQGxhYmVsIENvbG9yIG9mIGxpbmtzXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgIzIyNzViYlxuICovXG5AbGlua0NvbG9yOiAgICAgICAgICAgICBAYmx1ZTtcblxuLyoqXG4gKiBAZ3JvdXAgQ29sb3JcbiAqIEBsYWJlbCBIb3ZlciBjb2xvciBvZiBsaW5rc1xuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICMyMjc1YmJcbiAqL1xuQGxpbmtDb2xvckhvdmVyOiAgICAgICAgbGlnaHRlbihAbGlua0NvbG9yLCAxMCUpO1xuXG4vKipcbiAqIEBncm91cCBDb2xvclxuICogQGxhYmVsIEJhY2tncm91bmQgY29sb3Igb2YgcG9zdCBtZXRhIGJveGVzIChhdXRob3IgYmlvLCByZWxhdGVkIHBvc3RzLCBldGMuKVxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICNmZmZcbiAqL1xuQHBvc3RCb3hCYWNrZ3JvdW5kQ29sb3I6XHQjZmZmO1xuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBMQVlPVVRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBjb250YWluZXJNYXhXaWR0aDpcdFx0MTE3MHB4O1xuXG4vKipcbiAqIEBncm91cCBCYXNpY3NcbiAqIEBsYWJlbCBCb2R5IEJhY2tncm91bmQgQ29sb3JcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjZmZmXG4gKi9cbkBib2R5QmFja2dyb3VuZDogICAgICAgIEB3aGl0ZTtcblxuLyoqXG4gKiBAZ3JvdXAgQmFzaWNzXG4gKiBAbGFiZWwgUGFnZSBCYWNrZ3JvdW5kIENvbG9yXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgI2ZmZlxuICovXG5AcGFnZUJhY2tncm91bmQ6ICAgICAgICBAd2hpdGU7XG5cbi8qKlxuICogQGdyb3VwIEJhc2ljc1xuICogQGxhYmVsIFRleHQgQ29sb3JcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjMzMzXG4gKi9cbkB0ZXh0Q29sb3I6ICAgICAgICAgICAgIEBncmF5RGFyaztcbi8qKlxuICogQGdyb3VwIEJhc2ljc1xuICogQGxhYmVsIERlZmF1bHQgVmVydGljYWwgU3BhY2luZ1xuICogQHR5cGUgcGl4ZWxzXG4gKiBAZGVmYXVsdF92YWx1ZSAyNHB4XG4gKi9cbkBiYXNlbGluZTpcdFx0XHRcdDI0cHg7XG5cbi8vIEdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBncmlkQ29sdW1uczogICAgICAgICAgICAgMTI7XG5AZmx1aWRHcmlkQ29sdW1uV2lkdGg6ICAgIDYuMzgyOTc4NzIzJTtcbkBmbHVpZEdyaWRHdXR0ZXJXaWR0aDogICAgMi4xMjc2NTk1NzQlO1xuQGdyaWRSb3dXaWR0aDogICAgICAgICAgICAxMDAlO1xuXG4vLyBCcmVha3BvaW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGhpZ2hkZW5zaXR5OiB+XCJvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KVwiLFxuICAgICAgICAgICAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KVwiLFxuICAgICAgICAgICAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMvMiApXCIsXG4gICAgICAgICAgICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KVwiO1xuXG5AbW9iaWxlOiAgICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MjlweClcIjtcblxuQHRhYmxldDogICAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweClcIjtcbkB0YWJsZXREb3duOiAgflwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KVwiO1xuQHRhYmxldFVwOiAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpXCI7XG5cbkBkZXNrdG9wOiAgICAgflwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTEyOHB4KVwiO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVFlQT0dSQVBIWVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBAZ3JvdXAgVHlwb2dyYXBoeVxuICogQGxhYmVsIFNhbnMgRm9udCBGYW1pbHlcbiAqIEB0eXBlIHRleHRcbiAqIEBkZWZhdWx0X3ZhbHVlIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlxuICovXG5Ac2Fuc0ZvbnRGYW1pbHk6ICAgICAgICBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbi8qKlxuICogQGdyb3VwIFR5cG9ncmFwaHlcbiAqIEBsYWJlbCBTZXJpZiBGb250IEZhbWlseVxuICogQHR5cGUgdGV4dFxuICovXG5Ac2VyaWZGb250RmFtaWx5OiAgICAgICBHZW9yZ2lhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWY7XG5AbW9ub0ZvbnRGYW1pbHk6ICAgICAgICBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG5cbi8qKlxuICogQGdyb3VwIFR5cG9ncmFwaHlcbiAqIEBsYWJlbCBCYXNlIEZvbnQgU2l6ZVxuICogQHR5cGUgcGl4ZWxzXG4gKi9cbkBiYXNlRm9udFNpemU6ICAgICAgICAgIDE2cHg7XG5cbi8qKlxuICogQGdyb3VwIFR5cG9ncmFwaHlcbiAqIEBsYWJlbCBTYW5zIEZvbnQgRmFtaWx5XG4gKiBAdHlwZSBkcm9wZG93blxuICogQG9wdGlvbnMgQHNlcmlmRm9udEZhbWlseXxAc2Fuc0ZvbnRGYW1pbHlcbiAqIEBkZWZhdWx0X3ZhbHVlIEBzZXJpZkZvbnRGYW1pbHlcbiAqL1xuQGJhc2VGb250RmFtaWx5OiAgICAgICAgQHNlcmlmRm9udEZhbWlseTtcbi8qKlxuICogQGdyb3VwIFR5cG9ncmFwaHlcbiAqIEBsYWJlbCBCYXNlIExpbmUgSGVpZ2h0XG4gKiBAdHlwZSB0ZXh0XG4gKiBAZGVmYXVsdF92YWx1ZSAxLjVcbiAqL1xuQGJhc2VMaW5lSGVpZ2h0OiAgICAgICAgMS41O1xuXG5AYWx0Rm9udEZhbWlseTogICAgICAgICBAc2Fuc0ZvbnRGYW1pbHk7XG5AYmFzZUZvbnRXZWlnaHQ6XHRcdG5vcm1hbDtcblxuQGhlYWRpbmdzRm9udEZhbWlseTogICAgQHNhbnNGb250RmFtaWx5OyAvLyBlbXB0eSB0byB1c2UgZGVmYXVsdCwgQGJhc2VGb250RmFtaWx5XG5AaGVhZGluZ3NGb250V2VpZ2h0OiAgICBib2xkOyAvLyBlbXB0eSB0byB1c2UgZGVmYXVsdCwgQGJhc2VGb250V2VpZ2h0XG5AaGVhZGluZ3NDb2xvcjogICAgICAgICBpbmhlcml0OyAvLyBlbXB0eSB0byB1c2UgZGVmYXVsdCwgQHRleHRDb2xvclxuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGT1JNUywgVEFCTEVTIEFORCBCVVRUT05TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBUYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkB0YWJsZUJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50OyAvLyBvdmVyYWxsIGJhY2tncm91bmQtY29sb3JcbkB0YWJsZUJhY2tncm91bmRBY2NlbnQ6ICAgICAgICAgICAgICNmOWY5Zjk7IC8vIGZvciBzdHJpcGluZ1xuQHRhYmxlQmFja2dyb3VuZEhvdmVyOiAgICAgICAgICAgICAgI2Y1ZjVmNTsgLy8gZm9yIGhvdmVyXG5AdGFibGVCb3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAjZGRkOyAvLyB0YWJsZSBhbmQgY2VsbCBib3JkZXJcblxuXG4vLyBCdXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AYnRuQmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICBAd2hpdGU7XG5AYnRuQmFja2dyb3VuZEhpZ2hsaWdodDogICAgICAgICAgICBkYXJrZW4oQHdoaXRlLCAxMCUpO1xuQGJ0bkJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgI2NjYztcblxuQGJ0blByaW1hcnlCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgQGJhc2VDb2xvcjtcbkBidG5QcmltYXJ5QmFja2dyb3VuZEhpZ2hsaWdodDogICAgIHNwaW4oQGJ0blByaW1hcnlCYWNrZ3JvdW5kLCAxNSUpO1xuXG5cbi8vIEZvcm1zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW5wdXRCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgIEB3aGl0ZTtcbkBpbnB1dEJvcmRlcjogICAgICAgICAgICAgICAgICAgI2NjYztcbkBpbnB1dEJvcmRlclJhZGl1czogICAgICAgICAgICAgM3B4O1xuQGlucHV0RGlzYWJsZWRCYWNrZ3JvdW5kOiAgICAgICBAZ3JheUxpZ2h0ZXI7XG5AZm9ybUFjdGlvbnNCYWNrZ3JvdW5kOiAgICAgICAgICNmNWY1ZjU7XG5cbkBwbGFjZWhvbGRlclRleHQ6ICAgICAgICAgQGdyYXlMaWdodDtcblxuXG4vLyBGb3JtIHN0YXRlcyBhbmQgYWxlcnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5Ad2FybmluZ1RleHQ6ICAgICAgICAgICAgICNjMDk4NTM7XG5Ad2FybmluZ0JhY2tncm91bmQ6ICAgICAgICNmY2Y4ZTM7XG5Ad2FybmluZ0JvcmRlcjogICAgICAgICAgIGRhcmtlbihzcGluKEB3YXJuaW5nQmFja2dyb3VuZCwgLTEwKSwgMyUpO1xuXG5AZXJyb3JUZXh0OiAgICAgICAgICAgICAgICNiOTRhNDg7XG5AZXJyb3JCYWNrZ3JvdW5kOiAgICAgICAgICNmMmRlZGU7XG5AZXJyb3JCb3JkZXI6ICAgICAgICAgICAgIGRhcmtlbihzcGluKEBlcnJvckJhY2tncm91bmQsIC0xMCksIDMlKTtcblxuQHN1Y2Nlc3NUZXh0OiAgICAgICAgICAgICAjNDY4ODQ3O1xuQHN1Y2Nlc3NCYWNrZ3JvdW5kOiAgICAgICAjZGZmMGQ4O1xuQHN1Y2Nlc3NCb3JkZXI6ICAgICAgICAgICBkYXJrZW4oc3BpbihAc3VjY2Vzc0JhY2tncm91bmQsIC0xMCksIDUlKTtcblxuQGluZm9UZXh0OiAgICAgICAgICAgICAgICAjM2E4N2FkO1xuQGluZm9CYWNrZ3JvdW5kOiAgICAgICAgICAjZDllZGY3O1xuQGluZm9Cb3JkZXI6ICAgICAgICAgICAgICBkYXJrZW4oc3BpbihAaW5mb0JhY2tncm91bmQsIC0xMCksIDclKTtcblxuLy8gWi1pbmRleCBtYXN0ZXIgbGlzdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQHppbmRleERyb3Bkb3duOiAgICAgICAgICAxMDAwO1xuQHppbmRleFBvcG92ZXI6ICAgICAgICAgICAxMDEwO1xuQHppbmRleFRvb2x0aXA6ICAgICAgICAgICAxMDIwO1xuQHppbmRleEZpeGVkTmF2YmFyOiAgICAgICAxMDMwO1xuQHppbmRleE1vZGFsQmFja2Ryb3A6ICAgICAxMDQwO1xuQHppbmRleE1vZGFsOiAgICAgICAgICAgICAxMDUwO1xuXG4vLyBOYXZiYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBuYXZiYXJIZWlnaHQ6ICAgICAgICAgICAgICAgICAgICA0MHB4O1xuQG5hdmJhckZvbnRTaXplOiAgICAgICAgICAgICAgICAgIDE1cHg7XG5AbmF2YmFyQmFja2dyb3VuZDogICAgICAgICAgICAgICAgQGJvZHlCYWNrZ3JvdW5kO1xuLy8gTmF2YmFyIGJ1dHRvbiAoYnVyZ2VyKSBmb3IgdG9nZ2xpbmcgbmF2YmFyIGl0ZW1zIGluIHJlc3BvbnNpdmUgbGF5b3V0c1xuQGljb25iYXJIZWlnaHQ6IDNweDtcblxuICAgIC8vIE5hdmJhciBkcm9wZG93bnNcbiAgICBAZHJvcGRvd25CYWNrZ3JvdW5kOiBAd2hpdGU7XG4gICAgQGRyb3Bkb3duQm9yZGVyOiByZ2JhKDAsMCwwLC4yKTtcbiAgICBAZHJvcGRvd25EaXZpZGVyVG9wOiAjZTVlNWU1O1xuICAgIEBkcm9wZG93bkRpdmlkZXJCb3R0b206IEB3aGl0ZTtcblxuICAgIC8vIE1haW4gbmF2YmFyXG4gICAgQG5hdmJhclRleHQ6IEB0ZXh0Q29sb3I7XG4gICAgQG5hdmJhckxpbmtDb2xvcjogQG5hdmJhclRleHQ7XG4gICAgQG5hdmJhckxpbmtDb2xvckhvdmVyOiBkYXJrZW4oQG5hdmJhckxpbmtDb2xvciwgNSUpO1xuICAgIEBuYXZiYXJMaW5rQmFja2dyb3VuZEFjdGl2ZTogZGFya2VuKEBuYXZiYXJCYWNrZ3JvdW5kLCA1JSk7XG4gICAgQG5hdmJhckRyb3Bkb3duQ2FyZXRDb2xvcjogQG5hdmJhckxpbmtDb2xvcjtcbiAgICBAbmF2YmFyRHJvcGRvd25DYXJldENvbG9ySG92ZXI6IEBuYXZiYXJMaW5rQ29sb3JIb3ZlcjtcbiAgICBAbmF2YmFyUnVsZUNvbG9yOiBAZ3JheUxpZ2h0O1xuXG4gICAgLy8gU3RpY2t5IG5hdmJhclxuICAgIEBzdGlja3lOYXZiYXJUZXh0OiBAdGV4dENvbG9yO1xuICAgIEBzdGlja3lOYXZiYXJMaW5rQ29sb3I6IEBzdGlja3lOYXZiYXJUZXh0O1xuICAgIEBzdGlja3lOYXZiYXJMaW5rQ29sb3JIb3ZlcjogZGFya2VuKEBzdGlja3lOYXZiYXJMaW5rQ29sb3IsIDUlKTtcbiAgICBAc3RpY2t5TmF2YmFyQmFja2dyb3VuZENvbG9yOiBAd2hpdGU7XG4gICAgQHN0aWNreU5hdmJhckRyb3Bkb3duQ2FyZXRDb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvcjtcbiAgICBAc3RpY2t5TmF2YmFyRHJvcGRvd25DYXJldENvbG9ySG92ZXI6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3JIb3ZlcjtcblxuXG4vLyBTb2NpYWwgQnJhbmRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AcnNzOiAjZjg5NDA2O1xuQGZhY2Vib29rOiAjM2E1Nzk1O1xuQHR3aXR0ZXI6ICM1NWFjZWU7XG5AeW91dHViZTogI2U1MmQyNztcbkBncGx1czogI2RkNGIzOTtcbkBmbGlja3I6ICNmZjAwODQ7XG5AbGlua2VkaW46ICMwMDdiYjY7XG5AdHVtYmxyOiAjMzU0NjVjO1xuIiwiQHN0aWNreU5hdkxpbmVIZWlnaHQ6IDU2cHg7XG5cbi5zdGlja3ktbmF2LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zdGlja3ktbmF2LWhvbGRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogOTk5OTg7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAc3RpY2t5TmF2YmFyQmFja2dyb3VuZENvbG9yO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGdyYXlMaWdodGVyO1xuICAudHJhbnNpdGlvbihvcGFjaXR5IDAuM3MpO1xuXG4gICYudHJhbnNpdGlvbmluZyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IEBzdGlja3lOYXZMaW5lSGVpZ2h0O1xuXG4gICAgLm5hdmJhciB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gICYuc2hvdyB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgYm9keS5hZG1pbi1iYXIgJiB7XG4gICAgdG9wOiAzMnB4O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc4MnB4KSB7XG4gICAgICB0b3A6IDQ2cHg7XG4gICAgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYm9keSAmLm1haW5fbmF2X2hpZGVfYXJ0aWNsZSxcbiAgICBib2R5ICYuc3RpY2t5X25hdl9kaXNwbGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4vLyBFeHRlbmQgdGhlIGNvbW1vbiBuYXZiYXIgc3R5bGVzXG4ubmF2YmFyLnN0aWNreS1uYXZiYXIge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICAudHJhbnNpdGlvbihvcGFjaXR5IDAuM3MpO1xuXG4gIC5uYXYge1xuICAgIGNvbG9yOiBAc3RpY2t5TmF2YmFyVGV4dDtcbiAgfVxuXG4gIGxpIHtcbiAgICBhIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBAc3RpY2t5TmF2TGluZUhlaWdodDtcbiAgICAgIGNvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9yO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3JIb3ZlcjtcbiAgICAgIH1cblxuICAgICAgLmNhcmV0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IEBzdGlja3lOYXZiYXJEcm9wZG93bkNhcmV0Q29sb3I7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIgLmNhcmV0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IEBzdGlja3lOYXZiYXJEcm9wZG93bkNhcmV0Q29sb3JIb3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmhvbWUtbGluayA+IGE6aG92ZXIge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQHN0aWNreU5hdmJhckxpbmtDb2xvciwgNSUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERyb3Bkb3ducyB3aXRoaW4gbmF2XG4gIGxpLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IGxpIGEge1xuICAgIGNvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvckhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIC5zb2NpYWwtaWNvbnMge1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuXG4gIC5idG4tbmF2YmFyIHtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBsaW5lLWhlaWdodDogQHN0aWNreU5hdkxpbmVIZWlnaHQ7XG5cbiAgICAuYmFycyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIC5pY29uLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9yO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLmljb24tYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvckhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuaG9tZS1saW5rIHtcbiAgICAvLyBUT0RPOiBzaG91bGQgYmUgYmFzZWQgb24gYSB2YXJpYWJsZVxuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubmF2ID4gbGkge1xuICAgICAgYSB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgLy8gVE9ETzogc2hvdWxkIGJlIGJhc2VkIG9uIHZhcmlhYmxlXG4gICAgICAgICAgd2lkdGg6IDEuNDllbTtcbiAgICAgICAgICBoZWlnaHQ6IDEuNDllbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuaWNvbi1ob21lOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbnRhaW5zIHNvY2lhbCBpY29ucywgc2VhcmNoLCBkb25hdGUgbGlua1xuICAubmF2LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICAjaGVhZGVyLWV4dHJhcyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGEuZG9uYXRlLWxpbms6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLmRvbmF0ZSB7XG4gICAgICAgIGEgc3BhbiB7XG4gICAgICAgICAgLy8gVE9ETzogc2hvdWxkIGJlIGJhc2VkIG9uIHZhcnNcbiAgICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuXG4gICAgICAgICAgY29sb3I6IEB3aGl0ZTtcblxuICAgICAgICAgIC8vIFRPRE86IGlzIHRoaXMgc3BlY2lmaWMgdG8gdGhlIGRvbmF0ZSBsaW5rP1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEByZWQ7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEByZWQsIDUlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBUT0RPOiB3aGF0IGlzIHRoaXMgZm9yP1xuICAgICAgICAgIGkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIC8vIE5hdmJhciBzZWFyY2ggZm9ybVxuICAuZm9ybS1zZWFyY2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAudG9nZ2xlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGNvbG9yOiBAYmFzZUNvbG9yO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTE7XG4gICAgICAudHJhbnNpdGlvbiggMC4zcyApO1xuICAgIH1cbiAgICAuaW5wdXQtYXBwZW5kIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiA0NHB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgLnRyYW5zaXRpb24oIDAuM3MgKTtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICB6LWluZGV4OiA5MDtcbiAgICAgIHdpZHRoOiAyNDZweDtcbiAgICAgIC50ZXh0LWlucHV0LXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAxOTZweDtcbiAgICAgIH1cbiAgICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC5ib3gtc2l6aW5nKCBib3JkZXItYm94ICk7XG4gICAgICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDUwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAuYm94LXNpemluZyggYm9yZGVyLWJveCApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICAgI3N0aWNreS1uYXYtc2VhcmNoLnNob3cge1xuICAgICAgLmlucHV0LWFwcGVuZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIH1cbiAgICAgIC5pbnB1dC1hcHBlbmQsXG4gICAgICAudG9nZ2xlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM0MzQzNDtcbiAgICAgICAgY29sb3I6IEBib2R5QmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmF2LWxlZnQge1xuICAgICYgPiB1bCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhpZGVzIHRoZSBzZWNvbmQgc2l0ZSBuYW1lIGluIHRoZSBzdGlja3kgaGVhZGVyXG4gIC8vIHdoZW4gLm5hdi1zaGVsZiBpcyB2aXNpYmxlXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgIC5uYXYtbGVmdCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNpdGUgbmFtZVxuICAuc2l0ZS1uYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogIzM0MzQzNDtcblxuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgICAgY29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3I7XG4gICAgICBtYXgtd2lkdGg6IDIxNHB4O1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvckhvdmVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmlnaHQgc2lkZSBvZiBuYXYsIHNlYXJjaCwgZG9uYXRlLCBzb2NpYWwgaWNvbnNcbiAgLm5hdi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgICNoZWFkZXItZXh0cmFzIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYS5kb25hdGUtbGluazpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN0aWNreSBuYXYgZHJvcGRvd24gbW9kc1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBsaS5kcm9wZG93biB7XG4gICAgICAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBzdGlja3lOYXZMaW5lSGVpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXYtc2hlbGYgYi5jYXJldCB7XG4gICAgICBwYWRkaW5nOiAyMnB4O1xuICAgIH1cbiAgfVxufVxuXG4vLyBGb3JtYXQgdGhlIHN0aWNreSBuYXYgb3ZlcmZsb3cgbWVudVxuI21lbnUtb3ZlcmZsb3cgPiB1bCB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgbWF4LWhlaWdodDogODB2aDtcbiAgLmNhcmV0OjpiZWZvcmUsIC5jYXJldDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6bm9uZTtcbiAgfVxuICB1bC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZsb2F0OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgbGkgYSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuICAgIH1cbiAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5zdWItbWVudSxcbiAgICAuc3ViLXN1Yi1tZW51IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEJlZm9yZSBGb290ZXIsIFNpdGUgRm9vdGVyXG4gKlxuICogI2JlZm9yZS1mb290ZXIgLSBhIGR5bmFtaWMgd2lkZ2V0IGFyZWEgcHJpb3IgdG8gI3NpdGUtZm9vdGVyXG4gKiAjc2l0ZS1mb290ZXJcbiAqICAgI3N1cHBsZW1lbnRhcnkgLSBwcmltYXJ5IHdpZGdldCB6b25lcyBmb3Igc2l0ZSBmb290ZXJcbiAqICAgI2JvaWxlcnBsYXRlIC0gc29jaWFsIGljb25zLCBjb3B5cmlnaHQsIElOTiBsb2dvIGFuZCBmb290ZXIgbGlua3NcbiAqXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuIFxuLmJlZm9yZS1mb290ZXItd3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcmVGb290ZXJDb2xvcjtcbn1cblxuI2JlZm9yZS1mb290ZXIge1xuICAud2lkZ2V0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmZvb3Rlci1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBoZWFkZXJGb290ZXJDb2xvcjtcbiAgcGFkZGluZzogMCAwIDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbiNzdXBwbGVtZW50YXJ5IHtcbiAgcGFkZGluZzogQGJhc2VsaW5lIDAgMCAwO1xuICAmLl8xY29sIGFzaWRlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLyogc3BlY2lmaWMgdG8gdGhlIG9uZSBjb2x1bW4gZm9vdGVyIGxheW91dCAqL1xuLl8xY29sIC53aWRnZXRfbmF2X21lbnUgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuXG4vKlxuICogaW1hZ2UgZGlzcGxheXMgMzAwcHggd2lkZSwgYnV0IGlzIHBoeXNpY2FsbHkgMTY5OXgzODUgcHheMlxuICogV2UnbGwgdXNlIG1hdGggdG8gZ2V0IHRoZSBwYWRkaW5nIHRvcCBhbmQgYm90dG9tIGNvcnJlY3QsIGFjY29yZGluZyB0byB0aGUgYnJhbmQgZ3VpZGVsaW5lc1xuICogbWFyZ2luIHRvcCBhbmQgbWFyZ2luIGJvdHRvbSBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIGhlaWdodCBvZiBvbmUgb2YgdGhlIHNxdWFyZXMuXG4gKiBCeSBjcm9wcGluZyB0aGUgaW1hZ2UgdG8gdGhlIG91dGVyIGJvdW5kYXJ5IG9mIHRoZSBsb3dlci1sZWZ0IHNxdWFyZSBpbiBpbm5fbG9nb19yZXZlcnNldHlwZS5wbmcsIHdlIGdldCBhIHNxdWFyZSBoZWlnaHQgb2YgMTg0cHguXG4gKiAxODQvMTY2OSA9IHgvMzAwXG4gKi9cbkBpbm4tbG9nby1waHlzaWNhbC13aWR0aDogMTY2OXB4O1xuQGlubi1sb2dvLXBoeXNpY2FsLWhlaWdodDogMzg1cHg7XG5AaW5uLWxvZ28td2lkdGg6IDIwMHB4O1xuQGlubi1sb2dvLXNxdWFyZTogKEBpbm4tbG9nby13aWR0aCoxODQvQGlubi1sb2dvLXBoeXNpY2FsLXdpZHRoKTsgLy8gMTg0IGNvbWVzIGZvcm0gdGhlIHdpZHRoIG9mIG9uZSBzcXVhcmUgaW4gSU5OJ3MgMjAxNSBsb2dvXG5AaW5uLWxvZ28taGVpZ2h0OiAoQGlubi1sb2dvLXdpZHRoKkBpbm4tbG9nby1waHlzaWNhbC1oZWlnaHQvQGlubi1sb2dvLXBoeXNpY2FsLXdpZHRoKTsgLy8gdGhlIHJlbmRlcmVkIGhlaWdodCBvZiB0aGUgbG9nbyBpbWFnZVxuQGZvb3Rlci1zb2NpYWwtbG9nby1mb250LXNpemU6IEBiYXNlRm9udFNpemUgKyAyO1xuXG4jaW5uLWxvZ28ge1xuICBtYXJnaW4tdG9wOiBAaW5uLWxvZ28tc3F1YXJlO1xuICBtYXJnaW4tYm90dG9tOiBAaW5uLWxvZ28tc3F1YXJlKjAuNzU7XG4gIG1heC13aWR0aDogQGlubi1sb2dvLXdpZHRoO1xufVxuXG4jZm9vdGVyLWxvZ29zLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4IDA7XG59XG5cbiNmb290ZXItbG9nb3Mge1xuICBvdmVyZmxvdzpoaWRkZW47XG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICBcdGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjclO1xuICAgIGltZyB7XG5cdCAgZGlzcGxheTogYmxvY2s7XG5cdCAgd2lkdGg6IDEwMCU7XG5cdCAgbWF4LXdpZHRoOiAxODBweDtcblx0ICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cbiAgaDYge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAZ3JheTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgYSB7XG5cdCAgZmxvYXQ6IHJpZ2h0O1xuXHQgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG51bCNmb290ZXItc29jaWFsIHtcbiAgcGFkZGluZy10b3A6IEBpbm4tbG9nby1zcXVhcmU7XG4gIHBhZGRpbmctYm90dG9tOiBAaW5uLWxvZ28tc3F1YXJlKjAuNzU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICBsaSB7XG4gICAgaGVpZ2h0OiBAaW5uLWxvZ28taGVpZ2h0O1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICBhIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogKChAaW5uLWxvZ28taGVpZ2h0IC0gQGZvb3Rlci1zb2NpYWwtbG9nby1mb250LXNpemUpLzEuNzUpO1xuICAgIH1cbiAgICBpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGNvbG9yOiBAd2hpdGU7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAxLjI1KkBpbm4tbG9nby1zcXVhcmU7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGRhcmtlbihAd2hpdGUsIDI1JSk7XG4gICAgICB9XG4gICAgICBmb250LXNpemU6IEBmb290ZXItc29jaWFsLWxvZ28tZm9udC1zaXplO1xuICAgICAgLmRhcmtMaWdodChAaGVhZGVyRm9vdGVyQ29sb3IpO1xuICAgIH1cbiAgfVxuICBsaTpsYXN0LWNoaWxkIGEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuI2JvaWxlcnBsYXRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgY29sb3I6IzlGOUZBMztcbiAgfVxuICAubWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAwLjY2NztcbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgfVxuICAubWVudSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbn1cblxuZm9vdGVyICNib2lsZXJwbGF0ZSB7XG4gIHAge1xuICAgIGNvbG9yOiM5RjlGQTM7XG4gIH1cbiAgYSB7XG4gICAgY29sb3I6QGdyYXlMaWdodGVyO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IzA5QzlGRjsgLy8gVGhpcyBibHVlIGlzIElOTidzIFByaW1hcnkgQnJhbmQgY29sb3IhXG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAjYm9pbGVycGxhdGUgLnNwYW42LnJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk3OXB4KSB7XG4gIC8vIElmIHRoZSBJTk4gbG9nbyBpcyBub3QgZGlzcGxheWVkLCB0aGUgZm9vdGVyIGNyZWRpdCBnZXRzIHNvbWUgcGFkZGluZyB1cCB0b3BcbiAgLmZvb3Rlci1jcmVkaXQtcGFkZGluZy1pbm4tbG9nby1taXNzaW5nIHtcbiAgICBtYXJnaW4tdG9wOiBAaW5uLWxvZ28taGVpZ2h0ICsgMS43NSpAaW5uLWxvZ28tc3F1YXJlO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuICAjYm9pbGVycGxhdGUgLnJvdy1mbHVpZCB7XG4gICAgLnNwYW42IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbiAgdWwjZm9vdGVyLXNvY2lhbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gIC5mb290ZXItY3JlZGl0IHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5iYWNrLXRvLXRvcCB7XG4gIC52aXN1YWxseWhpZGRlblxufVxuIiwiLy9PdmVycmlkZSBMYXJnbyBzdHlsZXMsIGh0dHA6Ly9qaXJhLmlubi5vcmcvYnJvd3NlL1JOUy0xMDZcbmJvZHkubm9ybWFsLnNpbmdsZS1wb3N0IGFydGljbGUucG9zdCA+IGhlYWRlciAuZW50cnktZGF0ZSxcbmJvZHkubm9ybWFsLnNpbmdsZS1wb3N0IGFydGljbGUucG9zdCA+IGhlYWRlciAuc2VwIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4udG9wLWRhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ5bGluZSAudHdpdHRlciB7XG4gIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbiAgYTpob3ZlciB7XG4gICAgY29sb3I6ICM1NWFjZWU7XG4gIH1cbn1cbnAud3AtY2FwdGlvbi10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IEBzbWFsbHRleHQ7XG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMTI1ZW07XG59XG5cbmZpZ2NhcHRpb24gY2l0ZSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbiIsIi8vIFRoZW1lIGNvbG9yc1xuQGJhc2VDb2xvcjogdHJhbnNwYXJlbnQ7XG5AbGlnaHRibHVlOiAjNTBjNWY3O1xuQGJsdWU6ICMyMjZGOTE7XG5AcmVkOiAjQjQzNDM0O1xuQHllbGxvdzogI0YwQjk1NjtcblxuQHRyYW5zcGFyZW50YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuXG4vLyBUeXBvZ3JhcGh5XG5Ac2FuczogXCJ0YWJsZXQtZ290aGljLWNvbmRlbnNlZFwiLHNhbnMtc2VyaWY7XG5AYm9keTogXCJsZWl0dXJhLW5ld3NcIixHZW9yZ2lhLHNlcmlmO1xuQHNtYWxsdGV4dDogXCJoZWx2ZXRpY2EgbmV1ZVwiLGhlbHZldGljYSxzYW5zLXNlcmlmO1xuIiwiLyogVHlwb2dyYXBoeSAqL1xuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogQHNhbnM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiBAZ3JheURhcms7XG4gIGEge1xuICAgIGNvbG9yOiBAZ3JheURhcms7XG4gIH1cbn1cblxuLyogIE5hdHMgY2hhbmdlcyB0byBoZWFkaW5nIHNpemVzICAqL1xuXG4uZW50cnktY29udGVudCBoMSxcbmVudHJ5LWNvbnRlbnQgaDIge1x0XG4gICAgZm9udC1zaXplOiAzMHB4O1xufVxuLmVudHJ5LWNvbnRlbnQgaDMge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5lbnRyeS1jb250ZW50IGg0LCBcbi5lbnRyeS1jb250ZW50IGg1XG4uZW50cnktY29udGVudCBoNntcbiAgICBmb250LXNpemU6IDIwcHg7XG59XG4uZW50cnktY29udGVudCBoNSxcbi5lbnRyeS1jb250ZW50IGg2e1xuXHRjb2xvcjogZ3JheTt9XG5cdFxuI3RvcGljcy1iYXIgdWwgbGkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVx0XG5cdFxuLyogZW5kIG5hdCdzIGNoYW5nZXMgKi9cblxuYSB7XG4gIGNvbG9yOiBAcmVkO1xuICAmOmhvdmVyIHtcbiAgXHRjb2xvcjogQHJlZDtcbiAgXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuICB9XG5cblx0XHRcbnAsXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IEBib2R5O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuaDUuYnlsaW5lIHtcbiAgZm9udC1mYW1pbHk6IEBzbWFsbHRleHQ7XG59XG5cbi8qIExhcmdvIEhlbHZldGljYSBPdmVycmlkZXMgKi9cbi50b3AtdGFnLCBcbi5uYXYsIFxuLnRvcC1kYXRlLCBcbi5sb2FkLW1vcmUsIFxuLnBvc3Qtc29jaWFsPnNwYW4sXG4ucnNzLXN1YnNjcmliZS1saW5rLFxuLnRhZ3MsXG4ucmVsYXRlZC1pdGVtcyBwLFxuLnN1YnNjcmliZSxcbi53aWRnZXQubGFyZ28tc2VyaWVzLXBvc3RzIGxpIGEsXG51bC5zdGFmZi1yb3N0ZXIgLnN0YWZmLW5hbWUsXG4uYXJjaGl2ZS1iYWNrZ3JvdW5kIC5yZWxhdGVkLXRvcGljcyxcbi5sYWJlbHMsXG4ubmF2YmFyLFxuLnBhZ2VyLFxuLnBvc3QtcGFnaW5hdGlvbiBhLFxuLnBvc3QtcGFnaW5hdGlvbiBzcGFuLFxuLyogQU5BTFlUSUMgQlJJREdFICovXG4jc2lkZWJhciAud2lkZ2V0X2FuYWx5dGljLWJyaWRnZS1wb3B1bGFyLXBvc3RzIG9sIGxpOjpiZWZvcmUge1xuICBmb250LWZhbWlseTogQHNhbnM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59IiwiLndpZGdldHRpdGxlLFxuLnN0b3JpZXMgaDMud2lkZ2V0dGl0bGUge1xuICAuc2VjdGlvbi10aXRsZTtcbiAgYSB7XG4gICAgY29sb3I6IEBibHVlO1xuICB9XG59XG5cbi53aWRnZXQge1xuICBwYWRkaW5nOiAwO1xuICBoNSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuICAvLyBkZWZhdWx0IGFkZHMgLjY2ZW0gYm90dG9tIHBhZGRpbmdcbiAgLy8gbmVlZCB0byByZXBsYWNlIHRoaXMgd2l0aCBhIGJvdHRvbSBtYXJnaW4gZHVlIHRvIHRoZSBncmF5IGJvcmRlciBhcm91bmQgaW1hZ2VzXG4gIGltZy5hdHRhY2htZW50LWxhcmdlLFxuICBpbWcuYXR0YWNobWVudC1tZWRpdW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNjZlbTtcbiAgfVxufVxuXG4jc2lkZWJhciB7XG4gIC53aWRnZXQge1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuICAud2lkZ2V0dGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjRweDsgIFxuICB9XG59XG4uYXV0aG9yLWJveCB1bCBsaSB7XG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBibHVlO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAYmx1ZSwxMCUpO1xuICAgIH0gXG4gIH1cbn1cbi5hcnRpY2xlLWJvdHRvbSAuYXV0aG9yLWJveCB7XG4gIC53aWRnZXR0aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gTGFyZ28gdGF4IGxpc3Qgd2lkZ2V0XG4ud2lkZ2V0LWFyZWEgLmxhcmdvLXRheG9ub215LWxpc3QgaDUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmxhcmdvLXRheG9ub215LWxpc3QgIHtcbiAgYSB7XG4gICAgY29sb3I6IEBncmF5RGFyaztcbiAgICBmb250LWZhbWlseTogQHNhbnM7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBAYmx1ZTtcbiAgICB9XG4gIH1cbiAgaW1nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbiAgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbn1cblxuLy8gU2F2ZWQgTGlua3Mgd2lkZ2V0XG4uc2F2ZWQtbGlua3Mge1xuICBib3JkZXI6IDFweCBzb2xpZCBAZ3JheUxpZ2h0O1xuICBwYWRkaW5nOiAyNHB4O1xufVxuLnNvdXJjZSB7XG4gIGZvbnQtZmFtaWx5OiBAc2FucztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi8vIE92ZXJyaWRlIHNvbWUgc3R5bGVzIHNldCBpbiB0aGUgU2F2ZWQgTGlua3MgV2lkZ2V0IENTUywgd2hpY2ggaXMgZW5xdWV1ZWQgYWZ0ZXIgdGhpcyB0aGVtZVxuLndpZGdldC5zYXZlZC1saW5rcyAucG9zdC1sZWFkIHtcbiAgcCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG4gIGg1IHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIHAuZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgfVxufVxuXG4vLyBEb3VibGVjbGljayBhZHNcbi5kZnctdW5pdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiQWR2ZXJ0aXNlbWVudFwiO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LWZhbWlseTogQHNtYWxsdGV4dDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogQGdyYXk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiNoZWFkZXItYWQtem9uZS1jb250YWluZXIsXG4jYmVmb3JlLWZvb3Rlcixcbi5hZC16b25lLmNlbnRlciB7XG4gIGRpdiBkaXYge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gIC5kZnctdW5pdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG5vbmU7XG4gIH1cbn1cbiNoZWFkZXItYWQtem9uZS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDVweCAwO1xufVxuLmJlZm9yZS1mb290ZXItd3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4jYmVmb3JlLWZvb3RlciB7XG4gIHBhZGRpbmc6IDRweCAwIDhweDtcbn1cblxuI3NpZGViYXIgLndpZGdldF9hbmFseXRpYy1icmlkZ2UtcG9wdWxhci1wb3N0cyBsaStsaSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuXG4vLyBGb290ZXIgXG4jc2l0ZS1mb290ZXIgbGkge1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGEge1xuICAgIGNvbG9yOiBAd2hpdGU7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogQHJlZDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuICB1bCB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICNzaXRlLWZvb3RlciBsaSBsaTpsYXN0LWNoaWxkLFxuICAjc2l0ZS1mb290ZXIgLndpZGdldCxcbiAgI3NpdGUtZm9vdGVyIGRpdltjbGFzc149XCJzcGFuXCJdIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4jYm9pbGVycGxhdGUgcCB7XG4gIGZvbnQtZmFtaWx5OiBAc21hbGx0ZXh0O1xufVxuI3NpdGUtZm9vdGVyIC5zcGFuNSB1bCBsaTpsYXN0LWNoaWxkIGEge1xuICBwYWRkaW5nOiAxMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC5jdGEtYnV0dG9uO1xufVxuLyogQ2hhbmdlZCBidXR0b24gcG9zaXRpb24gcGVyIFRvbSdzIHJlcXVlc3QgTkYgKi9cbmhlYWRlciAubmV3c2xldHRlci1zaWdudXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDcwcHg7XG4gICAgcmlnaHQ6IDYwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xufVxuLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgei1pbmRleDogOTk5O1xuICBhIHtcbiAgICBjb2xvcjogQGJsYWNrO1xuICAgIGZvbnQtZmFtaWx5OiBAc2FucztcbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiBsaWdodGVuKEBibGFjaywgMzAlKTtcbiAgICAgIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEByZWQsIDEwJSk7XG4gICAgICAgIGNvbG9yOiBAd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHNwYW4ge1xuICAgIC5jdGEtYnV0dG9uO1xuICAgIHBhZGRpbmc6IDVweCA4cHggOHB4IDhweDtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuICB9XG59XG4uYXJ0aWNsZS1ib3R0b20gLm5ld3NsZXR0ZXItc2lnbnVwIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4iLCIvKiBCYXNlIHN0eWxlcyBmb3Igc2VjdGlvbiBhbmQgd2lkZ2V0IHRpdGxlcyAqL1xuLnNlY3Rpb24tdGl0bGUge1xuICBmb250LXNpemU6IDMycHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiBAYmx1ZTtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgQGJsdWU7XG59XG5cbi50ZXh0LWFsaWduLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmN0YS1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiBAc2FucztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gIC8vIEZvciBsaW5rc1xuICBhLCBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAcmVkLDEwJSk7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cbiIsIi5nbG9iYWwtbmF2IHtcbiAgI2hlYWRlci1zZWFyY2gge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiNoZWFkZXItc2VhcmNoIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuXG4uZG9uYXRlLWJ0biB7XG4gIC5jdGEtYnV0dG9uXG59XG5cbiNzaXRlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAxMHB4IDA7XG4gIC5oZWFkZXJfaW1nIHtcbiAgICBtYXgtd2lkdGg6IDIwOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG4jbWFpbi1uYXYubmF2YmFyIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNhYWE7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYWFhO1xuICBsaSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgICYgPiBhIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MnB4O1xuICAgIH1cbiAgfVxufVxuI21haW4tbmF2Lm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSA+IGEge1xuICBsaW5lLWhlaWdodDogNDBweDtcbn1cblxuI3RvcGljcy1iYXIgYSB7XG4gIGNvbG9yOiBAYmx1ZTtcbn1cbiIsIi8qKlxuICogRGVmaW5lIHRoZSB2YXJpb3VzIHBhZGRpbmdzIGFuZCBoZWlnaHRzIGFyb3VuZCB0aGUgZmxhZ1xuICovXG5AZmxhZ0Jhc2U6IDFlbTtcbkBmbGFnTGluZUhlaWdodDogMS4zOyAvLyBUaGlzIGlzIHRoZSBsYXJnbyBoZWFkaW5nIGRlZmF1bHQuXG5AZmxhZ1BhZGRpbmc6IDEwLzE2KkBmbGFnQmFzZTtcbkBmbGFnSGVpZ2h0OiAoQGZsYWdMaW5lSGVpZ2h0ICogQGZsYWdCYXNlKSArIEBmbGFnUGFkZGluZyArIEBmbGFnUGFkZGluZztcblxuLyoqXG4gKiBJbmNyZWFzZSB0aGUgaGVpZ2h0IG9mIHRoZSBwYWRkaW5nIG9uIHBvc3QgaGVhZGxpbmVzXG4gKi9cbmJvZHkubm9ybWFsLnNpbmdsZS1wb3N0IHtcbiAgLnBvc3QtdHlwZS1wcmVzcy1yZWxlYXNlcyBoMS5lbnRyeS10aXRsZSxcbiAgLnBvc3QtdHlwZS1zcG9uc29yZWQgaDEuZW50cnktdGl0bGUge1xuICAgIHBhZGRpbmctdG9wOiA1MHB4ICsgMTJweDsgLy8gZXN0aW1hdGVkIGZsYWcgaGVpZ2h0IHBsdXMgdGhlIG1hcmdpbi1ib3R0b20gZnJvbSB0aGlzIGgxLmVudHJ5LXRpdGxlLCBmb3IgdW5pZm9ybSBzcGFjaW5nIGluIHRoZSBoZWFkZXIuXG4gICAgY2xlYXI6IGJvdGg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBwYWRkaW5nLXRvcDogMS4yNWVtO1xuICAgIH1cbiAgfVxufVxuXG5cbi8qKlxuICogQSBtaXhpbiB0byBzZXQgdXAgdGhlIGJhc2ljIDo6YmVmb3JlIGFuZCA6OmFmdGVyIGFuZCBiYWNrZ3JvdW5kIGFuZCBwYWRkaW5nIGZvciB0aGUgUHJlc3MgUmVsZWFzZXMgYW5kIFNwb25zb3JlZCBwb3N0IHR5cGVzLlxuICpcbiAqIERvZXNuJ3Qgc2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9yIHRoZSBib3JkZXIgY29sb3JzLiBEb2VzIHNldCB0aGVpciB3aWR0aHMgYW5kIHBhZGRpbmcuXG4gKi9cbi5mbGFnLW1peGlue1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMC42MjVlbTsgLy8gMTAvMTZcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LWZhbWlseTogQHNtYWxsdGV4dDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMSAqICggMC41ICogQGZsYWdIZWlnaHQgKTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAoIDAuNSAqIEBmbGFnSGVpZ2h0ICk7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQgO1xuICAgIGJvcmRlci1yaWdodDogKDAuNSAqIEBmbGFnSGVpZ2h0KSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAoIDAuNSAqIEBmbGFnSGVpZ2h0ICk7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuLypcbiAqIEdlbmVyYWwgcG9zdCBzdHlsZXNcbiAqL1xuLnBvc3QtdHlwZS1wcmVzcy1yZWxlYXNlcyxcbi5wb3N0LXR5cGUtc3BvbnNvcmVkIHtcbiAgLnRvcC10YWcge1xuICAgIHNwYW4ge1xuICAgICAgei1pbmRleDogMTA7XG4gICAgfVxuICAgIGEge1xuICAgICAgLmZsYWctbWl4aW47XG4gICAgICAvL1xuICAgICAgLy8gQ2hhbmdpbmcgdGhpcyBmb250IHNpemUgd2lsbCBjaGFuZ2UgdGhlIGZsYWcgc2l6ZSBwcm9wb3J0aW9uYWxseSFcbiAgICAgIC8vXG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbi8qXG4gKiBTcGVjaWZpYyBjb2xvciBzdHlsZXNcbiAqL1xuLnBvc3QtdHlwZS1wcmVzcy1yZWxlYXNlcyAudG9wLXRhZyBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHllbGxvdztcbiAgJjo6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB5ZWxsb3c7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IEB5ZWxsb3c7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQHllbGxvdztcbiAgfVxufVxuLnBvc3QtdHlwZS1zcG9uc29yZWQgLnRvcC10YWcgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBsaWdodGJsdWU7XG4gICY6YWZ0ZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IEBsaWdodGJsdWU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IEBsaWdodGJsdWU7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGxpZ2h0Ymx1ZTtcbiAgfVxufVxuXG4vLyBmaXggZm9yIGhvbWVwYWdlIGJlbG93LXRvcHN0b3J5XG4udG9wc3RvcnktYmVsb3cgLmhhcy10aHVtYm5haWwucG9zdC10eXBlLXByZXNzLXJlbGVhc2VzLFxuLnRvcHN0b3J5LWJlbG93IC5oYXMtdGh1bWJuYWlsLnBvc3QtdHlwZS1zcG9uc29yZWQge1xuICAudG9wLXRhZyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgLy8gaW4gaG9tZXBhZ2VzL2Fzc2V0cy9sZXNzL2hvbWVwYWdlLmxlc3MgdGhlcmUgaXMgYSBib3gtc2hhZG93IG9uIHRoaXMgZWxlbWVudCwgYnV0IGl0IGlzIG5vdCBhcHBsaWVkIGhlcmUgYmVjYXVzZSB0aGUgc2hhZG93IGRyYXdzIGEgYm94IGFyb3VuZCB0aGUgdHJhbnNwYXJlbnQgZWxlbWVudHMgYW5kIGl0IGxvb2tzIHdlaXJkLlxuICAgICAgfVxuICAgICAgY29sb3I6IEB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cbi8vIEFuZCBmb3IgYXJjaGl2ZSBwYWdlc1xuLnBvc3QtdHlwZS1wcmVzcy1yZWxlYXNlcyxcbi5wb3N0LXR5cGUtc3BvbnNvcmVkIHtcbiAgLmVudHJ5LWNvbnRlbnQgaDUudG9wLXRhZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvL25vdCB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgY29sdW1uLlxuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoZSBoaWVyYXJjaGljYWwgaGVhZGVyIGRvZXNuJ3QgZGlzcGxheSBhIHRvcCB0ZXJtICh1c2VkIGluIGNhdGVnb3JpZXMpLCBzbyB3ZSBmYWtlIGl0IHdpdGggYSA6OmJlZm9yZVxuICovXG4ucHJpbWFyeS1mZWF0dXJlZC1wb3N0LFxuLnNlY29uZGFyeS1mZWF0dXJlZC1wb3N0IHtcbiAgLnBvc3QtdHlwZS1wcmVzcy1yZWxlYXNlcyxcbiAgLnBvc3QtdHlwZS1zcG9uc29yZWQge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBoZWlnaHQ6IDQwcHg7IC8vIGluc3VyYW5jZSBhZ2FpbnN0IGZvbnQtZmFtaWx5IHNoZW5hbmlnYW5zXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vbm90IHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1mYW1pbHk6IEBzbWFsbHRleHQ7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHllbGxvdztcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXRvcDogMjBweCBzb2xpZCBAeWVsbG93O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMjBweCBzb2xpZCBAeWVsbG93O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAyMHB4IHNvbGlkIHdoaXRlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG4gIH1cbn1cbi8vIEZpeCBtYXJnaW5zIG9uIHRoZSA6OmJlZm9yZSBpZmYgdGhlcmUgaXMgYSBmZWF0dXJlZCBtZWRpYSwgdXNpbmcgdGhlIHNwYW44IGNsYXMgc3RoYXQgaXMgb25seSB1c2VkIGlmIHRoZXJlIGlzIGEgZmVhdHVyZWQgbWVkaWEuXG5AbWVkaWEgKCBtaW4td2lkdGg6IDc2OXB4ICkge1xuICAuc2Vjb25kYXJ5LWZlYXR1cmVkLXBvc3QgLnNwYW44IHtcbiAgICAucG9zdC10eXBlLXByZXNzLXJlbGVhc2VzLFxuICAgIC5wb3N0LXR5cGUtc3BvbnNvcmVkIHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyLjEyNzY1OTU3JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi5wcmltYXJ5LWZlYXR1cmVkLXBvc3QsXG4uc2Vjb25kYXJ5LWZlYXR1cmVkLXBvc3Qge1xuICAucG9zdC10eXBlLXNwb25zb3JlZCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiU1BPTlNPUkVEXCI7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiBAbGlnaHRibHVlO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGxpZ2h0Ymx1ZTtcbiAgICB9XG4gIH1cbn1cbi5wcmltYXJ5LWZlYXR1cmVkLXBvc3QsXG4uc2Vjb25kYXJ5LWZlYXR1cmVkLXBvc3Qge1xuICAucG9zdC10eXBlLXByZXNzLXJlbGVhc2VzIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJQUkVTUyBSRUxFQVNFXCI7XG4gICAgfVxuICB9XG59XG5cbmg1LnRvcC10YWcge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4vKipcbiAqIFN0eWxlcyBmb3IgdGhlIHNwb25zb3JlZCBjb250ZW50IGRpdiB0aGF0IGNhbiBiZSBwYXN0ZWQgaW50byB0aGUgdG9wIG9mIHN0b3JpZXMuXG4gKlxuICogLnNwb25jb24tc3BvbnNvci1iZWZvcmUtd3JhcHBlciBpcyBmb3IgbGVnYWN5IEhUTUwuXG4gKi9cbi5zcG9uY29uLXNwb25zb3ItYmVmb3JlLXdyYXBwZXIsXG4uc3BvbnNvcmVkLWJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgcGFkZGluZzogMC41ZW0gMC43NWVtIDAuNzVlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UzZTNlMztcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgLmNsZWFyZml4O1xuICBoMyxcbiAgcCB7XG4gICAgZm9udC1mYW1pbHk6IEBzYW5zO1xuICB9XG4gIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG4gIHAge1xuICAgIG1hcmdpbi10b3A6IDEuNWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG4gIC5hbGlnbi1sZWZ0IHtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLnNwb25jb24tc3BvbnNvci1iZWZvcmUtc3BvbnNvcmVkLWJ5IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDZweCAyMHB4IDEycHggMDtcbiAgfVxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4vKipcbiAqIFByZXNzIHJlbGVhc2UgcG9zdHMgbWVudSwgaW5zZXJ0ZWQgaW50byBwb3N0c1xuICogXG4gKiBAc2VlIHJuc19wcmVzc19yZWxlYXNlX21lbnVcbiAqL1xuI3ByZXNzLXJlbGVhc2UtbWVudSB7XG4gIHVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIHBhZGRpbmctdG9wOiAxZW07XG4gICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG4gICAgcGFkZGluZy1sZWZ0OiAyZW07XG4gICAgZm9udC1mYW1pbHk6IEBzYW5zO1xuICB9XG59XG4vLyBTb21lIHNoaW1zIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBib3ggaXMgMTAwJSB0aGUgd2lkdGggb2YgdGhlIHNpZGViYXIsIGV2ZW4gdGhvdWdoIG5vbmUgb2YgaXRzIGNvbnN0aXR1ZW50IGVsZW1lbnRzIGFyZSB3aWRlIGVub3VnaCB0byBmb3JjZSB0aGVpciByZXNwZWN0aXZlIGJsb2NrIGVsZW1lbnRzIG91dCB0byB0aGUgd2lkdGggb2YgdGhlIHNpZGViYXIuXG5AbWVkaWEgKG1heC13aWR0aDogMTA3OXB4KSB7XG4gICNzaWRlYmFyICNwcmVzcy1yZWxlYXNlLW1lbnUud2lkZ2V0IHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwODBweCkge1xuICAjc2lkZWJhciAjcHJlc3MtcmVsZWFzZS1tZW51LndpZGdldCB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vKipcbiAqIEFkZCBhIG1hcmdpbi1ib3R0b20gdG8gdGhlIHByZXNzIHJlbGVhc2UgZmVhdHVyZWQgaW1hZ2UgaW4gdGhlIG1haW4gYm9keSBvZiB0aGUgcG9zdFxuICovXG5AbWVkaWEgKCBtYXgtd2lkdGg6IDc2OHB4ICkge1xuICAjZmVhdC1pbWctcHJlc3MtcmVsZWFzZXMge1xuICAgIG1hcmdpbi1ib3R0b206IEBiYXNlTGluZUhlaWdodCAqIEBiYXNlRm9udFNpemU7IC8vIG1ha2UgdGhlIHBhZGRpbmcgZXF1YWwgdG8gb25lIGxpbmUgb2YgdGV4dFxuICB9XG59XG4iLCIuc2luZ2xlLXJvdW5kdXAge1xuICBhcnRpY2xlIGhlYWRlcixcbiAgLmFydGljbGUtYm90dG9tLFxuICAuZW50cnktY29udGVudCB7XG4gICAgcGFkZGluZzogMCAxNy4wMjEyNzY1OTQlO1xuICB9XG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBoMyB7XG4gICAgLnNlY3Rpb24tdGl0bGU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gICAgLmhlYWRsaW5lLWV4Y2VycHQge1xuICAgIGg0LnRvcC10YWcge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1mYW1pbHk6IEBzYW5zO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgY29sb3I6ICNhYWE7XG4gICAgfVxuICAgIGgzIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIH1cbiAgICAuYXJ0aWNsZS1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgQHRhYmxldERvd24ge1xuICAgIC5hcnRpY2xlLWJvdHRvbSxcbiAgICAuZW50cnktY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAwIEBmbHVpZEdyaWRDb2x1bW5XaWR0aDtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIEBtb2JpbGUge1xuICAgIC5hcnRpY2xlLWJvdHRvbSxcbiAgICAuZW50cnktY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiYm9keS5ub3JtYWwucGFnZSAuZW50cnktY29udGVudCB7XG4gIC5lbnRyeS1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDEwJTtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICB9XG59XG5cbi8vIE1hcmdpbiBiZXR3ZWVuIHRoZSBjb2x1bW4gaGVhZGVyIG9uIHR3by1jb2x1bW4gcG9zdHMgYW5kIHRoZSBwb3N0IGhlYWRsaW5lXG4uY29sdW1ucy1oZWFkZXIgKyBoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAyZW07XG59XG5cbi8vIHJlbW92ZSBncmF5IGJvcmRlciBhcm91bmQgaGVhZGVyIGltYWdlc1xuYm9keS50YXgtY29sdW1ucyAjbWFpbixcbmJvZHkuc2luZ2xlLWZvcm1hdC1zdGFuZGFyZCAjbWFpbiB7XG4gIC5oZXJvLmlzLWltYWdlIGltZyB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG4iLCIuZW50cnktY29udGVudCAudGF4LXRlcm0tbGlzdGluZyB7XG4gIGltZy50aHVtYiB7XG4gICAgbWF4LXdpZHRoOiA4MHB4O1xuICB9XG4gIGgzIHtcblx0Zm9udC1zaXplOiAzMnB4O1xuXHRtYXJnaW4tYm90dG9tOiA4cHg7XG5cdCYud2lkZ2V0dGl0bGUge1xuXHQgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWFhO1xuXHQgIGEge1xuXHQgICAgY29sb3I6ICMzMzM7XG5cdCAgfVxuXHR9XG4gICAgJi5lbnRyeS10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuICBoNS5ieWxpbmUge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgJi5yZWNlbnQge1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBhcnRpY2xlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIH1cbiAgLml0ZW0ge1xuICAgIG1hcmdpbi10b3A6IDM2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyB1c2UgQ1RBIGJ1dHRvbiBzdHlsZXMgZm9yIGdyYXZpdHkgZm9ybXMgYnV0dG9uc1xuLmdmb3JtX2J1dHRvbiB7XG4gIHBhZGRpbmc6IDEycHg7XG4gIC5jdGEtYnV0dG9uO1xufVxuXG4vLyBkYXRlcGlja2VyIGZpeGVzLCB0aGVzZSBtYXkgbmVlZCB0byBiZSBzY29wZWQgbW9yZSBuYXJyb3dseS4uLlxuLnVpLWRhdGVwaWNrZXIge1xuICB3aWR0aDogMjYwcHg7XG4gIHRkIGEge1xuICAgIHdpZHRoOiAzNnB4O1xuICB9XG59XG4udWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICBwYWRkaW5nOiAxMHB4IDIwcHggMjBweDtcbn1cblxuLmdmb3JtX3dyYXBwZXIge1xuICBcbiAgLy8gY2hlY2tib3hlcyBhbmQgbGFiZWxzXG4gIC5nZmllbGRfY2hlY2tib3ggbGkge1xuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIFxuICAvLyBmaXggd2VpcmQgc3BhY2luZyBvZiBmaWVsZCBsYWJlbHMgZm9yIGFkZHJlc3Nlc1xuICBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5maWVsZF9zdWJsYWJlbF9iZWxvdyAuZ2lucHV0X2NvbXBsZXguZ2lucHV0X2NvbnRhaW5lciBsYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuICBcbiAgLy8gdHJ5IHRvIHNldCB0aGUgaGVpZ2h0IG9mIGRyb3Bkb3duIG1lbnVzIHRvIG1hdGNoIHRleHQgZmllbGRzXG4gICYuZ2ZfYnJvd3Nlcl9jaHJvbWUgLmdpbnB1dF9jb21wbGV4IC5naW5wdXRfcmlnaHQgc2VsZWN0LFxuICAmLmdmX2Jyb3dzZXJfY2hyb21lIC5naW5wdXRfY29tcGxleCBzZWxlY3Qge1xuICAgIGhlaWdodDogNDFweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG59XG5cbi8vIG1ha2UgdGhlIHJhZGlvIGJ1dHRvbnMgaW50byByZWFsIGJ1dHRvbnMgb24gZG9uYXRpb24gZm9ybSBcbiNnZm9ybV93cmFwcGVyXzE3IHtcbiAgdWwuZ2ZpZWxkX3JhZGlvIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIGlucHV0IHtcblx0ICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBsYWJlbCB7XG5cdCAgcGFkZGluZzogMTJweCAyNHB4O1xuXHQgIC5jdGEtYnV0dG9uO1xuXHQgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCB7XG5cdCAgYmFja2dyb3VuZC1jb2xvcjogQGdyYXk7XG5cdCAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gc3R5bGVzIHR3ZWFrcyBmb3IgdGhlIHByZXNzIHJlbGVhc2Ugc3VibWlzc2lvbiBmb3JtXG4jZ2Zvcm1fd3JhcHBlcl8yNCB7XG4gIC5nZmllbGRfZGVzY3JpcHRpb24ge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gIH1cbiAgLmdmb3JtX25leHRfYnV0dG9uLFxuICAuZ2Zvcm1fcHJldmlvdXNfYnV0dG9uIHtcbiAgICAuY3RhLWJ1dHRvbjtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gIH1cbiAgLmdmb3JtX3ByZXZpb3VzX2J1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGdyYXk7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICB9XG59IiwiLyoqXG4gKiBTdHlsZXMgZm9yIHNlYXJjaCBmb3JtcyBhbmQgc2VhcmNoIHJlc3VsdHNcbiAqXG4gKiBTdHlsZXMgZm9yIHRoZSBnbG9iYWwgbmF2IHNlYXJjaCBhcmUgaW4gbGVzcy9pbmMvaGVhZGVyLmxlc3NcbiAqL1xuXG4vLyBTZWFyY2ggUmVzdWx0c1xuLmFyY2hpdmUuc2VhcmNoLXJlc3VsdHMge1xuICAuaW5wdXQtYXBwZW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmZvcm0tc2VhcmNoIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgaW5wdXQge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICAgIGJ1dHRvbiB7XG4gICAgICB3aWR0aDogMTAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cbiAgLnNlYXJjaC10ZXJtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JheUxpZ2h0ZXI7XG4gICAgcGFkZGluZzogMXB4IDVweDtcbiAgfVxuICBoMyAucnNzLWxpbmsge1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBncmF5O1xuICB9XG5cbiAgLnN0b3JpZXMge1xuICAgIGFydGljbGUge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgfVxuICB9XG4gIC8vIE5vIHNwYWNpbmcgYWZ0ZXIgcGFyYWdyYXBoLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL0lOTi9MYXJnby9wdWxsLzExNzdcbiAgLmVudHJ5LWNvbnRlbnQgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuZGF0ZS1saW5rIGEsXG4gIC5kYXRlLWxpbmsge1xuICAgIGNvbG9yOiBAZ3JheTtcbiAgfVxufVxuLnNlYXJjaC1yZXN1bHRzICNjb250ZW50IC5mb3JtLXNlYXJjaCB7XG59XG5cbi8qIEdvb2dsZSBDU0UgKi9cbi5nY3NfY29udGFpbmVyIHtcbiAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgdGFibGUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIHRhYmxlLFxuICB0Ym9keSxcbiAgdHIsXG4gIHRkIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxuICAuZ3NjLXNlYXJjaC1ib3gge1xuICAgIG1hcmdpbjogMThweCAwO1xuICAgIC5nc3N0X2EgLmdzY2JfYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDNweDtcbiAgICB9XG4gICAgdGQuZ3NpYl9hIHtcbiAgICAgIHBhZGRpbmc6IDAgNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmdzYy1jb250cm9sLWNzZSB7XG4gICAgLmdzLXJlc3VsdCB7XG4gICAgICAuZ3MtdGl0bGUsXG4gICAgICAuZ3MtdGl0bGUgKiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogU3R5bGVzIGZvciB0aGUgJ2Rvd25sb2FkJyBwb3N0IHR5cGUgcmVnaXN0ZXJlZCBieSBFYXN5IERpZ2l0YWwgRG93bmxvYWRzXG4gKi9cblxuLyoqXG4gKiBTdHlsZXMgZm9yIHNpbmdsZS1kb3dubG9hZC5waHAgYW5kIHBhcnRpYWxzL2NvbnRlbnQtZG93bmxvYWQucGhwXG4gKi9cbi50eXBlLWRvd25sb2FkIHtcbiAgaDEuZW50cnktdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgfVxuXG4gIC5kb3dubG9hZC1jb250ZW50cy10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIH1cblxuICAuZG93bmxvYWQtY29udGVudHMge1xuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICB9XG4gICAgLnNpemUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IEBzYW5zO1xuICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgb3V0bGluZTogMXB4IHNvbGlkIEByZWQ7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIEB0YWJsZXRVcCAge1xuICAgIC5lbnRyeS1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDAgMTcuMDIxMjc2NTk0JTtcbiAgICB9XG5cbiAgICA+IGhlYWRlciB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbjogMjRweCAxNy4wMjEzJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cbn1cblxuLmVkZC1hZGQtdG8tY2FydC5idXR0b24uYmx1ZSB7XG4gIC5jdGEtYnV0dG9uO1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBiYXNpY3MsIGltcG9ydGVkIGZyb20gTGFyZ29cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0IFwidmFyaWFibGVzLmxlc3NcIjtcbkBpbXBvcnQgXCJtaXhpbnMubGVzc1wiO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUk5TIGN1c3RvbSB2YXJpYWJsZXMgdXNlZCBpbiB0aGUgbmF2YmFyIGFuZCBmb290ZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0IFwidmFycy5sZXNzXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBMYXlvdXQgYW5kIHBhZ2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGltcG9ydCBcIm5hdmJhci1jb21tb24ubGVzc1wiO1xuQGltcG9ydCBcIm5hdmJhci1zdGlja3kubGVzc1wiO1xuQGltcG9ydCBcImZvb3Rlci5sZXNzXCI7XG5AaW1wb3J0IFwic2luZ2xlLmxlc3NcIjtcblxuQGltcG9ydCBcIl90eXBvZ3JhcGh5Lmxlc3NcIjtcbkBpbXBvcnQgXCJfd2lkZ2V0cy5sZXNzXCI7XG5AaW1wb3J0IFwiX2hlYWRlci5sZXNzXCI7XG5AaW1wb3J0IFwiX21peGlucy5sZXNzXCI7XG5cbkBpbXBvcnQgXCJzcG9uc29yZWQubGVzc1wiO1xuQGltcG9ydCBcInNsaW5nc2hvdHMubGVzc1wiO1xuQGltcG9ydCBcImNvbHVtbnMubGVzc1wiO1xuQGltcG9ydCBcInRheC5sZXNzXCI7XG5AaW1wb3J0IFwiZm9ybXMubGVzc1wiO1xuQGltcG9ydCBcInNlYXJjaC5sZXNzXCI7XG5AaW1wb3J0IFwiZG93bmxvYWRzLmxlc3NcIjtcblxuXG4vKiBHZW5lcmFsIFN0eWxlcyAqL1xuYm9keSB7XG4gIHAge1xuICAgIGNvbG9yOiAjMTUxNzE5O1xuICB9XG59XG5cbi8vIE1hcmdpbiBhZGp1c3RzIGZvciB0cmFja2luZyBwaXhlbFxuLmdsb2JhbC1uYXYtYmcge1xuICAgIGhlaWdodDogMzhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICAgIG1hcmdpbi10b3A6IC0zMHB4O1xufVxuXG5cbi50ZXh0d2lkZ2V0IHtcbiAgZm9udC1mYW1pbHk6IEBib2R5O1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5idG4ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAmLmJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmx1ZTtcbiAgICBjb2xvcjogQHdoaXRlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmx1ZSwgNSUpO1xuICAgIH1cbiAgfVxufVxuXG4jbWFpbiBpbWcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4jbmF2LWJlbG93LFxuLm1vcmVsaW5rLFxuI25hdi1iZWxvdy5wYWdlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDI0cHggMDtcbiAgZm9udC1mYW1pbHk6IEBzYW5zO1xuICBmb250LXdlaWdodDogMzAwO1xuICBhIHtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBibHVlO1xuICAgIC5ib3JkZXItcmFkaXVzKDRweCk7XG4gICAgJjpob3ZlciB7XG5cdCAgYmFja2dyb3VuZC1jb2xvcjogI2FhYTtcblx0ICBjb2xvcjogI2ZmZjtcblx0ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4jbmF2LWJlbG93LnBhZ2VyIGEsXG4jbmF2LWJlbG93IC5tb3JlbGluayBhIHtcbiAgcGFkZGluZzogMjRweCA0OHB4O1xufVxuXG4ucGFnZS10ZW1wbGF0ZS1wYWdlLWNsZWFuIGhlYWRlci50ZXh0LWFsaWduLWNlbnRlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5ib2R5Lm5vcm1hbC5wYWdlLXRlbXBsYXRlLXBhZ2UtY2xlYW4gYXJ0aWNsZS5wYWdlID4gaGVhZGVyLmVudHJ5LWhlYWRlciB7XG4gIG1hcmdpbjogMjRweCAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PSBOYXQncyBFZGl0cyA9PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIGtlZXBzIGFyY2hpdmUgaGVybyBpbWFnZSBiYWNrZ3JvdW5kcyB3aGl0ZSAqL1xuLmhlcm8gZmlndXJlIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLyogZml4ZXMgZmlndXJlIHRhZyB0byBub3QgbWVzcyB3aXRoIGJsb2cgaGVhZGluZ3MgKi9cblxuLmFyY2hpdmUgLmhlcm8gZmlndXJlLCAuY2F0ZWdvcnktb3BpbmlvbiAuaGVybyBmaWd1cmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC13ZWJraXQtbWFyZ2luLWJlZm9yZTogMCAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtbWFyZ2luLWFmdGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1tYXJnaW4tc3RhcnQ6IDAgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LW1hcmdpbi1lbmQ6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7XG59XG5cbi8qIGZpeGVzIHNtYWxsIGdhbGxlcnkgcHJldmlvdXMgLyBuZXh0IGFycm93cyAqL1xuXG4ubmF2aXMtc2xpZGVzaG93IGEuc2xpY2stcHJldmlvdXM6YmVmb3JlIHtcbiAgICBsZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiA1MHB4IDMwcHggNTBweCAwICFpbXBvcnRhbnQ7XG59XG5cbi5uYXZpcy1zbGlkZXNob3cgYS5zbGljay1uZXh0OmJlZm9yZSB7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci13aWR0aDogNTBweCAwIDUwcHggMzBweCAhaW1wb3J0YW50O1xufVxuXG5cblxuLyogPT09PT09PT09PT09PT09PT0gRW5kIE5hdCdzIEVkaXRzID09PT09PT09PT09PT09PT09PT0gKi9cbiJdfQ== */