/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
#social {
  width: 960px;
  margin: auto;
  margin-top: 16px;
}

@media screen and (max-width: 59.99em) {
  #social {
    display: none;
  }
}

#social .addthis_toolbox {
  margin-left: 300px;
}

#social .addthis_button_twitter_follow_native,
#social .addthis_button_google_plusone {
  margin-left: 8px !important;
}

#social .atc_s {
  margin-left: 12px !important;
}

/********************************************************
* Header
********************************************************/
#header {
  padding-top: 16px;
  position: relative;
}

@media screen and (max-width: 59.99em) {
  #header {
    background-size: cover;
    background-position-y: center;
  }
}

@media screen and (min-width: 60em) {
  #header {
    background-image: none;
    background-size: 0;
    background-image: none !important;
  }
}

#banner {
  height: 86px;
}

@media screen and (max-width: 440px) {
  #banner {
    height: 67px;
  }
}

@media screen and (max-width: 320px) {
  #banner {
    height: 38px;
  }
}

#banner h1 {
  padding: 0;
  margin: 0;
  position: relative;
  top: -8px;
}

@media screen and (min-width: 60em) {
  #banner h1 {
    z-index: -1;
  }
}

#banner picture {
  display: block;
  height: 96px;
}

@media screen and (max-width: 440px) {
  #banner picture {
    height: 77px;
  }
}

@media screen and (max-width: 320px) {
  #banner picture {
    height: 48px;
  }
}

#banner img.logo {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  position: absolute;
  height: auto;
  cursor: pointer;
  width: calc(100% - 110px);
  max-width: 414px;
}

@media screen and (max-width: 440px) {
  #banner img.logo {
    max-width: 331px;
  }
}

@media screen and (max-width: 320px) {
  #banner img.logo {
    max-width: 207px;
  }
}

#banner .appstore-logo, #banner .awards {
  position: absolute;
  top: 2px;
}

@media screen and (max-width: 59.99em) {
  #banner .appstore-logo, #banner .awards {
    display: none;
  }
}

#banner .appstore-logo {
  width: 150px;
  right: 0;
}

#banner .awards {
  width: 67px;
  right: 153px;
}

@keyframes slideRight {
  0% {
    transform: translateX(-100%);
    display: block;
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes slideLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

.slicknav_menu {
  display: none;
  position: relative;
  background: transparent !important;
  padding: 0 !important;
}

@media (pointer: coarse) and (hover: none) {
  .slicknav_menu {
    display: block;
    position: inherit;
  }
}

@media screen and (max-width: 48.615em) {
  .slicknav_menu {
    display: block;
    position: inherit;
  }
}

.slicknav_menu .slicknav_btn {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  left: 0;
  padding: 0.5em;
  margin: 0 0 0 10px;
  font-size: 1rem !important;
}

.slicknav_menu .slicknav_btn .slicknav_menutxt {
  display: none;
}

.slicknav_menu .slicknav_btn .slicknav_icon {
  margin: 0;
}

.slicknav_menu .slicknav_nav {
  display: none;
  font-size: 1em !important;
  width: auto;
  float: left;
  position: absolute;
  z-index: 999999;
  animation-timing-function: ease-in-out;
  animation-duration: 300ms;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}

.slicknav_menu .slicknav_nav.slicknav_initialising {
  display: none !important;
}

.slicknav_menu .slicknav_nav.slicknav_hiding {
  display: block;
  animation-name: slideLeft;
}

.slicknav_menu .slicknav_nav.slicknav_showing {
  animation-name: slideRight;
  display: block;
}

.slicknav_menu .slicknav_nav.slicknav_shown {
  display: block;
}

.slicknav_menu .slicknav_nav.slicknav_hidden {
  display: none !important;
}

.slicknav_menu .slicknav_nav ul {
  overflow: hidden;
}

.slicknav_menu .slicknav_nav ul.slicknav_hiding, .slicknav_menu .slicknav_nav ul.slicknav_hidden {
  max-height: 0;
  transition: max-height 300ms cubic-bezier(0, 1, 0, 1);
}

.slicknav_menu .slicknav_nav ul.slicknav_showing, .slicknav_menu .slicknav_nav ul.slicknav_shown {
  max-height: 9999px;
  transition: max-height 300ms cubic-bezier(1, 0, 1, 0);
}

.slicknav_menu .slicknav_nav li a {
  position: relative;
  z-index: 1;
  outline: none !important;
}

.slicknav_menu .slicknav_nav li a:hover {
  border-radius: inherit;
  background: inherit;
  color: inherit;
  outline: none !important;
}

.slicknav_menu .slicknav_nav li > a {
  padding-top: 10px;
  padding-bottom: 10px;
}

.slicknav_menu .slicknav_nav > ul {
  z-index: 1;
}

.slicknav_menu .slicknav_nav > li > a {
  padding-right: 40px;
}

.slicknav_menu .slicknav_nav:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  background-color: #222;
  opacity: 0.95;
  border-radius: 0 10px 0 0;
}

.slicknav_menu .slicknav_nav a.basket-cta span {
  display: block;
}

.slicknav_menu .slicknav_nav a.basket-cta:after {
  display: none;
}

.nav {
  margin-right: 2px;
  /* fix for megamenu overspilling 2px */
}

@media (pointer: coarse) and (hover: none) {
  .nav {
    margin-right: 0;
  }
}

@media screen and (max-width: 48.615em) {
  .nav {
    margin-right: 0;
  }
}

.nav li .icon {
  position: absolute;
  right: 0;
  z-index: 2;
}

.nav li.android,
.nav li.apple {
  position: relative;
}

.nav li.android .icon {
  background: url("/images/graphics/android_logo_icon.png") top right no-repeat !important;
  width: 34px;
  height: 30px;
}

.nav li.apple .icon {
  background: url("/images/graphics/apple_logo_icon.png") top right no-repeat !important;
  width: 25px;
  height: 30px;
  margin-right: 3px;
}

.nav > .login-cta-container {
  display: none;
}

@media (pointer: coarse) and (hover: none) {
  .nav > .login-cta-container {
    display: block;
  }
}

@media screen and (max-width: 48.615em) {
  .nav > .login-cta-container {
    display: block;
  }
}

body.accounts-disabled .nav > .login-cta-container {
  display: none !important;
}

.nav > .login-cta-container a {
  position: relative;
  display: block;
}

.nav > .login-cta-container a span {
  display: none;
}

.nav > .login-cta-container a:after {
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 30px;
  background-color: #222222;
  border-radius: 4px;
  content: '';
  position: absolute;
  right: 10px;
  background-image: url("/images/graphics/user.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
}

@media screen and (min-width: 60em) {
  .nav > .login-cta-container a:after {
    right: auto;
    left: 54px;
  }
}

.nav .basket-cta-container, .nav .basket-cta {
  display: none;
}

body.signed-in .nav .basket-cta-container, .nav .basket-cta {
  display: block;
}

body.accounts-disabled .nav .basket-cta-container, .nav .basket-cta {
  display: none !important;
}

.nav a.basket-cta {
  position: relative;
  display: block;
}

.nav a.basket-cta span {
  display: none;
}

.nav a.basket-cta:after {
  content: '';
  position: absolute;
  width: 26px;
  height: 20px;
  background-repeat: no-repeat;
  background-size: 26px 20px;
  background-position: center center;
  background-image: url("/images/graphics/shopping_cart.png");
}

.nav #menu a.basket-cta {
  padding: 20px 29px 20px 29px !important;
}

.nav #menu a.basket-cta:after {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}

.nav #menu a.basket-cta:hover:after {
  background-image: url("/images/graphics/shopping_cart_inverted.png");
}

.nav #menu li.mega-hover a.basket-cta:after {
  background-image: url("/images/graphics/shopping_cart_inverted.png");
}

.nav > a.basket-cta {
  display: none;
}

@media (pointer: coarse) and (hover: none) {
  .nav > a.basket-cta {
    display: block;
  }
}

@media screen and (max-width: 48.615em) {
  .nav > a.basket-cta {
    display: block;
  }
}

@media screen and (max-width: 23.125em) {
  .nav > a.basket-cta {
    display: none !important;
  }
}

.nav > a.basket-cta:after {
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 30px;
  background-color: #222222;
  border-radius: 4px;
  right: 54px;
}

@media screen and (min-width: 60em) {
  .nav > a.basket-cta:after {
    right: auto;
    left: 108px;
  }
}

@media (pointer: coarse) and (hover: none) {
  #menu {
    display: none;
  }
}

@media screen and (max-width: 48.615em) {
  #menu {
    display: none;
  }
}

#menu .menubar-icon {
  margin-left: 8px !important;
  padding: 0 !important;
  width: 32px;
  height: 32px;
  position: relative;
  top: 4px;
}

@media screen and (max-width: 59.615em) {
  #menu .menubar-icon.social {
    display: none;
  }
}

/********************************************************
* Sub Header
********************************************************/
#sub-header {
  padding: 12px;
  background-color: #660000;
  color: white;
}

/********************************************************
* Footer
********************************************************/
#footer {
  background: #2f2f2f;
  padding-top: 8px;
  padding-bottom: 8px;
  font-size: 10pt;
}

@media screen and (max-width: 59.99em) {
  #footer {
    display: none;
  }
}

#footer a {
  color: white;
  text-decoration: none;
}

#footer .links ul {
  text-align: center;
  padding-left: 0;
  margin: 4px 0;
}

#footer .links li {
  display: inline;
  padding-left: 8px;
  padding-right: 8px;
}

#footer .links li a:hover {
  text-decoration: underline;
}

#footer ul#social-footer {
  display: inline-block;
  padding: 0;
  margin-left: 50%;
  transform: translateX(-50%);
}

@media (pointer: coarse) and (hover: none) {
  #footer ul#social-footer {
    display: none;
  }
}

@media screen and (max-width: 48.615em) {
  #footer ul#social-footer {
    display: none;
  }
}

#footer ul#social-footer li {
  float: left;
  margin: 0;
  padding: 0;
  font-size: 13px;
  font-weight: bold;
  border: none;
  list-style: none;
}

#footer ul#social-footer li a {
  float: left;
  display: block;
  color: #fff;
  text-shadow: 1px 1px 1px #000;
  text-decoration: none;
}

#footer ul#social-footer .menubar-icon {
  margin-left: 8px !important;
  padding: 0 !important;
  width: 32px;
  height: 32px;
  position: relative;
  top: 4px;
}

@media screen and (max-width: 59.615em) {
  #footer ul#social-footer .menubar-icon.social {
    display: none;
  }
}

#footer ul#social-footer .facebook {
  background: url("/images/graphics/facebook-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .pinterest {
  background: url("/images/graphics/pinterest-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .googleplus {
  background: url("/images/graphics/googleplus-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .twitter {
  background: url("/images/graphics/twitter-icon.png") top right no-repeat !important;
}

#footer ul#social-footer .instagram {
  background: url("/images/graphics/instagram-icon.png") top right no-repeat !important;
}

#like_on_facebook {
  margin: 0;
  padding-bottom: 16px;
}

#like_on_facebook div.text {
  display: inline;
}

/********************************************************
* Footer section highlighting
********************************************************/
html.section-terms #footer li.terms a,
html.section-linking #footer li.linking a,
html.section-apps-menu #footer li.apps-menu a,
html.section-links #footer li.links a,
html.section-footpath-issues #footer li.footpath-issues a,
html.section-direction-correction #footer li.direction-correction a,
html.section-cookie-policy #footer li.cookie-policy a,
html.section-contact-us #footer li.contact-us a,
html.section-mobile-redirect #footer li.mobile-redirect a {
  color: #00d4ff;
  font-style: italic;
}

/********************************************************
* Nav section highlighting
********************************************************/
html.section-home ul.mega-menu li.nav-sec-home a,
html.section-all-walks ul.mega-menu li.nav-sec-all-walks a,
html.section-locations ul.mega-menu li.nav-sec-locations a,
html.section-walk-types ul.mega-menu li.nav-sec-walk-types a,
html.section-apps ul.mega-menu li.nav-sec-apps a,
html.section-buy ul.mega-menu li.nav-sec- a,
html.section-faq ul.mega-menu li.nav-sec-faq a,
html.section-blog ul.mega-menu li.nav-sec-blog a {
  background-position: 100% -40px;
  color: #000;
  text-shadow: none;
}

/********************************************************
* Print mods
********************************************************/
@media print {
  body, #content {
    background: #fff !important;
  }
  #footer, .no-print, .nav, #social, #cookieTerms, #header, #sub-header {
    display: none !important;
  }
  a {
    text-decoration: none;
    color: black;
  }
  .print-only {
    display: block !important;
  }
  .print-only-inline {
    display: inline !important;
  }
  #banner {
    height: inherit;
    float: right;
    position: relative;
    top: -6px;
  }
  #banner img.logo {
    margin-left: 0;
    height: 50px;
  }
  #wrapper, #content {
    padding: 0;
  }
}

#login-popup {
  display: none;
}

body.js-loaded #login-popup {
  display: block;
}

#login-popup #firebaseui-auth-container.loading {
  position: relative;
  padding: 5rem 10rem;
}

#login-popup #firebaseui-auth-container.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/********************************************************
* Overall page
********************************************************/
body {
  margin: 0;
  padding: 0;
  font-family: Arial, Helvetica, Helv, sans-serif;
  background-attachment: fixed;
  background-color: #ccc;
}

@media screen and (min-width: 60em) {
  body {
    background-size: cover;
    background-position-y: center;
  }
}

@media screen and (max-width: 59.99em) {
  body {
    background-image: none;
    background-size: 0;
  }
}

#wrapper {
  margin: 0;
  position: relative;
}

@media screen and (max-width: 59.99em) {
  #wrapper {
    padding-left: 0;
    padding-right: 0;
  }
}

#page {
  width: 960px;
  margin: auto;
}

@media screen and (max-width: 59.99em) {
  #page {
    margin: 0;
  }
}

#page-inner {
  width: 960px;
  margin: auto;
}

@media screen and (max-width: 59.99em) {
  #page, #page-inner {
    width: 100%;
  }
}

#content {
  padding: 16px;
  background: honeydew;
}

@media screen and (max-width: 59.99em) {
  #content {
    padding: 8px;
    min-height: 100vh;
  }
}

@media screen and (min-width: 60em) {
  #content {
    background: rgba(240, 255, 240, 0.8);
  }
}

a {
  color: #2f2f2f;
}

h1, h2, h3, h4, h5 {
  font-family: Georgia;
  font-weight: normal;
}

h1 {
  font-variant: small-caps;
  margin-top: 8px;
  margin-bottom: 8px;
}

@media screen and (max-width: 46.24em) {
  h1:not(.non-responsive) {
    font-size: 1.5em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h1:not(.non-responsive) {
    font-size: 1.3em !important;
  }
}

h2 {
  font-variant: small-caps;
  border-bottom: 1px solid #aaa;
  margin-top: 24px;
  margin-bottom: 8px;
}

@media screen and (max-width: 46.24em) {
  h2:not(.non-responsive) {
    font-size: 1.2em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h2:not(.non-responsive) {
    font-size: 1em !important;
  }
}

h3 {
  margin-top: 16px;
}

@media screen and (max-width: 46.24em) {
  h3:not(.non-responsive) {
    font-size: 1em !important;
  }
}

@media screen and (max-width: 19.99em) {
  h3:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

@media screen and (max-width: 37.49em) {
  p:not(.non-responsive), a:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

@media screen and (max-width: 37.49em) {
  :not(li) > ul:not(.non-responsive), ol > li:not(.non-responsive) {
    font-size: 0.9em !important;
  }
}

h3, h4, h5 {
  text-decoration: underline;
  /* for when supported... */
  -webkit-text-decoration-color: #aaa;
  -webkit-text-decoration-skip: true;
  margin-bottom: 4px;
}

h1 + p, h2 + p, h3 + p, h4 + p, h5 + p {
  margin-top: 0;
}

@media (pointer: coarse) and (hover: none) {
  select:not(.non-responsive) {
    padding: 8px;
  }
}

@media screen and (max-width: 48.615em) {
  select:not(.non-responsive) {
    padding: 8px;
  }
}

#content ul, #content ol {
  margin-top: 8px;
  margin-bottom: 8px;
}

#content ul, #content ol {
  padding-left: 8px;
  margin-left: 8px;
}

.clear-right {
  clear: right;
}

.clear-left {
  clear: left;
}

.clear {
  clear: both;
}

.hidden {
  display: none !important;
}

/* Attach to any "slow loading" items */
.loader {
  position: relative;
}

.loader::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.loader-inverted {
  position: relative;
}

.loader-inverted::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.loader-small {
  position: relative;
}

.loader-small::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -14px;
  margin-left: -14px;
  width: 24px;
  height: 24px;
  border-radius: 24px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.loader-inverted-small {
  position: relative;
}

.loader-inverted-small::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -14px;
  margin-left: -14px;
  width: 24px;
  height: 24px;
  border-radius: 24px;
  border: 2px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@media screen {
  .print-only {
    display: none !important;
  }
  .print-only-inline {
    display: none !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="button"]:not(.non-responsive) {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    color: #333 !important;
    background: #eee;
    border-color: #ddd;
    border-width: 1px;
    border-style: solid;
    border-radius: 5px;
    margin: .5em 0;
    padding: .7em 1em;
    display: inline-block;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    text-align: center;
    text-overflow: ellipsis;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
  }
  [data-role="button"]:not(.non-responsive):hover, [data-role="button"]:not(.non-responsive):active {
    background: #e8f0ff;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] {
    padding-left: 32px;
    padding-right: 8px;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] i {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
  }
  [data-role="button"]:not(.non-responsive).green {
    background: linear-gradient(to bottom, #8ddda0 0%, #3ddb8c 50%, #8ddda0 100%);
    border-color: #2b6b37;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  }
  [data-role="button"]:not(.non-responsive).green:hover, [data-role="button"]:not(.non-responsive).green:active {
    background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
  }
  [data-role="listview"]:not(.non-responsive) {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 0 !important;
    list-style: none;
  }
  [data-role="listview"]:not(.non-responsive), [data-role="listview"]:not(.non-responsive) a {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive):before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: 1;
  }
  [data-role="listview"]:not(.non-responsive):after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: 1;
  }
  [data-role="listview"]:not(.non-responsive) > * {
    position: relative;
    z-index: 2;
  }
  [data-role="listview"]:not(.non-responsive) a, [data-role="listview"]:not(.non-responsive) strong {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive) h2 {
    border: none;
    margin: 0;
  }
  [data-role="listview"]:not(.non-responsive) > li {
    display: block;
    position: relative;
    overflow: visible;
    margin: 0;
    padding: 8px 16px 8px 8px !important;
    list-style: none;
    font-weight: bold;
    border-color: #ddd;
    border-style: solid;
    border-width: 1px 1px 0 1px;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="listview"]:not(.non-responsive) > li a {
    margin: 0;
    text-align: left;
    text-decoration: none;
    overflow: hidden;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    content: '>';
    position: absolute;
    right: 4px;
    font-size: 16px !important;
  }
}

@media screen and (pointer: coarse) and (hover: none) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    font-size: 14px !important;
  }
}

@media (pointer: coarse) and (hover: none) {
  :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
    padding: 8px 0;
    display: inline-block;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="button"]:not(.non-responsive) {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
    color: #333 !important;
    background: #eee;
    border-color: #ddd;
    border-width: 1px;
    border-style: solid;
    border-radius: 5px;
    margin: .5em 0;
    padding: .7em 1em;
    display: inline-block;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    text-align: center;
    text-overflow: ellipsis;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
  }
  [data-role="button"]:not(.non-responsive):hover, [data-role="button"]:not(.non-responsive):active {
    background: #e8f0ff;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] {
    padding-left: 32px;
    padding-right: 8px;
  }
  [data-role="button"]:not(.non-responsive)[data-icon] i {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
  }
  [data-role="button"]:not(.non-responsive).green {
    background: linear-gradient(to bottom, #8ddda0 0%, #3ddb8c 50%, #8ddda0 100%);
    border-color: #2b6b37;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  }
  [data-role="button"]:not(.non-responsive).green:hover, [data-role="button"]:not(.non-responsive).green:active {
    background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
  }
  [data-role="listview"]:not(.non-responsive) {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 0 !important;
    list-style: none;
  }
  [data-role="listview"]:not(.non-responsive), [data-role="listview"]:not(.non-responsive) a {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive):before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: 1;
  }
  [data-role="listview"]:not(.non-responsive):after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: 1;
  }
  [data-role="listview"]:not(.non-responsive) > * {
    position: relative;
    z-index: 2;
  }
  [data-role="listview"]:not(.non-responsive) a, [data-role="listview"]:not(.non-responsive) strong {
    color: white;
  }
  [data-role="listview"]:not(.non-responsive) h2 {
    border: none;
    margin: 0;
  }
  [data-role="listview"]:not(.non-responsive) > li {
    display: block;
    position: relative;
    overflow: visible;
    margin: 0;
    padding: 8px 16px 8px 8px !important;
    list-style: none;
    font-weight: bold;
    border-color: #ddd;
    border-style: solid;
    border-width: 1px 1px 0 1px;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    margin: 0;
    text-align: left;
    text-decoration: none;
    overflow: hidden;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    content: '>';
    position: absolute;
    right: 4px;
    font-size: 16px !important;
  }
}

@media screen and (max-width: 48.615em) and (max-width: 37.49em) {
  [data-role="listview"]:not(.non-responsive) > li a:after {
    font-size: 14px !important;
  }
}

@media screen and (max-width: 48.615em) {
  :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
    padding: 8px 0;
    display: inline-block;
  }
}

/********************************************************
* Device-specific mods
********************************************************/
body.os-android .ios:not(.os-always),
body.os-ios .android:not(.os-always),
body.os-android .not-android:not(.os-always),
body.os-ios .not-ios:not(.os-always),
body.os-ios .not-ios-or-android:not(.os-always),
body.os-android .not-ios-or-android:not(.os-always) {
  display: none !important;
}

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAibWFpbi5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIi4uL3Njc3MvbWFpbi5zY3NzIiwKCQkiLi4vc2Nzcy9AaW5jbHVkZS9fY29tbW9uLnNjc3MiLAoJCSIuLi9zY3NzL0BpbmNsdWRlL192YXJpYWJsZXMuc2NzcyIsCgkJIi4uL3Njc3MvQGluY2x1ZGUvX2dlbmVyYWxfbWl4aW5zLnNjc3MiLAoJCSIuLi9zY3NzL0BpbmNsdWRlL19tZWRpYS5zY3NzIiwKCQkiLi4vc2Nzcy9AaW5jbHVkZS9fbXEuc2NzcyIsCgkJIi4uL3Njc3MvQGluY2x1ZGUvX3RvdWNoLnNjc3MiLAoJCSIuLi9zY3NzL0BtYWluL19zb2NpYWwuc2NzcyIsCgkJIi4uL3Njc3MvQGluY2x1ZGUvX2NvbW1vbi5zY3NzIiwKCQkiLi4vc2Nzcy9AbWFpbi9faGVhZGVyLnNjc3MiLAoJCSIuLi9zY3NzL0BtYWluL19mb290ZXIuc2NzcyIsCgkJIi4uL3Njc3MvQG1haW4vX3NlY3Rpb25faGlnaGxpZ2h0aW5nLnNjc3MiLAoJCSIuLi9zY3NzL0BtYWluL19wcmludC5zY3NzIiwKCQkiLi4vc2Nzcy9AbWFpbi9fbG9naW5fcG9wdXAuc2NzcyIsCgkJIi4uL3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19sb2FkZXIuc2NzcyIsCgkJIi4uL3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19sb2FkZXIuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8vIEltcG9ydCBjb21wb25lbnRzXG5AaW1wb3J0IFwiQGluY2x1ZGUvY29tbW9uXCI7XG5AaW1wb3J0IFwiQG1haW4vc29jaWFsXCI7XG5AaW1wb3J0IFwiQG1haW4vaGVhZGVyXCI7XG5AaW1wb3J0IFwiQG1haW4vZm9vdGVyXCI7XG5AaW1wb3J0IFwiQG1haW4vc2VjdGlvbl9oaWdobGlnaHRpbmdcIjtcbkBpbXBvcnQgXCJAbWFpbi9wcmludFwiO1xuQGltcG9ydCBcIkBtYWluL2xvZ2luX3BvcHVwXCI7XG5AaW1wb3J0IFwiLi4vQGluY2x1ZGUvY29tcG9uZW50L2xvYWRlclwiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogT3ZlcmFsbCBwYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmJvZHkge1xuICBtYXJnaW46MDtcbiAgcGFkZGluZzowO1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgSGVsdiwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiBcbiAgLy8gRm9yIHNjcmVlbnMgd2lkZXIgdGhhbiBwYWdlIGNvbHVtbiwgZGlzcGxheSBmdWxsIHBhZ2UgQkcgaW1hZ2VcbiAgLy8gSW5pdGlhbGx5IGRpc3BsYXkgbG93IHJlcyBpbWFnZSB3aGljaCBpcyByZXBsYWNlZCBieSBoaWdoLXJlcyBpbWFnZSBpbiBtYWluLmpzIG9uY2UgY29udGVudCBoYXMgbG9hZGVkXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiBjZW50ZXI7XG4gIH1cblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDA7XG4gIH1cbn1cblxuXG5cbiN3cmFwcGVyIHtcbiAgbWFyZ2luOjA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuI3BhZ2Uge1xuICB3aWR0aDogJHBhZ2Utd2lkdGg7XG4gIG1hcmdpbjogYXV0bztcblxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbiNwYWdlLWlubmVye1xuICB3aWR0aDogJHBhZ2Utd2lkdGg7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAjcGFnZSwgI3BhZ2UtaW5uZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cblxuI2NvbnRlbnQge1xuICBwYWRkaW5nOiAxNnB4O1xuICBiYWNrZ3JvdW5kOiByZ2IoMjQwLDI1NSwyNDApO1xuXG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gIH1cbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDAsMjU1LDI0MCwwLjgpO1xuICB9XG59XG5cbmEge1xuICBjb2xvcjogIzJmMmYyZjtcbn1cblxuaDEsaDIsaDMsaDQsaDUge1xuICBmb250LWZhbWlseTogR2VvcmdpYTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDEge1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAmOm5vdCgubm9uLXJlc3BvbnNpdmUpe1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldCkge1xuICAgICAgZm9udC1zaXplOiAxLjVlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zZW0gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuaDIge1xuICBmb250LXZhcmlhbnQ6IHNtYWxsLWNhcHM7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWFhO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICY6bm90KC5ub24tcmVzcG9uc2l2ZSkge1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldCkge1xuICAgICAgZm9udC1zaXplOiAxLjJlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBtb2JpbGUpIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbmgzIHtcbiAgbWFyZ2luLXRvcDogMTZweDtcbiAgJjpub3QoLm5vbi1yZXNwb25zaXZlKXtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IG1vYmlsZSkge1xuICAgICAgZm9udC1zaXplOiAwLjllbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5wLGF7XG4gICY6bm90KC5ub24tcmVzcG9uc2l2ZSkge1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICBmb250LXNpemU6IDAuOWVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbjpub3QobGkpID4gdWwsb2wgPiBsaXtcbiAgJjpub3QoLm5vbi1yZXNwb25zaXZlKSB7XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45ZW0gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuaDMsIGg0LCBoNSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiBmb3Igd2hlbiBzdXBwb3J0ZWQuLi4gKi9cbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tY29sb3I6ICNhYWE7XG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IHRydWU7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuaDErcCxoMitwLGgzK3AsaDQrcCxoNStwIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLy8gTW9yZSBwYWRkaW5nIGZvciB0b3VjaCBpbnB1dFxuc2VsZWN0e1xuICAmOm5vdCgubm9uLXJlc3BvbnNpdmUpIHtcbiAgICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tZGV2aWNlcyB7XG4gICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuICB9XG59XG5cblxuI2NvbnRlbnQgdWwsI2NvbnRlbnQgb2wge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuI2NvbnRlbnQgdWwsI2NvbnRlbnQgb2wge1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLmNsZWFyLXJpZ2h0IHtcbiAgY2xlYXI6IHJpZ2h0O1xufVxuXG4uY2xlYXItbGVmdCB7XG4gIGNsZWFyOiBsZWZ0O1xufVxuXG4uY2xlYXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmhpZGRlbntcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBBdHRhY2ggdG8gYW55IFwic2xvdyBsb2FkaW5nXCIgaXRlbXMgKi9cbi5sb2FkZXIge1xuICBAaW5jbHVkZSBsb2FkZXI7XG59XG5cbi5sb2FkZXItaW52ZXJ0ZWQge1xuICBAaW5jbHVkZSBsb2FkZXItaW52ZXJ0ZWQ7XG59XG5cbiRsb2FkZXItc21hbGwtc2l6ZTogMjRweDtcbiRsb2FkZXItc21hbGwtdGhpY2tuZXNzOiAycHg7XG5cbi5sb2FkZXItc21hbGwge1xuICBAaW5jbHVkZSBsb2FkZXIoJGxvYWRlci1zbWFsbC1zaXplLCAkbG9hZGVyLXNtYWxsLXRoaWNrbmVzcyk7XG59XG5cbi5sb2FkZXItaW52ZXJ0ZWQtc21hbGwge1xuICBAaW5jbHVkZSBsb2FkZXItaW52ZXJ0ZWQoJGxvYWRlci1zbWFsbC1zaXplLCAkbG9hZGVyLXNtYWxsLXRoaWNrbmVzcyk7XG59XG5cblxuQG1lZGlhIHNjcmVlbiB7XG4gIC5wcmludC1vbmx5IHtkaXNwbGF5Om5vbmUgIWltcG9ydGFudDt9XG4gIC5wcmludC1vbmx5LWlubGluZSB7ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fVxufVxuXG4vLyBUb3VjaCBkZXZpY2VzXG5AaW5jbHVkZSB0b3VjaC1zY3JlZW4tZGV2aWNlcyB7XG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1zdHlsZXM7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBEZXZpY2Utc3BlY2lmaWMgbW9kc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5ib2R5Lm9zLWFuZHJvaWQgLmlvczpub3QoLm9zLWFsd2F5cyksXG5ib2R5Lm9zLWlvcyAuYW5kcm9pZDpub3QoLm9zLWFsd2F5cyksXG5ib2R5Lm9zLWFuZHJvaWQgLm5vdC1hbmRyb2lkOm5vdCgub3MtYWx3YXlzKSxcbmJvZHkub3MtaW9zIC5ub3QtaW9zOm5vdCgub3MtYWx3YXlzKSxcbmJvZHkub3MtaW9zIC5ub3QtaW9zLW9yLWFuZHJvaWQ6bm90KC5vcy1hbHdheXMpLFxuYm9keS5vcy1hbmRyb2lkIC5ub3QtaW9zLW9yLWFuZHJvaWQ6bm90KC5vcy1hbHdheXMpe1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuIiwKCQkiLy8gQ29tbW9uIHN0eWxlc1xyXG5cclxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xyXG5AaW1wb3J0IFwiZ2VuZXJhbF9taXhpbnNcIjtcclxuQGltcG9ydCBcIm1lZGlhXCI7XHJcbkBpbXBvcnQgXCJ0b3VjaFwiO1xyXG5cclxuIiwKCQkiLy8gVmFyaWFibGVzXG5cbiRwYWdlLXdpZHRoOiA5NjBweDtcbiRyZXNwb25zaXZlLW1lbnU6IDc3OHB4O1xuXG4kZ3JleTogIzJmMmYyZjtcbiRkYXJrLWdyZWVuOiAjMTMxO1xuJGdyZWVuOiAjMjg1ZDFlO1xuJGxpZ2h0LWdyZWVuOiByZ2JhKDEyNCwgMTk3LCAxNDksIDAuNjUpO1xuJHJlZDogIzVjMWUxZTtcbiRkYXJrLXJlZDogIzY2MDAwMDtcblxuLy8gQm94IGdyYWRpZW50c1xuJGJveC1HcmFkLUhlaWdodDogMThweDtcblxuJGJveC1CRy1HcmV5OiAkZ3JleTtcbiRib3gtR3JhZC1VcHBlci1Ub3AtR3JleTogIzcxNzE3MTtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JleTogIzQyNDE0MTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtR3JleTogIzQwNDA0MDtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JleTogIzJmMmYyZjtcblxuJGJveC1CRy1HcmVlbjogJGdyZWVuO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1HcmVlbjogIzQ2OTkzNjtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JlZW46ICMzMDcwMjU7XG4kYm94LUdyYWQtTG93ZXItVG9wLUdyZWVuOiAjMzA3MjI1O1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmVlbjogIzI4NWQxZTtcblxuJGJveC1CRy1EYXJrLUdyZWVuOiAkZGFyay1ncmVlbjtcbiRib3gtR3JhZC1VcHBlci1Ub3AtRGFyay1HcmVlbjogIzJlODAyZTtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tRGFyay1HcmVlbjogIzE3NDUxNztcbiRib3gtR3JhZC1Mb3dlci1Ub3AtRGFyay1HcmVlbjogIzE4NDcxOTtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tRGFyay1HcmVlbjogIzExMzMxMTtcblxuJGJveC1CRy1SZWQ6ICRyZWQ7XG4kYm94LUdyYWQtVXBwZXItVG9wLVJlZDogI2E4M2IzYjtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tUmVkOiAjNmUyNTI1O1xuJGJveC1HcmFkLUxvd2VyLVRvcC1SZWQ6ICM3MDI1MjU7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLVJlZDogIzVjMWUxZTtcblxuJG1xLWJyZWFrcG9pbnQtbW9iaWxlOiAzMjBweDtcbiRtcS1icmVha3BvaW50LXRhYmxldDdpbmNoOiA2MDBweDtcbiRtcS1icmVha3BvaW50LXRhYmxldDogNzQwcHg7XG4kbXEtYnJlYWtwb2ludC1kZXNrdG9wOiA5ODBweDtcbiRtcS1icmVha3BvaW50LXdpZGU6IDEzMDBweDtcbiRtcS1icmVha3BvaW50LWRlc2t0b3BBZDogODEwcHg7XG4kbXEtYnJlYWtwb2ludC1tb2JpbGVMYW5kc2NhcGU6IDQ4MHB4O1xuJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbzogNDQwcHg7XG4kbXEtYnJlYWtwb2ludC1zbWFsbExvZ286IDMyMHB4O1xuJG1xLWJyZWFrcG9pbnQtaGVhZGVyU29jaWFsSWNvbnM6IDk1NHB4O1xuJG1xLWJyZWFrcG9pbnQtcGFnZTogJHBhZ2Utd2lkdGg7XG4kbXEtYnJlYWtwb2ludC1yZXNwb25zaXZlTWVudTogJHJlc3BvbnNpdmUtbWVudTtcblxuXG4vLyBCcmVha3BvaW50c1xuJG1xLWJyZWFrcG9pbnRzOiAoXG4gICAgICAgIG1vYmlsZTogICRtcS1icmVha3BvaW50LW1vYmlsZSxcbiAgICAgICAgdGFibGV0N2luY2g6ICAkbXEtYnJlYWtwb2ludC10YWJsZXQ3aW5jaCxcbiAgICAgICAgdGFibGV0OiAgJG1xLWJyZWFrcG9pbnQtdGFibGV0LFxuICAgICAgICBkZXNrdG9wOiAkbXEtYnJlYWtwb2ludC1kZXNrdG9wLFxuICAgICAgICB3aWRlOiAkbXEtYnJlYWtwb2ludC13aWRlLFxuXG4gIC8vIFR3ZWFrcG9pbnRzXG4gICAgICAgIGRlc2t0b3BBZDogJG1xLWJyZWFrcG9pbnQtZGVza3RvcEFkLFxuICAgICAgICBtb2JpbGVMYW5kc2NhcGU6ICRtcS1icmVha3BvaW50LW1vYmlsZUxhbmRzY2FwZSxcbiAgICAgICAgc21hbGxMb2dvOiAkbXEtYnJlYWtwb2ludC1zbWFsbExvZ28sXG4gICAgICAgIHBhZ2U6ICRtcS1icmVha3BvaW50LXBhZ2UsXG4gICAgICAgIHJlc3BvbnNpdmVNZW51OiAkbXEtYnJlYWtwb2ludC1yZXNwb25zaXZlTWVudSxcbiAgICAgICAgaGVhZGVyU29jaWFsSWNvbnM6ICRtcS1icmVha3BvaW50LWhlYWRlclNvY2lhbEljb25zXG4pO1xuXG5cbi8vIFRvIGVuYWJsZSBzdXBwb3J0IGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IEBtZWRpYSBxdWVyaWVzLFxuLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSkgc2V0ICRtcS1yZXNwb25zaXZlIHRvIGZhbHNlXG4vLyBDcmVhdGUgYSBzZXBhcmF0ZSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byB0aGVzZSBicm93c2Vycyxcbi8vIG1lYW5pbmcgQG1lZGlhIHF1ZXJpZXMgd2lsbCBiZSByYXN0ZXJpemVkLCByZWx5aW5nIG9uIHRoZSBjYXNjYWRlIGl0c2VsZlxuJG1xLXJlc3BvbnNpdmU6IHRydWU7XG5cbi8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXG4vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xuLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLyRtcS1zaG93LWJyZWFrcG9pbnRzOiAobW9iaWxlLCBtb2JpbGVMYW5kc2NhcGUsIHRhYmxldCwgZGVza3RvcCwgd2lkZSk7XG4iLAoJCSJAbWl4aW4gaVdhbGtNb2JpbGVHcmFkaWVudHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYzlkY2Y0IDAlLCM4MmI1ZWMgMjIlLCMyOThhZTMgNDYlLCMzZWMxZjcgNzAlLCMzZWMxZjcgMTAwJSk7XHJcbn1cclxuXHJcbkBtaXhpbiBjZW50cmVZe1xyXG4gIHRvcDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuQG1peGluIGNlbnRyZVh7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxufVxyXG5cclxuQG1peGluIGNlbnRyZVhZe1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgIHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuXHJcbkBtaXhpbiBncmV5X2dyYWRpZW50e1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMTgxLCAxODksIDIwMCwgMSkgMCUsIHJnYmEoMTMwLCAxNDAsIDE0OSwgMSkgMzYlLCByZ2JhKDQwLCA1MiwgNTksIDEpIDEwMCUpO1xyXG59XHJcblxyXG5AbWl4aW4gZ3JlZW5fZ3JhZGllbnR7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzRlYjk0ZSAwJSwgIzEwOTAxMCAzNiUsICMwOTNlMDkgMTAwJSk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3goJGJnKXtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XHJcbiAgYm9yZGVyLXJhZGl1czo0cHg7XHJcbiAgJiwgYXtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBib3hHcmFkaWVudCgkYmcsICR1cHBlci10b3AsICR1cHBlci1ib3R0b20sICRsb3dlci10b3AsICRsb3dlci1ib3R0b20sICRoZWlnaHQ6ICRib3gtR3JhZC1IZWlnaHQpe1xyXG4gIEBpbmNsdWRlIGJveCgkYmcpO1xyXG4gIHotaW5kZXg6IDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAmOmJlZm9yZXtcclxuICAgIGNvbnRlbnQ6Jyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogJGhlaWdodDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJHVwcGVyLXRvcCwgJHVwcGVyLWJvdHRvbSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgfVxyXG5cclxuICAmOmFmdGVye1xyXG4gICAgY29udGVudDonJztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogJGhlaWdodDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgkbG93ZXItdG9wLCAkbG93ZXItYm90dG9tKTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgfVxyXG5cclxuICA+ICp7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGJveEdyYWRpZW50R3JleXtcclxuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLUdyZXksICRib3gtR3JhZC1VcHBlci1Ub3AtR3JleSwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmV5LCAkYm94LUdyYWQtTG93ZXItVG9wLUdyZXksICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JleSk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3hHcmFkaWVudEdyZWVue1xyXG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctR3JlZW4sICRib3gtR3JhZC1VcHBlci1Ub3AtR3JlZW4sICRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Ub3AtR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JlZW4pO1xyXG59XHJcblxyXG5AbWl4aW4gYm94R3JhZGllbnREYXJrR3JlZW57XHJcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1EYXJrLUdyZWVuLCAkYm94LUdyYWQtVXBwZXItVG9wLURhcmstR3JlZW4sICRib3gtR3JhZC1VcHBlci1Cb3R0b20tRGFyay1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLVRvcC1EYXJrLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItQm90dG9tLURhcmstR3JlZW4pO1xyXG59XHJcblxyXG5AbWl4aW4gYm94R3JhZGllbnRSZWR7XHJcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1SZWQsICRib3gtR3JhZC1VcHBlci1Ub3AtUmVkLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLVJlZCwgJGJveC1HcmFkLUxvd2VyLVRvcC1SZWQsICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tUmVkKTtcclxufVxyXG5cclxuQG1peGluIGJveFNoYWRvd3tcclxuICBib3gtc2hhZG93OiA0cHggNHB4IDRweCAjYmJiO1xyXG59XHJcblxyXG5AbWl4aW4gYm94eXtcclxuICBAaW5jbHVkZSBib3hHcmFkaWVudEdyZXk7XHJcbiAgQGluY2x1ZGUgYm94U2hhZG93O1xyXG4gIGNvbG9yOiAjZWVlO1xyXG5cclxuICBhLCBzdHJvbmcge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gIH1cclxuXHJcbiAgaDIge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGxpZ2h0R3JlZW5Cb3h7XHJcbiAgQGluY2x1ZGUgYm94KCRsaWdodC1ncmVlbik7XHJcbiAgJixhe1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gIH1cclxufVxyXG5cclxuIiwKCQkiXG4vKipcbiAqIEJyZWFrcG9pbnRzXG4gKi9cblxuQGltcG9ydCBcIm1xXCI7XG5cblxuQG1peGluIG1xcygkZnJvbTogZmFsc2UsICR1bnRpbDogZmFsc2Upe1xuICBAaW5jbHVkZSBtcSgkZnJvbSwgJHVudGlsLCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnB1dCBjYXBhYmlsaXRpZXNcbiAqL1xuXG4vLyBzbWFydHBob25lcyBhbmQgdGFibGV0c1xuQG1peGluIHRvdWNoLXNjcmVlbi1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKVxuICBhbmQgKGhvdmVyOiBub25lKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNb3VzZSBvciB0b3VjaCBwYWRcbkBtaXhpbiBtb3VzZS1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogZmluZSlcbiAgYW5kIChob3ZlcjogaG92ZXIpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFNob3cgZm9yIHRvdWNoIHNjcmVlbnNcbi8vIGFuZCB1cCB1bnRpbCB0YWJsZXQgZGV2aWNlIHdpZHRoIGZvciB0YWJsZXRzIG5vdCBzdXBwb3J0aW5nIGlucHV0IG1lZGlhIHF1ZXJpZXMgaWUuIG9sZCBBbmRyb2lkIDQueFxuQG1peGluIHRvdWNoLXNjcmVlbi1kZXZpY2Vze1xuICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4taW5wdXQge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHJlc3BvbnNpdmVNZW51KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTmludGVuZG8gV2lpIGNvbnRyb2xsZXIsIEtpbmVjdCwgZXRjLlxuQG1peGluIGNvbnNvbGUtaW5wdXQge1xuICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSlcbiAgYW5kIChob3ZlcjogaG92ZXIpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIHN0eWx1cy1iYXNlZCBzY3JlZW5zIChDaW50aXEsIFdhY29tLCBldGMpXG5AbWl4aW4gY29uc29sZS1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogZmluZSlcbiAgYW5kIChob3Zlcjogbm9uZSl7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gUmV0aW5hIGRpc3BsYXlzICgyeClcbkBtaXhpbiByZXRpbmEge1xuICBAbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMy8yKSxcbiAgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwobWluLXJlc29sdXRpb246IDEuNWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwKCQkiQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcS9wdWxsLzEwXG5cbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxuLy8vIEB0eXBlIE51bWJlciAodW5pdClcbiRtcS1iYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8vIFJlc3BvbnNpdmUgbW9kZVxuLy8vXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXG4vLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSlcbi8vL1xuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2Vycyxcbi8vLyB3aGVyZSBAbWVkaWEgcXVlcmllcyBhcmUgcmFzdGVyaXplZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBvbGQtaWUuc2Nzc1xuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vZmYgRGlzYWJsZWQgcmVzcG9uc2l2ZSBtb2RlIGRvY3VtZW50YXRpb25cbiRtcS1yZXNwb25zaXZlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBsaXN0XG4vLy9cbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxuLy8vIGFjcm9zcyB0ZWFtIG1lbWJlcnMuIEl0IHdpbGwgaW1wcm92ZSBjb21tdW5pY2F0aW9uIGJldHdlZW5cbi8vLyBzdGFrZWhvbGRlcnMsIGRlc2lnbmVycywgZGV2ZWxvcGVycywgYW5kIHRlc3RlcnMuXG4vLy9cbi8vLyBAdHlwZSBNYXBcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1icmVha3BvaW50czogKFxuICAgIG1vYmlsZTogIDMyMHB4LFxuICAgIHRhYmxldDogIDc0MHB4LFxuICAgIGRlc2t0b3A6IDk4MHB4LFxuICAgIHdpZGU6ICAgIDEzMDBweFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcbi8vL1xuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxuLy8vIChpLmUuIHdoZW4gJG1xLXJlc3BvbnNpdmUgaXMgc2V0IHRvICdmYWxzZScpIGluIGEgb2xkLWllLnNjc3Ncbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gdGFibGV0LW9ubHkuc2Nzc1xuLy8vICAvL1xuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcbi8vLyAgLy8gYW5kIGZpeCB0aGUgc3R5bGVzIChlLmcuIGxheW91dCkgYXQgdGFibGV0IHdpZHRoXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvIHRhYmxldFxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IGRlc2t0b3AgIWRlZmF1bHQ7XG5cbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy9cbi8vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXG4vLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLy9cbi8vLyBAdHlwZSBtYXBcbiRtcS1zaG93LWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcblxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXG4vLy8gQnkgZGVmYXVsdCBzYXNzLW1xIHVzZXMgYW4gXCJhbGxcIiBtZWRpYSB0eXBlIChgQG1lZGlhIGFsbCBhbmQg4oCmYClcbi8vL1xuLy8vIEB0eXBlIFN0cmluZ1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjY2hhbmdpbmctbWVkaWEtdHlwZSBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtbWVkaWEtdHlwZTogYWxsICFkZWZhdWx0O1xuXG4vLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZS1mb250LXNpemUgKCRtcS1iYXNlLWZvbnQtc2l6ZSkgLSBgPGJvZHk+YCBmb250IHNpemVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJGZvbnQtc2l6ZS1pbi1lbXM6IG1xLXB4MmVtKDE2cHgpO1xuLy8vICBwIHsgZm9udC1zaXplOiBtcS1weDJlbSgxNnB4KTsgfVxuLy8vXG4vLy8gQHJlcXVpcmVzICRtcS1iYXNlLWZvbnQtc2l6ZVxuLy8vIEByZXR1cm5zIHtOdW1iZXJ9XG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xuICAgIEBpZiB1bml0bGVzcygkcHgpIHtcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xuICAgIH0gQGVsc2UgaWYgdW5pdCgkcHgpID09IGVtIHtcbiAgICAgICAgQHJldHVybiAkcHg7XG4gICAgfVxuICAgIEByZXR1cm4gKCRweCAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxZW07XG59XG5cbi8vLyBHZXQgYSBicmVha3BvaW50J3Mgd2lkdGhcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKGRlc2t0b3ApKSB7fVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBWYWx1ZSBpbiBwaXhlbHNcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xuICAgIH1cbn1cblxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRmcm9tIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVkaWEtdHlwZSAoJG1xLW1lZGlhLXR5cGUpIC0gTWVkaWEgdHlwZTogc2NyZWVuLCBwcmludOKAplxuLy8vXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XG4vLy8gQGlnbm9yZSBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXG4vLy9cbi8vLyBAY29udGVudCBzdHlsaW5nIHJ1bGVzLCB3cmFwcGVkIGludG8gYSBAbWVkaWEgcXVlcnkgd2hlbiAkcmVzcG9uc2l2ZSBpcyB0cnVlXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGhcbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IG1vYmlsZSkge1xuLy8vICAgICAgY29sb3I6IHJlZDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJHVudGlsOiB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBibHVlO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcShtb2JpbGUsIHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGdyZWVuO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogdGFibGV0LCAkYW5kOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykge1xuLy8vICAgICAgY29sb3I6IHRlYWw7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKDk1MHB4KSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEodGFibGV0LCAkbWVkaWEtdHlwZTogc2NyZWVuKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gICAgLy8gQWR2YW5jZWQgdXNlOlxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XG4vLy8gICAgICBjb2xvcjogaG90cGluaztcbi8vLyAgICB9XG4vLy8gIH1cbkBtaXhpbiBtcShcbiAgICAkZnJvbTogZmFsc2UsXG4gICAgJHVudGlsOiBmYWxzZSxcbiAgICAkYW5kOiBmYWxzZSxcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXG4gICAgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMsXG4gICAgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLFxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XG4pIHtcbiAgICAkbWluLXdpZHRoOiAwO1xuICAgICRtYXgtd2lkdGg6IDA7XG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcblxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxuICAgIEBpZiAkZnJvbSB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCRmcm9tKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0oJGZyb20pO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRmcm9tLCAkYnJlYWtwb2ludHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcbiAgICBAaWYgJHVudGlsIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHVudGlsKSA9PSBudW1iZXIge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0oJHVudGlsKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykpIC0gLjAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xuICAgIC8vIFRoZSBicm93c2VyIHdpbGwgcmVseSBvbiB0aGUgY2FzY2FkZSBpdHNlbGYuXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICR0YXJnZXQtd2lkdGg6IG1xLXB4MmVtKCRzdGF0aWMtYnJlYWtwb2ludC13aWR0aCk7XG5cbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcbiAgICAgICAgICAgIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIGFuZCAoXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7IC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBlbmFibGVkLCBvdXRwdXQgcnVsZXMgaW5zaWRlIEBtZWRpYSBxdWVyaWVzXG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJG1heC13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWF4LXdpZHRoOiAjeyRtYXgtd2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRhbmQgICAgICAgICAgICB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgI3skYW5kfSc7IH1cblxuICAgICAgICAvLyBSZW1vdmUgdW5uZWNlc3NhcnkgbWVkaWEgcXVlcnkgcHJlZml4ICdhbGwgYW5kICdcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6IHN0ci1zbGljZSh1bnF1b3RlKCRtZWRpYS1xdWVyeSksIDYpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGlhLXR5cGUgKyAkbWVkaWEtcXVlcnl9IHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cbkBtaXhpbiBtcS1hZGQtYnJlYWtwb2ludCgkbmFtZSwgJHdpZHRoKSB7XG4gICAgJG5ldy1icmVha3BvaW50OiAoJG5hbWU6ICR3aWR0aCk7XG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XG59XG5cbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3NlZWluZy10aGUtY3VycmVudGx5LWFjdGl2ZS1icmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vLyBAcGFyYW0ge01hcH0gJGJyZWFrcG9pbnRzICgkbXEtYnJlYWtwb2ludHMpIC0gQnJlYWtwb2ludCBuYW1lcyBhbmQgc2l6ZXNcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zaG93LWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgZ2xvYmFsIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG4vLy9cbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBjdXN0b20gc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cygoTCwgWEwpLCAoUzogMzAwcHgsIEw6IDgwMHB4LCBYTDogMTIwMHB4KSk7XG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XG4gICAgYm9keTpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGOEUzO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBjb2xvcjogI0MwOTg1MztcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XG4gICAgICAgICAgICAkd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHM6ICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgbGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xuICAgIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHM7XG59XG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKiBUb3VjaCBkZXZpY2VzXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5AaW1wb3J0IFwiZ2VuZXJhbF9taXhpbnNcIjtcclxuXHJcbkBtaXhpbiBib3gtc2hhZG93e1xyXG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSk7XHJcbn1cclxuXHJcbkBtaXhpbiB0b3VjaC1zY3JlZW4tc3R5bGVzIHtcclxuXHJcbiAgLy8gQnV0dG9uc1xyXG4gIFtkYXRhLXJvbGU9XCJidXR0b25cIl06bm90KC5ub24tcmVzcG9uc2l2ZSl7XHJcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93O1xyXG5cclxuICAgIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xyXG5cclxuICAgIGJvcmRlci1jb2xvcjogI2RkZDtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHJcblxyXG4gICAgbWFyZ2luOiAuNWVtIDA7XHJcbiAgICBwYWRkaW5nOiAuN2VtIDFlbTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuXHJcbiAgICAmOmhvdmVyLCAmOmFjdGl2ZXtcclxuICAgICAgYmFja2dyb3VuZDogI2U4ZjBmZjtcclxuICAgIH1cclxuXHJcbiAgICAmW2RhdGEtaWNvbl17XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMzJweDtcclxuICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xyXG4gICAgICBpe1xyXG4gICAgICAgIEBpbmNsdWRlIGNlbnRyZVk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGxlZnQ6IDhweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuZ3JlZW57XHJcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM4ZGRkYTAgMCUsIzNkZGI4YyA1MCUsIzhkZGRhMCAxMDAlKTtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjMmI2YjM3O1xyXG4gICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjUpOyAvL2hlYXZpZXIgc2hhZG93IG9uIGRhcmsgZ3JlZW4gYmdcclxuICAgICAgJjpob3ZlciwgJjphY3RpdmV7XHJcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2RjZjRlMSAwJSwjM2RkYjhjIDUwJSwjZGNmNGUxIDEwMCUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBMaXN0dmlld3NcclxuICBbZGF0YS1yb2xlPVwibGlzdHZpZXdcIl06bm90KC5ub24tcmVzcG9uc2l2ZSl7XHJcbiAgICBAaW5jbHVkZSBib3h5O1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcblxyXG4gICAgPmxpe1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiA4cHggMTZweCA4cHggOHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICBib3JkZXItY29sb3I6ICNkZGQ7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcclxuICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICBjb250ZW50OiAnPic7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICByaWdodDogNHB4O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIExpbmsgbGlzdHNcclxuICA6bm90KC5ub24tcmVzcG9uc2l2ZSk6bm90KFtkYXRhLXJvbGVdKTpub3QoW3JvbGVdKSA+IGxpID4gYTpvbmx5LWNoaWxke1xyXG4gICAgcGFkZGluZzogOHB4IDA7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwKCQkiQGltcG9ydCBcIkBpbmNsdWRlL2NvbW1vblwiO1xyXG5cclxuI3NvY2lhbCB7XHJcbiAgd2lkdGg6ICRwYWdlLXdpZHRoO1xyXG4gIG1hcmdpbjogYXV0bztcclxuICBtYXJnaW4tdG9wOiAxNnB4O1xyXG5cclxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLmFkZHRoaXNfdG9vbGJveCB7XHJcbiAgICBtYXJnaW4tbGVmdDogMzAwcHg7XHJcbiAgfVxyXG5cclxuICAuYWRkdGhpc19idXR0b25fdHdpdHRlcl9mb2xsb3dfbmF0aXZlLFxyXG4gIC5hZGR0aGlzX2J1dHRvbl9nb29nbGVfcGx1c29uZSB7XHJcbiAgICBtYXJnaW4tbGVmdDo4cHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hdGNfcyB7XHJcbiAgICBtYXJnaW4tbGVmdDoxMnB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59IiwKCQkiLy8gQ29tbW9uIHN0eWxlc1xyXG5cclxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xyXG5AaW1wb3J0IFwiZ2VuZXJhbF9taXhpbnNcIjtcclxuQGltcG9ydCBcIm1lZGlhXCI7XHJcbkBpbXBvcnQgXCJ0b3VjaFwiO1xyXG5cclxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIEhlYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiRsb2dvLWxhcmdlLWltZy13aWR0aDogNDE0cHg7XG4kbG9nby1sYXJnZS1pbWctaGVpZ2h0OiA5NnB4O1xuXG4kbG9nby1tZWRpdW0taW1nLXdpZHRoOiAzMzFweDtcbiRsb2dvLW1lZGl1bS1pbWctaGVpZ2h0OiA3N3B4O1xuXG4kbG9nby1zbWFsbC1pbWctd2lkdGg6IDIwN3B4O1xuJGxvZ28tc21hbGwtaW1nLWhlaWdodDogNDhweDtcblxuJGxvZ28taGVpZ2h0LWFkanVzdG1lbnQ6IDEwcHg7XG4kbG9nby1pbWctd2lkdGgtYWRqdXN0bWVudDogNTVweDtcblxuI2hlYWRlcntcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBGb3Igc2NyZWVucyBzbWFsbGVyIHRoYW4gcGFnZSBjb2x1bW4sIGRpc3BsYXkgaGVhZGVyIEJHIGltYWdlXG4gIC8vIEluaXRpYWxseSBkaXNwbGF5IGxvdyByZXMgaW1hZ2Ugd2hpY2ggaXMgcmVwbGFjZWQgYnkgaGlnaC1yZXMgaW1hZ2UgaW4gbWFpbi5qcyBvbmNlIGNvbnRlbnQgaGFzIGxvYWRlZFxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4jYmFubmVyIHtcblxuICAvLyBjcm9wIDEwcHggb2YgYW50aS1hbGlhc2luZyBvZmYgdGhlIGJvdHRvbSBvZiBsb2dvIGltYWdlXG4gIGhlaWdodDogJGxvZ28tbGFyZ2UtaW1nLWhlaWdodCAtICRsb2dvLWhlaWdodC1hZGp1c3RtZW50O1xuXG4gIEBhdC1yb290IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbXEtYnJlYWtwb2ludC1tZWRpdW1Mb2dvKSB7XG4gICAgICAjeyZ9e1xuICAgICAgICBoZWlnaHQ6ICRsb2dvLW1lZGl1bS1pbWctaGVpZ2h0IC0gJGxvZ28taGVpZ2h0LWFkanVzdG1lbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3Qge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtcS1icmVha3BvaW50LXNtYWxsTG9nbykge1xuICAgICAgI3smfXtcbiAgICAgICAgaGVpZ2h0OiAkbG9nby1zbWFsbC1pbWctaGVpZ2h0IC0gJGxvZ28taGVpZ2h0LWFkanVzdG1lbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBcbiAgaDEge1xuICAgIHBhZGRpbmc6MDtcbiAgICBtYXJnaW46MDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtOHB4O1xuICAgIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuICB9XG5cbiAgcGljdHVyZXtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRsb2dvLWxhcmdlLWltZy1oZWlnaHQ7XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbykge1xuICAgICAgICAjeyZ9e1xuICAgICAgICAgIGhlaWdodDogJGxvZ28tbWVkaXVtLWltZy1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGF0LXJvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvKSB7XG4gICAgICAgICN7Jn17XG4gICAgICAgICAgaGVpZ2h0OiAkbG9nby1zbWFsbC1pbWctaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBpbWcubG9nb3tcbiAgICBAaW5jbHVkZSBjZW50cmVYWTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skbG9nby1pbWctd2lkdGgtYWRqdXN0bWVudCAqIDJ9KTtcbiAgICBtYXgtd2lkdGg6ICRsb2dvLWxhcmdlLWltZy13aWR0aDsvLyBiYW5uZXJfbGFyZ2UucG5nXG5cbiAgICBAYXQtcm9vdCB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbXEtYnJlYWtwb2ludC1tZWRpdW1Mb2dvKSB7XG4gICAgICAgICN7Jn17XG4gICAgICAgICAgbWF4LXdpZHRoOiAkbG9nby1tZWRpdW0taW1nLXdpZHRoOyAvL2Jhbm5lcl9tZWRpdW0ucG5nXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAYXQtcm9vdCB7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbXEtYnJlYWtwb2ludC1zbWFsbExvZ28pIHtcbiAgICAgICAgI3smfXtcbiAgICAgICAgICBtYXgtd2lkdGg6ICRsb2dvLXNtYWxsLWltZy13aWR0aDsgLy9iYW5uZXJfc21hbGwucG5nXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYXBwc3RvcmUtbG9nbywgLmF3YXJkc3tcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAycHg7XG5cbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmFwcHN0b3JlLWxvZ28ge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICByaWdodDogMDtcbiAgfVxuXG4gIC5hd2FyZHMge1xuICAgIHdpZHRoOiA2N3B4O1xuICAgIHJpZ2h0OiAxNTNweDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbn1cblxuXG4kbW9iaWxlSGVhZGVyQnV0dG9uV2lkdGg6IDM0cHg7XG4kbW9iaWxlSGVhZGVyQnV0dG9uSGVpZ2h0OiAzMHB4O1xuJG1vYmlsZUhlYWRlckJ1dHRvblNwYWNpbmc6IDEwcHg7XG5cbkBtaXhpbiBtb2JpbGVIZWFkZXJCdXR0b257XG4gIEBpbmNsdWRlIGNlbnRyZVk7XG4gIHdpZHRoOiAkbW9iaWxlSGVhZGVyQnV0dG9uV2lkdGg7XG4gIGhlaWdodDogJG1vYmlsZUhlYWRlckJ1dHRvbkhlaWdodDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjIyMjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4vLyByZXNwb25zaXZlIHRvdWNoIG1lbnUgKGhpZGRlbiBieSBkZWZhdWx0KVxuJHNsaWNrbmF2X2FuaW1hdGlvbl9kdXJhdGlvbjogMzAwbXM7XG5cbi5zbGlja25hdl9tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICB9XG4gIC5zbGlja25hdl9idG57XG4gICAgQGluY2x1ZGUgY2VudHJlWTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDAuNWVtO1xuICAgIG1hcmdpbjogMCAwIDAgMTBweDtcbiAgICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcblxuICAgIC5zbGlja25hdl9tZW51dHh0e1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuc2xpY2tuYXZfaWNvbntcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICAuc2xpY2tuYXZfbmF2e1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogOTk5OTk5O1xuXG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkc2xpY2tuYXZfYW5pbWF0aW9uX2R1cmF0aW9uO1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG5cbiAgICAmLnNsaWNrbmF2X2luaXRpYWxpc2luZ3tcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnNsaWNrbmF2X2hpZGluZ3tcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlTGVmdDtcbiAgICB9XG5cbiAgICAmLnNsaWNrbmF2X3Nob3dpbmd7XG4gICAgICBhbmltYXRpb24tbmFtZTogc2xpZGVSaWdodDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuc2xpY2tuYXZfc2hvd257XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLnNsaWNrbmF2X2hpZGRlbntcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICB1bHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICYuc2xpY2tuYXZfaGlkaW5nLCAmLnNsaWNrbmF2X2hpZGRlbntcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAkc2xpY2tuYXZfYW5pbWF0aW9uX2R1cmF0aW9uIGN1YmljLWJlemllcigwLDEsMCwxKTtcbiAgICAgIH1cblxuICAgICAgJi5zbGlja25hdl9zaG93aW5nLCAmLnNsaWNrbmF2X3Nob3due1xuICAgICAgICBtYXgtaGVpZ2h0OiA5OTk5cHg7IC8vIHZlcnkgbGFyZ2VcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAkc2xpY2tuYXZfYW5pbWF0aW9uX2R1cmF0aW9uIGN1YmljLWJlemllcigxLDAsMSwwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsaXtcbiAgICAgIGF7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgID4gYXtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgID4gdWx7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgID4gbGkgPiBhe1xuICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICB9XG5cbiAgICAmOmFmdGVye1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gICAgICBvcGFjaXR5OiAwLjk1O1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAxMHB4IDAgMDtcbiAgICB9XG5cbiAgICAvLyBTaG93IGJhc2tldCBDVEEgYXMgdGV4dFxuICAgIGEuYmFza2V0LWN0YXtcbiAgICAgIHNwYW57XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAmOmFmdGVye1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubmF2IHtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7IC8qIGZpeCBmb3IgbWVnYW1lbnUgb3ZlcnNwaWxsaW5nIDJweCAqL1xuXG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICBsaSAuaWNvbntcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogMjtcbiAgfVxuXG4gIGxpLmFuZHJvaWQsXG4gIGxpLmFwcGxle1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIGxpLmFuZHJvaWQgLmljb257XG4gICAgYmFja2dyb3VuZDogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL2FuZHJvaWRfbG9nb19pY29uLnBuZycpIHRvcCByaWdodCBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gIH1cbiAgbGkuYXBwbGUgLmljb257XG4gICAgYmFja2dyb3VuZDogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL2FwcGxlX2xvZ29faWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICB9XG5cbiAgLy8gTW9iaWxlIHZpZXdcbiAgPiAubG9naW4tY3RhLWNvbnRhaW5lcntcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBhdC1yb290IHtcbiAgICAgIGJvZHkuYWNjb3VudHMtZGlzYWJsZWQgI3smfXtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBzcGFue1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgJjphZnRlcntcbiAgICAgICAgQGluY2x1ZGUgbW9iaWxlSGVhZGVyQnV0dG9uO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogJG1vYmlsZUhlYWRlckJ1dHRvblNwYWNpbmc7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy9ncmFwaGljcy91c2VyLnBuZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogKDIgKiAkbW9iaWxlSGVhZGVyQnV0dG9uU3BhY2luZykgKyAkbW9iaWxlSGVhZGVyQnV0dG9uV2lkdGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBCYXNrZXQgQ1RBOiBtb2JpbGUgJiBkZXNrdG9wXG4gIC5iYXNrZXQtY3RhLWNvbnRhaW5lciwgLmJhc2tldC1jdGF7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBhdC1yb290IHtcbiAgICAgIGJvZHkuc2lnbmVkLWluICN7Jn17XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICBib2R5LmFjY291bnRzLWRpc2FibGVkICN7Jn17XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkYmFza2V0SWNvbkhlaWdodDogMjZweDtcbiAgJGJhc2tldEljb25XaWR0aDogMjBweDtcblxuICBAbWl4aW4gYmFza2V0SWNvbkhvdmVye1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy9ncmFwaGljcy9zaG9wcGluZ19jYXJ0X2ludmVydGVkLnBuZycpO1xuICB9XG5cbiAgYS5iYXNrZXQtY3RhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgXG4gICAgc3BhbntcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgICY6YWZ0ZXJ7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAkYmFza2V0SWNvbkhlaWdodDtcbiAgICAgIGhlaWdodDogJGJhc2tldEljb25XaWR0aDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYXNrZXRJY29uSGVpZ2h0ICRiYXNrZXRJY29uV2lkdGg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3Nob3BwaW5nX2NhcnQucG5nJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFza2V0IENUQTogZGVza3RvcFxuICAjbWVudSBhLmJhc2tldC1jdGF7XG4gICAgJHZlcnQ6IDIwcHg7XG4gICAgJGhvcml6OiAxOXB4O1xuICAgICR0b3A6ICR2ZXJ0O1xuICAgICRib3R0b206ICR2ZXJ0O1xuICAgICRsZWZ0OiAoKCRiYXNrZXRJY29uV2lkdGggLyAyKSArICRob3Jpeik7XG4gICAgJHJpZ2h0OiAoKCRiYXNrZXRJY29uV2lkdGggLyAyKSArICRob3Jpeik7XG4gICAgcGFkZGluZzogJHRvcCAkcmlnaHQgJGJvdHRvbSAkbGVmdCAhaW1wb3J0YW50O1xuXG4gICAgJjphZnRlcntcbiAgICAgIEBpbmNsdWRlIGNlbnRyZVhZO1xuICAgIH1cbiAgICAmOmhvdmVyOmFmdGVye1xuICAgICAgQGluY2x1ZGUgYmFza2V0SWNvbkhvdmVyO1xuICAgIH1cbiAgfVxuXG4gICNtZW51IGxpLm1lZ2EtaG92ZXIgYS5iYXNrZXQtY3RhOmFmdGVye1xuICAgIEBpbmNsdWRlIGJhc2tldEljb25Ib3ZlcjtcbiAgfVxuXG4gIC8vIEJhc2tldCBDVEE6IG1vYmlsZVxuICA+IGEuYmFza2V0LWN0YXtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8vIEhpZGUgb24gdGlueSBzY3JlZW5zIGJlY2F1c2UgaXQgb3ZlcmxhcHMgbG9nb1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IDM3MHB4KXtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmFmdGVye1xuICAgICAgQGluY2x1ZGUgbW9iaWxlSGVhZGVyQnV0dG9uO1xuICAgICAgcmlnaHQ6ICgyICogJG1vYmlsZUhlYWRlckJ1dHRvblNwYWNpbmcpICsgJG1vYmlsZUhlYWRlckJ1dHRvbldpZHRoO1xuXG4gICAgICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6ICg0ICogJG1vYmlsZUhlYWRlckJ1dHRvblNwYWNpbmcpICsgKDIgKiAkbW9iaWxlSGVhZGVyQnV0dG9uV2lkdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBNb3VzZS9wb2ludGVyIG1lbnVcbiNtZW51e1xuXG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1lbnViYXItaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6OHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzowICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6MzJweDtcbiAgICBoZWlnaHQ6MzJweDtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICB0b3A6NHB4O1xuXG4gICAgJi5zb2NpYWx7XG4gICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBoZWFkZXJTb2NpYWxJY29ucykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBTdWIgSGVhZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNzdWItaGVhZGVye1xuICBwYWRkaW5nOiAxMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1yZWQ7XG4gIGNvbG9yOiB3aGl0ZVxufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiogRm9vdGVyXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuI2Zvb3RlciB7XHJcbiAgYmFja2dyb3VuZDogIzJmMmYyZjtcclxuICBwYWRkaW5nLXRvcDogOHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XHJcbiAgZm9udC1zaXplOiAxMHB0O1xyXG5cclxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubGlua3N7XHJcbiAgICB1bCB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICBtYXJnaW46IDRweCAwO1xyXG4gICAgfVxyXG5cclxuICAgIGxpIHtcclxuICAgICAgZGlzcGxheTppbmxpbmU7XHJcbiAgICAgIHBhZGRpbmctbGVmdDo4cHg7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6OHB4O1xyXG5cclxuICAgICAgYTpob3ZlcntcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdWwjc29jaWFsLWZvb3RlcntcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG5cclxuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2VzIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCAjMDAwO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5tZW51YmFyLWljb24ge1xyXG4gICAgICBtYXJnaW4tbGVmdDo4cHggIWltcG9ydGFudDtcclxuICAgICAgcGFkZGluZzowICFpbXBvcnRhbnQ7XHJcbiAgICAgIHdpZHRoOjMycHg7XHJcbiAgICAgIGhlaWdodDozMnB4O1xyXG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcclxuICAgICAgdG9wOjRweDtcclxuXHJcbiAgICAgICYuc29jaWFse1xyXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IGhlYWRlclNvY2lhbEljb25zKSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mYWNlYm9vayB7XHJcbiAgICAgIGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2dyYXBoaWNzL2ZhY2Vib29rLWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5waW50ZXJlc3Qge1xyXG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy9waW50ZXJlc3QtaWNvbi5wbmcnKSB0b3AgcmlnaHQgbm8tcmVwZWF0ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmdvb2dsZXBsdXMge1xyXG4gICAgICBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ncmFwaGljcy9nb29nbGVwbHVzLWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC50d2l0dGVyIHtcclxuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvdHdpdHRlci1pY29uLnBuZycpIHRvcCByaWdodCBuby1yZXBlYXQgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuaW5zdGFncmFtIHtcclxuICAgICAgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvaW5zdGFncmFtLWljb24ucG5nJykgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiNsaWtlX29uX2ZhY2Vib29rIHtcclxuICBtYXJnaW46MDtcclxuICBwYWRkaW5nLWJvdHRvbToxNnB4O1xyXG5cclxuICBkaXYudGV4dHtcclxuICAgIGRpc3BsYXk6aW5saW5lO1xyXG4gIH1cclxufSIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4qIEZvb3RlciBzZWN0aW9uIGhpZ2hsaWdodGluZ1xyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaHRtbC5zZWN0aW9uLXRlcm1zICNmb290ZXIgbGkudGVybXMgYSxcclxuaHRtbC5zZWN0aW9uLWxpbmtpbmcgI2Zvb3RlciBsaS5saW5raW5nIGEsXHJcbmh0bWwuc2VjdGlvbi1hcHBzLW1lbnUgI2Zvb3RlciBsaS5hcHBzLW1lbnUgYSxcclxuaHRtbC5zZWN0aW9uLWxpbmtzICNmb290ZXIgbGkubGlua3MgYSxcclxuaHRtbC5zZWN0aW9uLWZvb3RwYXRoLWlzc3VlcyAjZm9vdGVyIGxpLmZvb3RwYXRoLWlzc3VlcyBhLFxyXG5odG1sLnNlY3Rpb24tZGlyZWN0aW9uLWNvcnJlY3Rpb24gI2Zvb3RlciBsaS5kaXJlY3Rpb24tY29ycmVjdGlvbiBhLFxyXG5odG1sLnNlY3Rpb24tY29va2llLXBvbGljeSAjZm9vdGVyIGxpLmNvb2tpZS1wb2xpY3kgYSxcclxuaHRtbC5zZWN0aW9uLWNvbnRhY3QtdXMgI2Zvb3RlciBsaS5jb250YWN0LXVzIGEsXHJcbmh0bWwuc2VjdGlvbi1tb2JpbGUtcmVkaXJlY3QgI2Zvb3RlciBsaS5tb2JpbGUtcmVkaXJlY3QgYXtcclxuICBjb2xvcjogIzAwZDRmZjtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKiBOYXYgc2VjdGlvbiBoaWdobGlnaHRpbmdcclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5odG1sLnNlY3Rpb24taG9tZSB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy1ob21lIGEsXHJcbmh0bWwuc2VjdGlvbi1hbGwtd2Fsa3MgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtYWxsLXdhbGtzIGEsXHJcbmh0bWwuc2VjdGlvbi1sb2NhdGlvbnMgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtbG9jYXRpb25zIGEsXHJcbmh0bWwuc2VjdGlvbi13YWxrLXR5cGVzIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLXdhbGstdHlwZXMgYSxcclxuaHRtbC5zZWN0aW9uLWFwcHMgdWwubWVnYS1tZW51IGxpLm5hdi1zZWMtYXBwcyBhLFxyXG5odG1sLnNlY3Rpb24tYnV5IHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLSBhLFxyXG5odG1sLnNlY3Rpb24tZmFxIHVsLm1lZ2EtbWVudSBsaS5uYXYtc2VjLWZhcSBhLFxyXG5odG1sLnNlY3Rpb24tYmxvZyB1bC5tZWdhLW1lbnUgbGkubmF2LXNlYy1ibG9nIGF7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAtNDBweDtcclxuICBjb2xvcjogIzAwMDtcclxuICB0ZXh0LXNoYWRvdzogbm9uZTtcclxufSIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4qIFByaW50IG1vZHNcclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5AbWVkaWEgcHJpbnQge1xyXG5cclxuICBib2R5LCAjY29udGVudCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAjZm9vdGVyLCAubm8tcHJpbnQsIC5uYXYsICNzb2NpYWwsICNjb29raWVUZXJtcywgI2hlYWRlciwgI3N1Yi1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuICBhIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGNvbG9yOiBibGFja1xyXG4gIH1cclxuICAucHJpbnQtb25seSB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxuICAucHJpbnQtb25seS1pbmxpbmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAjYmFubmVyIHtcclxuICAgIGhlaWdodDogaW5oZXJpdDtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogLTZweDtcclxuXHJcbiAgICBpbWcubG9nbyB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjd3JhcHBlciwgI2NvbnRlbnQge1xyXG4gICAgcGFkZGluZzogMFxyXG4gIH1cclxuICBcclxuICBcclxufSIsCgkJIkBpbXBvcnQgXCIuLi9AaW5jbHVkZS9jb21wb25lbnQvbG9hZGVyXCI7XG5cbiNsb2dpbi1wb3B1cHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQGF0LXJvb3Qge1xuICAgIGJvZHkuanMtbG9hZGVkICN7Jn17XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAjZmlyZWJhc2V1aS1hdXRoLWNvbnRhaW5lcntcbiAgICAmLmxvYWRpbmd7XG4gICAgICBAaW5jbHVkZSBsb2FkZXI7XG4gICAgICBwYWRkaW5nOiA1cmVtIDEwcmVtO1xuICAgIH1cbiAgfVxufVxuIiwKCQkiLy8gTG9hZGluZyBhbmltYXRpb25cblxuJGxvYWRlci1kZWZhdWx0LXNpemU6IDUwcHg7XG4kbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzOiA1cHg7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZDogd2hpdGU7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcbiRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLWludmVydGVkOiBibGFjaztcbiRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkOiByZ2JhKDAsMCwwLDAuMjUpO1xuXG5AbWl4aW4gbG9hZGVyKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kXG4pe1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICBtYXJnaW4tbGVmdDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2l6ZTtcbiAgICBib3JkZXI6ICR0aGlja25lc3Mgc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGZvcmVncm91bmQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDFzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbG9hZGVyLWludmVydGVkKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkXG4pe1xuICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgJHNpemU6ICRzaXplLFxuICAgICR0aGlja25lc3M6ICR0aGlja25lc3MsXG4gICAgJGZvcmVncm91bmQ6ICRmb3JlZ3JvdW5kLFxuICAgICRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZFxuICApO1xufVxuIiwKCQkiLy8gTG9hZGluZyBhbmltYXRpb25cblxuJGxvYWRlci1kZWZhdWx0LXNpemU6IDUwcHg7XG4kbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzOiA1cHg7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZDogd2hpdGU7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcbiRsb2FkZXItZGVmYXVsdC1mb3JlZ3JvdW5kLWludmVydGVkOiBibGFjaztcbiRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkOiByZ2JhKDAsMCwwLDAuMjUpO1xuXG5AbWl4aW4gbG9hZGVyKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kXG4pe1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICBtYXJnaW4tbGVmdDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2l6ZTtcbiAgICBib3JkZXI6ICR0aGlja25lc3Mgc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGZvcmVncm91bmQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDFzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbG9hZGVyLWludmVydGVkKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkXG4pe1xuICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgJHNpemU6ICRzaXplLFxuICAgICR0aGlja25lc3M6ICR0aGlja25lc3MsXG4gICAgJGZvcmVncm91bmQ6ICRmb3JlZ3JvdW5kLFxuICAgICRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZFxuICApO1xufVxuIgoJXSwKCSJuYW1lcyI6IFtdLAoJIm1hcHBpbmdzIjogIkFJQ0E7O0dBRUc7QUFXSDs7R0FFRztBRWhCSDs7eURBRXlEO0FGRHpEOztHQUVHO0FBV0g7O0dBRUc7QUVoQkg7O3lEQUV5RDtBQ0F6RCxBQUFBLE9BQU8sQ0FBQztFQUNOLEtBQUssRUxETSxLQUFLO0VLRWhCLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLElBQUk7Q0FrQmpCOztBRnNNTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxPQUFPO0VFM043QyxBQUFBLE9BQU8sQ0FBQztJQU1KLE9BQU8sRUFBRSxJQUFJO0dBZWhCOzs7QUFyQkQsQUFTRSxPQVRLLENBU0wsZ0JBQWdCLENBQUM7RUFDZixXQUFXLEVBQUUsS0FBSztDQUNuQjs7QUFYSCxBQWFFLE9BYkssQ0FhTCxxQ0FBcUM7QUFidkMsT0FBTyxDQWNMLDhCQUE4QixDQUFDO0VBQzdCLFdBQVcsRUFBQyxjQUFjO0NBQzNCOztBQWhCSCxBQWtCRSxPQWxCSyxDQWtCTCxNQUFNLENBQUM7RUFDTCxXQUFXLEVBQUMsZUFBZTtDQUM1Qjs7QUV0Qkg7O3lEQUV5RDtBQWN6RCxBQUFBLE9BQU8sQ0FBQTtFQUNMLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFFBQVEsRUFBRSxRQUFRO0NBY25COztBSjZMTyxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxPQUFPO0VJN003QyxBQUFBLE9BQU8sQ0FB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 */