/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
/* ============ TEXTE D'INTRO (ACF) ============ */
.actualites-intro {
  padding: 72px 0px 0px;
  text-align: center;
}
.actualites-intro .titre {
  max-width: 700px;
  margin: 0px auto 18px;
}
.actualites-intro .contenu {
  max-width: 700px;
  margin: 0px auto;
  color: rgba(27, 18, 39, 0.75);
}
@media screen and (max-width: 1200px) {
  .actualites-intro {
    padding: 48px 0px 0px;
  }
}

/* ============ PASTILLES CATEGORIES ============ */
.pilules-categories {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 40px 0px 56px;
}
@media screen and (max-width: 1200px) {
  .pilules-categories {
    justify-content: center;
    margin: 32px 0px 40px;
  }
}

.pilule {
  display: inline-flex;
  align-items: center;
  padding: 10px 22px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-family: "DM Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.pilule-tout {
  background-color: #450C2B;
  border-color: #450C2B;
  color: #FFFFFF;
}

.pilule-tout:hover {
  background-color: #FFFFFF;
  border-color: #450C2B;
  color: #450C2B;
}

.pilule.couleur-orange {
  background-color: rgba(244, 147, 96, 0.18);
  color: #F49360;
}

.pilule.couleur-orange:hover {
  background-color: #F49360;
  border-color: #F49360;
  color: #FFFFFF;
}

.pilule.couleur-bleu {
  background-color: #D1DEF1;
  color: #A8C4E9;
}

.pilule.couleur-bleu:hover {
  background-color: #A8C4E9;
  border-color: #A8C4E9;
  color: #FFFFFF;
}

.pilule.couleur-terracotta {
  background-color: #F5D9C8;
  color: #D0664B;
}

.pilule.couleur-terracotta:hover {
  background-color: #D0664B;
  border-color: #D0664B;
  color: #FFFFFF;
}

/* ============ GRILLE DES ACTUS (4 colonnes x 2 lignes, swiper) ============ */
.actualites-liste-section {
  padding: 0px 0px 100px;
}
@media screen and (max-width: 1200px) {
  .actualites-liste-section {
    padding: 0px 0px 64px;
  }
}

.actualites-grille {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  row-gap: 44px;
  column-gap: 28px;
  text-align: left;
}
@media screen and (max-width: 1400px) {
  .actualites-grille {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 1200px) {
  .actualites-grille {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 32px;
    column-gap: 20px;
  }
}
@media screen and (max-width: 640px) {
  .actualites-grille {
    grid-template-columns: 1fr;
  }
}

.actualites-slider {
  padding-bottom: 12px;
  overflow: hidden;
}
.actualites-slider .swiper-pagination {
  position: relative;
  margin-top: 36px;
  text-align: center;
}

.aucun-article {
  text-align: center;
  color: rgba(27, 18, 39, 0.6);
}

.actualites-page .carte-actualite-image {
  position: relative;
  display: block;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 4/3;
  margin-bottom: 20px;
}
.actualites-page .carte-actualite-image img, .actualites-page .carte-actualite-image .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.actualites-page .carte-actualite-image .icone-fleche {
  position: absolute;
  left: 16px;
  bottom: 18px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: #FFFFFF;
  color: #D0664B;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0px 4px 14px rgba(0, 0, 0, 0.12);
}
.actualites-page .carte-actualite.couleur-orange .icone-fleche {
  color: #F49360;
}
.actualites-page .carte-actualite.couleur-bleu .icone-fleche {
  color: #A8C4E9;
}
.actualites-page .carte-actualite.couleur-terracotta .icone-fleche {
  color: #D0664B;
}
.actualites-page .carte-actualite-meta {
  font-size: 13px;
  color: rgba(27, 18, 39, 0.6);
  margin-bottom: 8px;
}
.actualites-page .categorie {
  font-weight: 600;
}
.actualites-page .categorie.couleur-orange {
  color: #F49360;
}
.actualites-page .categorie.couleur-bleu {
  color: #A8C4E9;
}
.actualites-page .categorie.couleur-terracotta {
  color: #D0664B;
}
.actualites-page .carte-actualite h3 {
  margin: 0px 0px 8px 0px;
  font-family: "DM Sans", sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
}
.actualites-page .carte-actualite h3 a {
  color: #1B1227;
}
.actualites-page .carte-actualite .contenu {
  font-size: 14px;
  line-height: 21px;
  color: rgba(27, 18, 39, 0.7);
  margin: 0px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
@charset "UTF-8";
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
/* ============ HERO ============ */
.hero-approche .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding-top: 64px;
  padding-bottom: 72px;
}
@media screen and (max-width: 1200px) {
  .hero-approche .container {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
.hero-approche .hero-contenu {
  position: relative;
  flex: 0 1 440px;
  max-width: 440px;
  padding: 60px 0px 80px 0px;
}
@media screen and (max-width: 1200px) {
  .hero-approche .hero-contenu {
    flex: 1 1 auto;
    max-width: none;
    padding: 0px;
  }
}
.hero-approche .hero-photo {
  flex: 0 0 auto;
  width: 840px;
  max-width: 100%;
  aspect-ratio: 2/1;
  height: 420px;
  border-radius: 24px;
  overflow: hidden;
}
.hero-approche .hero-photo img, .hero-approche .hero-photo .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (max-width: 1400px) {
  .hero-approche .hero-photo {
    width: 600px;
  }
}
@media screen and (max-width: 1200px) {
  .hero-approche .hero-photo {
    width: 100%;
    height: 320px;
  }
}
@media screen and (max-width: 576px) {
  .hero-approche .hero-photo {
    height: 240px;
  }
}

/* ============ DIPLOME ============ */
.diplome {
  text-align: center;
  padding: 96px 0px;
}
@media screen and (max-width: 1200px) {
  .diplome {
    padding: 56px 0px;
  }
}
.diplome .diplome-intro {
  margin-bottom: 32px;
}
.diplome .encadre {
  max-width: 640px;
  margin: 0px auto;
  border: 1px solid #F49360;
  border-radius: 16px;
  padding: 24px 32px;
}
.diplome .titre-diplome {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 18px;
  color: #D0664B;
  margin: 0px 0px 6px;
}
.diplome .sous-titre-diplome {
  font-size: 14px;
  color: #D0664B;
  margin: 0px;
}
.diplome .accompagner-intro {
  margin: 56px 0px 40px;
}
.diplome .accompagner-intro .titre h2 {
  text-align: center;
}
.diplome .diplome-colonnes {
  display: flex;
  align-items: stretch;
  gap: 40px;
  margin-bottom: 48px;
}
@media screen and (max-width: 1200px) {
  .diplome .diplome-colonnes {
    flex-direction: column;
    gap: 24px;
  }
}
.diplome .diplome-colonne {
  flex: 1 1 0;
  min-width: 0;
  border: 1px solid #F49360;
  border-radius: 16px;
  padding: 32px 24px 28px;
  text-align: center;
}
.diplome .diplome-colonne h3 {
  text-align: center;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 17px;
  margin: 0px 0px 16px;
}
.diplome .diplome-colonne ul {
  list-style: none;
  margin: 0px;
  padding: 0px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.diplome .diplome-colonne li {
  font-size: 14px;
  line-height: 20px;
  color: #1B1227;
  text-align: center;
}
.diplome .diplome-colonne::after {
  content: "...";
  display: block;
  margin-top: 16px;
  font-size: 20px;
  letter-spacing: 2px;
  color: rgba(27, 18, 39, 0.35);
}
.diplome .diplome-colonne:first-of-type {
  border-color: #D0664B;
}
.diplome .diplome-colonne:first-of-type h3 {
  color: #D0664B;
}
.diplome .diplome-colonne:nth-of-type(2) {
  border-color: #A8C4E9;
}
.diplome .diplome-colonne:nth-of-type(2) h3 {
  color: #A8C4E9;
}
.diplome .diplome-colonne:nth-of-type(3) {
  border-color: #F49360;
}
.diplome .diplome-colonne:nth-of-type(3) h3 {
  color: #F49360;
}
.diplome .diplome-colonne:last-of-type {
  border-color: #C9DAA7;
}
.diplome .diplome-colonne:last-of-type h3 {
  color: #C9DAA7;
}
.diplome .diplome-bouton {
  display: table;
  margin: 0px auto;
}
@media screen and (max-width: 1200px) {
  .diplome .diplome-bouton {
    margin: 0px auto 50px auto;
  }
}
.diplome .diplome-bouton a {
  background-color: #D0664B !important;
  border: 1px solid #D0664B !important;
}
.diplome .diplome-bouton a:hover {
  background-color: #FFFFFF !important;
  color: #D0664B !important;
}

/* ============ TRANSMETTRE ============ */
.transmettre {
  position: relative;
}
.transmettre .row {
  margin: 0px;
}
.transmettre .transmettre-texte, .transmettre .transmettre-image {
  padding: 0px;
  height: 720px;
}
@media screen and (max-width: 991px) {
  .transmettre .transmettre-texte, .transmettre .transmettre-image {
    height: auto;
  }
}
.transmettre .transmettre-texte {
  background-color: #F49360;
  color: #FFFFFF;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 1200px) {
  .transmettre .transmettre-texte {
    min-height: auto;
    padding: 106px 0px 56px 0px;
  }
}
.transmettre .transmettre-texte-inner {
  padding: 40px 60px 40px 0px;
  max-width: 520px;
  margin-left: calc((100vw - 1140px) / 2);
}
@media screen and (min-width: 1400px) {
  .transmettre .transmettre-texte-inner {
    margin-left: calc((100vw - 1320px) / 2);
  }
}
@media screen and (max-width: 1200px) {
  .transmettre .transmettre-texte-inner {
    margin: 0px auto;
    padding: 0px 24px;
  }
}
.transmettre .transmettre-texte .titre h2 {
  font-family: "Veiran", sans-serif;
  font-weight: 400;
  color: #FFFFFF;
  font-size: 28px;
}
.transmettre .transmettre-texte .contenu p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  line-height: 25px;
  margin: 0px 0px 16px;
}
.transmettre .transmettre-texte .contenu p:last-child {
  margin-bottom: 0px;
}
.transmettre .transmettre-image {
  position: relative;
}
.transmettre .transmettre-image img, .transmettre .transmettre-image .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.transmettre .macaron img {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 96px;
  width: 180px;
  height: 180px;
}
@media screen and (max-width: 1200px) {
  .transmettre .macaron img {
    left: 50%;
    transform: translateX(-50%);
    top: -76px;
    width: 148px;
    height: 148px;
  }
}

/* ============ BANDEAU (texte centré, .bandeau-citation partagé) ============ */
.page-approche .bandeau-citation .contenu p {
  margin: 0px 0px 16px;
}
.page-approche .bandeau-citation .contenu p:last-child {
  margin-bottom: 0px;
}
@charset "UTF-8";
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
.hero-contact .photo {
  position: relative;
  width: 100%;
  --hero-h: 400px;
  --forme-part: 1;
  --forme-decalage: 75px;
  height: var(--hero-h);
  overflow: hidden;
  background-color: #450C2B;
}
@media screen and (max-width: 1600px) {
  .hero-contact .photo {
    --hero-h: 25vw;
    --forme-part: 0.9;
  }
}
@media screen and (max-width: 1200px) {
  .hero-contact .photo {
    --hero-h: 320px;
    --forme-decalage: 30px;
  }
}
@media screen and (max-width: 640px) {
  .hero-contact .photo {
    --hero-h: 270px;
  }
}
.hero-contact .photo .opacite {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #1B1227;
  opacity: 0.3;
}
.hero-contact .photo img.photo-principale, .hero-contact .photo .img-placeholder.photo-principale {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero-contact .photo img.forme {
  position: absolute;
  left: calc(var(--bs-gutter-x, 24px) * 0.5 - var(--forme-decalage));
  bottom: -45px;
  height: calc(var(--forme-part) * 100%);
  width: auto;
  z-index: 0;
  pointer-events: none;
  user-select: none;
}
@media screen and (max-width: 1600px) {
  .hero-contact .photo img.forme {
    bottom: -22px;
  }
}
@media screen and (max-width: 1200px) {
  .hero-contact .photo img.forme {
    left: calc(20px - var(--forme-decalage));
  }
}
.hero-contact .photo .container {
  position: absolute;
  inset: 0px;
  display: flex;
  align-items: flex-end;
  padding-bottom: 40px;
  z-index: 2;
}
@media screen and (max-width: 1200px) {
  .hero-contact .photo .container {
    padding-bottom: 32px;
  }
}
.hero-contact .photo .titre-hero {
  position: relative;
  z-index: 1;
  margin: 0px;
  padding-left: 0px;
}
.hero-contact .photo .titre-hero h1 {
  font-size: 32px;
  letter-spacing: 3px;
}
@media screen and (max-width: 1600px) {
  .hero-contact .photo .titre-hero h1 {
    font-size: clamp(24px, 2vw, 32px);
    letter-spacing: clamp(2px, 0.19vw, 3px);
  }
}
@media screen and (max-width: 1200px) {
  .hero-contact .photo .titre-hero h1 {
    font-size: 26px;
    letter-spacing: 2px;
  }
}
.hero-contact .photo .titre-hero h1 {
  color: #FFFFFF;
  margin: 0px;
  max-width: calc(var(--hero-h) * var(--forme-part) * 1.254 - var(--forme-decalage) - 40px);
  overflow-wrap: break-word;
  text-shadow: 0px 2px 14px rgba(0, 0, 0, 0.25);
}

.contact-form {
  padding: 96px 0px;
}
@media screen and (max-width: 1200px) {
  .contact-form {
    padding: 64px 0px;
  }
}
.contact-form .row {
  align-items: flex-start;
}
.contact-form {
  /* --- Colonne texte + coordonnées --- */
}
@media screen and (max-width: 1200px) {
  .contact-form .contact-intro {
    margin-bottom: 48px;
  }
}
.contact-form .contact-intro .contenu p {
  font-size: 15px;
  line-height: 25px;
}
.contact-form .coordonnees {
  margin-top: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(27, 18, 39, 0.12);
}
.contact-form .coordonnees h3 {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 18px;
  margin: 0px 0px 8px 0px;
}
.contact-form .coordonnees p {
  margin: 0px 0px 16px 0px;
  font-size: 15px;
  line-height: 24px;
}
.contact-form a.badge.sauge.lien-itineraire {
  cursor: pointer;
  margin-bottom: 0px;
}
.contact-form a.badge.sauge.lien-itineraire:hover {
  background-color: #8F967E;
  color: #FFFFFF;
}
.contact-form .reseaux-sociaux {
  margin-top: 24px;
}
.contact-form .reseaux-sociaux h3 {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 18px;
  margin: 0px 0px 8px 0px;
}
.contact-form .reseaux-sociaux p {
  margin: 0px;
  font-size: 15px;
  line-height: 24px;
  color: rgba(27, 18, 39, 0.75);
}
.contact-form .reseaux-sociaux .reseaux {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}
.contact-form .reseaux-sociaux .reseaux a {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #E3E6D3;
  color: #8F967E;
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact-form .reseaux-sociaux .reseaux a:hover {
  background-color: #8F967E;
  color: #FFFFFF;
}
.contact-form {
  /* --- Colonne formulaire --- */
}
.contact-form .contact-carte {
  position: relative;
}
.contact-form .carte-formulaire {
  position: relative;
  background-color: #E3E6D3;
  border-radius: 24px;
  padding: 48px 40px 20px 40px;
}
@media screen and (max-width: 1200px) {
  .contact-form .carte-formulaire {
    padding: 80px 24px 20px 24px;
    margin-top: 40px;
  }
}
.contact-form .macaron {
  position: absolute;
  top: -60px;
  right: -60px;
  width: 120px;
  height: 120px;
  z-index: 3;
}
@media screen and (max-width: 1200px) {
  .contact-form .macaron {
    width: 100px;
    height: 100px;
  }
}
.contact-form .macaron img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0px 4px 10px rgba(0, 0, 0, 0.15));
}
@media screen and (max-width: 1200px) {
  .contact-form .macaron {
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
  }
}
.contact-form {
  /* Formulaire Contact Form 7 */
}
.contact-form .carte-formulaire form .ligne {
  display: flex;
  flex-direction: column;
}
.contact-form .carte-formulaire form .ligne-message {
  margin-bottom: 0px;
}
.contact-form .carte-formulaire form label {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #1B1227;
  margin-bottom: 8px;
}
.contact-form .carte-formulaire form .wpcf7-form-control-wrap {
  display: block;
}
.contact-form .carte-formulaire form input.wpcf7-form-control,
.contact-form .carte-formulaire form textarea.wpcf7-form-control {
  width: 100%;
  box-sizing: border-box;
  background-color: #FFFFFF;
  border: 1px solid transparent;
  border-radius: 12px;
  padding: 14px 18px;
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  color: #1B1227;
}
.contact-form .carte-formulaire form textarea.wpcf7-form-control {
  min-height: 120px;
  resize: vertical;
}
.contact-form .carte-formulaire form input.wpcf7-form-control:focus,
.contact-form .carte-formulaire form textarea.wpcf7-form-control:focus {
  outline: none;
  border-color: #8F967E;
}
.contact-form .carte-formulaire form input.wpcf7-not-valid,
.contact-form .carte-formulaire form textarea.wpcf7-not-valid {
  border-color: #c0392b;
}
.contact-form .carte-formulaire form .wpcf7-not-valid-tip {
  display: block;
  color: #c0392b;
  font-size: 12px;
  margin-top: 6px;
}
.contact-form .carte-formulaire form .note-facultatif {
  display: none;
}
.contact-form .carte-formulaire form .wpcf7-response-output {
  margin: 16px 0px 0px 0px;
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 14px;
}
.contact-form .carte-formulaire form .bouton.orange {
  margin-top: 15px;
}
.contact-form .carte-formulaire form .bouton.orange input[type=submit] {
  display: table;
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  line-height: 15px;
  font-weight: 600;
  border-radius: 999px;
  padding: 12px 28px;
  border: 1px solid #F49360;
  background-color: #F49360;
  color: #FFFFFF;
  cursor: pointer;
}
.contact-form .carte-formulaire form .bouton.orange input[type=submit]:hover {
  background-color: transparent;
  color: #F49360;
}
.contact-form .carte-formulaire form .bouton.orange input[type=submit]:disabled {
  opacity: 0.6;
  cursor: default;
}
.contact-form .carte-formulaire form .bouton.orange .wpcf7-spinner {
  display: none;
}

/* ============ TARIFS (bloc de la home, cf. home.scss) ============ */
.contact-form.avec-tarifs {
  padding-bottom: 0px;
}

.tarifs.tarifs-contact {
  padding-top: 100px;
  padding-bottom: 100px;
}
@media screen and (max-width: 1200px) {
  .tarifs.tarifs-contact {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}
@charset "UTF-8";
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
/* ============ BLOC INTRO (texte + podcast) ============ */
.bloc-intro {
  padding: 88px 0px;
}
@media screen and (max-width: 1200px) {
  .bloc-intro {
    padding: 56px 0px;
  }
}
.bloc-intro .row {
  align-items: flex-start;
}
@media screen and (max-width: 1200px) {
  .bloc-intro .bloc-intro-texte {
    margin-bottom: 48px;
  }
}
.bloc-intro .bloc-intro-texte .contenu p {
  font-size: 15px;
  line-height: 25px;
}
.bloc-intro .bloc-intro-texte .bouton.orange {
  margin-top: 28px;
}
.bloc-intro {
  /* --- Colonne podcast + "Suivez-nous" --- */
}
.bloc-intro .bloc-intro-podcast {
  padding-left: 24px;
}
@media screen and (max-width: 1200px) {
  .bloc-intro .bloc-intro-podcast {
    padding-left: 0px;
  }
}
.bloc-intro .podcast-titre {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.3;
  margin: 0px 0px 14px 0px;
}
.bloc-intro .bloc-intro-podcast > .contenu p {
  font-size: 15px;
  line-height: 25px;
}
.bloc-intro .bloc-intro-podcast .ensemble {
  position: relative;
  margin-top: 24px;
}
.bloc-intro {
  /* Même bouton que "Prendre rendez-vous" (hero de la home, cf.
     .bouton-fleche dans globales.scss), mais en usage "normal" (dans le
     flux, pas collé au bord d'une colonne) : on neutralise le
     positionnement absolu propre au hero, et on adapte juste la couleur
     (violet, demande de Martin) + suppression des ombres portées. La
     pastille ronde (.fleche) garde sa position (chevauchant le bord droit
     de la pilule), c'est relatif à la pilule elle-même, pas au hero. */
}
.bloc-intro .bouton-fleche.violet {
  position: relative;
  left: 0;
  bottom: 0;
  background: #4B2E6B;
}
@media screen and (max-width: 1200px) {
  .bloc-intro .bouton-fleche.violet {
    position: relative;
    left: 0;
  }
}
.bloc-intro .bouton-fleche.violet .fleche {
  background: #4B2E6B;
}
.bloc-intro .bouton-fleche.violet:hover {
  background-color: #FFFFFF;
}
.bloc-intro .bouton-fleche.violet:hover .texte {
  color: #4B2E6B;
}
.bloc-intro .bouton-fleche.violet:hover .fleche {
  background-color: #FFFFFF;
}
.bloc-intro .bouton-fleche.violet:hover .fleche svg {
  fill: #4B2E6B;
}
.bloc-intro {
  /* Bordure + bloc "Suivez-nous" repassés intégralement en violet (demande
     de Martin du 18/09) -- la bordure passe de 1px à 2px au passage. */
}
.bloc-intro .separateur {
  border: 0px;
  border-top: 2px solid rgba(75, 46, 107, 0.3);
  margin: 32px 0px;
}
.bloc-intro {
  /* Reprend .reseaux-sociaux de la page Contact (contact.scss), intégralement
     teinté en violet (titre, texte, icônes) plutôt que le sauge utilisé sur
     la page Contact. */
}
.bloc-intro .reseaux-sociaux.violet {
  margin-top: 0px;
}
.bloc-intro .reseaux-sociaux.violet h3 {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 18px;
  margin: 0px 0px 8px 0px;
  color: #4B2E6B;
}
.bloc-intro .reseaux-sociaux.violet p {
  margin: 0px;
  font-size: 15px;
  line-height: 24px;
  color: rgba(75, 46, 107, 0.75);
}
.bloc-intro .reseaux-sociaux.violet .reseaux {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}
.bloc-intro .reseaux-sociaux.violet .reseaux a {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgba(75, 46, 107, 0.12);
  color: #4B2E6B;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bloc-intro .reseaux-sociaux.violet .reseaux a:hover {
  background-color: #4B2E6B;
  color: #FFFFFF;
}

/* ============ MACARON (bouton ajouté sur .bandeau-badge, repris de la home) ============ */
.enfant .bandeau-badge .bouton {
  margin: 30px auto 0px;
}
.enfant .bandeau-badge .bouton a, .enfant .bandeau-badge .bouton button {
  color: #F49360;
}

/* ============ GRILLE CHIFFRES (4 colonnes x 2 lignes, alternée) ============ */
.grille-chiffres {
  padding: 0px 0px 96px 0px;
}
@media screen and (max-width: 1200px) {
  .grille-chiffres {
    padding: 0px 0px 56px 0px;
  }
}
.grille-chiffres .grille-chiffres-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
@media screen and (max-width: 1200px) {
  .grille-chiffres .grille-chiffres-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }
}
.grille-chiffres .case-chiffre {
  position: relative;
  aspect-ratio: 1/1;
  border-radius: 24px;
  overflow: hidden;
}
.grille-chiffres .case-chiffre.case-image img, .grille-chiffres .case-chiffre.case-image .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.grille-chiffres .case-chiffre.case-texte {
  display: flex;
  align-items: center;
  padding: 22px;
  box-sizing: border-box;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 17px;
  line-height: 22px;
  color: #FFFFFF;
}
@media screen and (max-width: 1200px) {
  .grille-chiffres .case-chiffre.case-texte {
    padding: 16px;
    font-size: 12px;
  }
}
@media screen and (max-width: 1200px) {
  .grille-chiffres .case-chiffre.case-texte p {
    margin-bottom: 0px;
  }
}
.grille-chiffres .case-chiffre.case-texte.couleur-peche {
  background-color: #F5D9C8;
}
.grille-chiffres .case-chiffre.case-texte.couleur-bleu {
  background-color: #A8C4E9;
}
.grille-chiffres .case-chiffre.case-texte.couleur-orange {
  background-color: #F49360;
}
.grille-chiffres .case-chiffre.case-texte.couleur-pourpre {
  background-color: #601D40;
}
.grille-chiffres .case-chiffre.case-texte.couleur-terracotta {
  background-color: #D97D5E;
}
.grille-chiffres .case-chiffre.case-texte.couleur-bleuet {
  background-color: #BBCEEC;
}
.grille-chiffres .case-chiffre.case-texte.couleur-vert {
  background-color: #C9DAA7;
}
.grille-chiffres .case-chiffre.case-texte.couleur-sauge {
  background-color: #95A087;
}
.grille-chiffres .grille-chiffres-source {
  text-align: right;
  font-size: 12px;
  font-style: italic;
  color: rgba(27, 18, 39, 0.5);
  margin-top: 14px;
}
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
footer .infos {
  background-color: #D0664B;
  color: #FFFFFF;
  padding: 30px 0px;
}
footer .infos .row {
  align-items: flex-start;
}
footer .infos h3 {
  font-family: "DM Sans", sans-serif;
  font-size: 17px;
  font-weight: 700;
  margin: 0px 0px 10px 0px;
}
footer .infos p {
  font-size: 15px;
  line-height: 24px;
  margin: 0px 0px 16px 0px;
  color: rgba(255, 255, 255, 0.88);
}
footer .infos .bloc-logo {
  margin-bottom: 32px;
}
footer .infos .bloc-logo .logo {
  width: 250px;
  display: block;
  margin-bottom: 10px;
}
footer .infos .bloc-logo .tagline {
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  margin: 0px;
}
footer .infos .bloc-social,
footer .infos .bloc-contact {
  margin-bottom: 32px;
}
footer .infos .reseaux {
  display: flex;
  gap: 12px;
}
footer .infos .reseaux a {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
}
footer .infos .reseaux a svg {
  width: 25px;
  height: 25px;
}
footer .infos .reseaux a:hover {
  background-color: #FFFFFF;
  color: #D0664B;
  border-color: #FFFFFF;
}
footer .infos .bloc-contact .bouton a {
  padding: 10px 22px;
  font-size: 13px;
}
footer .bas-de-page {
  background-color: #FCFAFA;
  padding: 16px 0px;
}
footer .bas-de-page p {
  margin: 0px;
  text-align: center;
  font-size: 13px;
  color: #D0664B;
}
footer .bas-de-page a, footer .bas-de-page span {
  color: #D0664B;
  font-weight: 500;
}
footer .bas-de-page a:hover {
  opacity: 0.7;
}
@charset "UTF-8";
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
/* Container Bootstrap : +8px de padding latéral supplémentaire en mobile
   (Bootstrap charge après le thème dans enqueue.php, donc !important est
   nécessaire pour gagner la cascade à spécificité égale — même point de
   vigilance que les puces Swiper, cf. home-accueil-build.md). Bootstrap
   applique 12px de base ; on passe donc à 20px = 12 + 8. */
@media screen and (max-width: 1200px) {
  .container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
html {
  scroll-behavior: unset !important;
  width: 100%;
  height: 100%;
  margin: 0px;
  padding: 0px;
  scrollbar-gutter: stable;
}
html body {
  margin: 0px;
  padding: 0px;
  max-width: 100%;
  overflow-x: hidden;
  font-family: "DM Sans", sans-serif;
  color: #1B1227;
  font-weight: 400;
  font-size: 16px;
  line-height: 26px;
  letter-spacing: 0;
  background-color: #FCFAFA;
}
html body strong {
  font-weight: 700;
}
html body *:focus-visible {
  outline: none;
}
html body img {
  max-width: 100%;
}
html body .main-content {
  position: relative;
  width: 100%;
  overflow: hidden;
  margin-top: 96px;
}
html body {
  /* Un seul palier mobile pour tout le site (nav comprise) */
}
html body .desktop {
  display: block;
}
@media screen and (max-width: 1200px) {
  html body .desktop {
    display: none;
  }
}
html body .mobile {
  display: none;
}
@media screen and (max-width: 1200px) {
  html body .mobile {
    display: block;
  }
}
html body a {
  text-decoration: none;
  transition: all 0.2s ease;
  color: inherit;
}
html body {
  /* Badges (eyebrow) */
}
html body .badge {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 999px;
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  margin-bottom: 16px;
}
html body .badge.peche {
  background-color: #F5D9C8;
  color: #D0664B;
}
html body .badge.sauge {
  background-color: #E3E6D3;
  color: #8F967E;
}
html body .badge.blanc {
  background-color: rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
}
html body {
  /* Titres / textes de section */
}
html body .titre {
  margin-bottom: 18px;
}
html body .titre h1, html body .titre h2, html body .titre h3, html body .titre p {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 34px;
  line-height: 1.2;
  color: #1B1227;
  margin: 0px;
}
html body .titre-hero {
  margin-bottom: 24px;
}
html body .titre-hero h1 {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 40px;
  letter-spacing: 4px;
  line-height: 1.15;
  margin: 0px;
}
@media screen and (max-width: 1200px) {
  html body .titre-hero h1 {
    font-size: 32px;
  }
}
html body .titre-hero p {
  margin-top: 20px;
}
html body .titre-hero p strong {
  font-family: "DM Sans", sans-serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 23px;
  color: #F49360;
}
html body .contenu p {
  margin: 0px 0px 16px 0px;
}
html body .contenu p:last-child {
  margin-bottom: 0px;
}
html body {
  /* Boutons */
}
html body .bouton {
  display: table;
}
html body .bouton a, html body .bouton button {
  display: table;
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  line-height: 15px;
  font-weight: 600;
  border-radius: 999px;
  padding: 10px 20px;
  border: 1px solid transparent;
  cursor: pointer;
}
html body .bouton.orange a, html body .bouton.orange button {
  background-color: #F49360;
  border-color: #F49360;
  color: #FFFFFF;
}
html body .bouton.orange a:hover, html body .bouton.orange button:hover {
  background-color: transparent;
  border-color: currentColor;
  color: #F49360;
}
html body .bouton.blanc a, html body .bouton.blanc button {
  background-color: #FFFFFF;
  border-color: #FFFFFF;
  color: #D0664B;
}
html body .bouton.blanc a:hover, html body .bouton.blanc button:hover {
  background-color: transparent;
  border-color: #FFFFFF;
  color: #FFFFFF;
}
html body .bouton.outline-blanc a, html body .bouton.outline-blanc button {
  background-color: transparent;
  border-color: rgba(255, 255, 255, 0.6);
  color: #FFFFFF;
}
html body .bouton.outline-blanc a:hover, html body .bouton.outline-blanc button:hover {
  background-color: #FFFFFF;
  border-color: #FFFFFF;
  color: #D0664B;
}
html body {
  /* Bouton pilule + puce flèche (hero, etc.) */
}
html body .bouton-fleche {
  position: absolute;
  z-index: 100;
  left: 94%;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  background-color: #F49360;
  border-radius: 999px;
  padding: 5px;
  transition: all 0.2s ease;
  box-shadow: 4px 1px 6px rgba(0, 0, 0, 0.45);
}
@media screen and (max-width: 1400px) {
  html body .bouton-fleche {
    left: 80%;
  }
}
@media screen and (max-width: 1200px) {
  html body .bouton-fleche {
    position: relative;
    left: 0;
  }
}
html body .bouton-fleche .texte {
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 15px;
  color: #FFFFFF;
  padding: 7px 14px;
  white-space: nowrap;
  transition: all 0.2s ease;
}
html body .bouton-fleche .fleche {
  flex: 0 0 auto;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #F49360;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 99%;
  box-shadow: 4px 1px 3px rgba(38, 35, 34, 0.2);
  transition: all 0.2s ease;
}
html body .bouton-fleche .fleche svg {
  width: 16px;
  height: 16px;
  fill: #FFFFFF;
}
html body .bouton-fleche:hover {
  background-color: #FFFFFF;
}
html body .bouton-fleche:hover .texte {
  color: #F49360;
}
html body .bouton-fleche:hover .fleche {
  background-color: #FFFFFF;
}
html body .bouton-fleche:hover .fleche svg {
  fill: #F49360;
}
html body {
  /* Accordéon FAQ */
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item {
  background-color: transparent;
  border: 0px;
  border-bottom: 1px solid rgba(27, 18, 39, 0.12);
  border-radius: 0px;
  margin-bottom: 0px;
  transition: margin 0.2s ease;
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item .accordion-header button {
  position: relative;
  width: 100%;
  text-align: left;
  border: 0px !important;
  background-color: transparent;
  box-shadow: none;
  padding: 22px 40px 22px 22px;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 17px;
  line-height: 1.4;
  color: #1B1227;
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item .accordion-header button:focus {
  box-shadow: none;
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item .accordion-header button::after {
  content: "";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  background-image: none;
  border-right: 2px solid #1B1227;
  border-bottom: 2px solid #1B1227;
  transform: translateY(-65%) rotate(45deg);
  transition: all 0.2s ease;
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item .accordion-header button:not(.collapsed)::after {
  transform: translateY(-35%) rotate(-135deg);
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item .accordion-collapse .accordion-body {
  padding: 0px 40px 22px 22px;
  color: rgba(27, 18, 39, 0.75);
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item:has(.accordion-header button:not(.collapsed)) {
  background-color: #E3E6D3;
  border-radius: 14px;
  border-bottom-color: transparent;
  margin: 8px 0px;
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item:has(.accordion-header button:not(.collapsed)) .accordion-header button {
  padding: 20px 40px 4px 22px;
}
html body .accordion:not(.accordion-menu-mobile) .accordion-item:has(.accordion-header button:not(.collapsed)) .accordion-collapse .accordion-body {
  padding: 0px 40px 22px 22px;
}

/* Placeholder image (tant que le vrai visuel n'est pas ajouté dans l'admin) */
.img-placeholder {
  width: 100%;
  height: 100%;
  min-height: 120px;
  background: repeating-linear-gradient(135deg, rgba(27, 18, 39, 0.06), rgba(27, 18, 39, 0.06) 10px, rgba(27, 18, 39, 0.1) 10px, rgba(27, 18, 39, 0.1) 20px);
  border-radius: inherit;
}

/* Swiper : puces de pagination aux couleurs du site */
.swiper-pagination-bullet {
  background: #F5D9C8 !important;
  opacity: 1;
  width: 12px !important;
  height: 12px !important;
  margin: 0 6px !important;
}

.swiper-pagination-bullet-active {
  background: #F49360 !important;
}

.swiper-pagination-bullet:not(.swiper-pagination-bullet-active) {
  opacity: 0.8;
}

.swiper-pagination {
  margin-top: 60px !important;
}

body:not(.page-template-template-contact) .grecaptcha-badge {
  visibility: hidden;
}
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9900;
  width: 100%;
  background-color: #FCFAFA;
  transition: box-shadow 0.2s ease;
}
header .menu-desktop .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 20px;
  padding-bottom: 20px;
}
header .menu-desktop .container .logo-link {
  flex: 0 0 auto;
  display: inline-flex;
}
header .menu-desktop .container .logo-link .logo {
  width: 150px;
  display: block;
}
header .menu-desktop .container .main-menu {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 32px;
  margin: 0px;
  padding: 0px;
}
header .menu-desktop .container .main-menu li {
  margin: 0px;
  position: relative;
}
header .menu-desktop .container .main-menu li a {
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #1B1227;
  display: inline-flex;
  align-items: center;
  padding-bottom: 4px;
  border-bottom: 2px solid transparent;
}
header .menu-desktop .container .main-menu li a:hover {
  color: #D0664B;
}
header .menu-desktop .container .main-menu .sub-menu-toggle {
  display: none;
}
header .menu-desktop .container .main-menu li.menu-item-has-children > a {
  gap: 7px;
}
header .menu-desktop .container .main-menu li.menu-item-has-children > a::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-top: -3px;
  transition: transform 0.2s ease, margin 0.2s ease;
}
header .menu-desktop .container .main-menu li.menu-item-has-children:hover > a::after,
header .menu-desktop .container .main-menu li.menu-item-has-children:focus-within > a::after,
header .menu-desktop .container .main-menu li.menu-item-has-children.sous-menu-ouvert-desktop > a::after {
  transform: rotate(-135deg);
  margin-top: 2px;
}
header .menu-desktop .container .main-menu > li.current-menu-parent > a,
header .menu-desktop .container .main-menu > li.current-menu-ancestor > a,
header .menu-desktop .container .main-menu > li.current-menu-item > a {
  border-bottom-color: #D0664B;
}
header .menu-desktop .container .main-menu .sub-menu {
  list-style: none;
  margin: 0px;
  padding: 42px 0px 8px 0px;
  position: absolute;
  top: 100%;
  left: 0px;
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(5, auto);
  column-gap: 40px;
  row-gap: 0px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
  z-index: 10;
}
header .menu-desktop .container .main-menu .sub-menu li {
  margin: 0px;
}
header .menu-desktop .container .main-menu .sub-menu li a {
  display: block;
  padding: 3px 0px;
  white-space: nowrap;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: rgba(27, 18, 39, 0.65);
}
header .menu-desktop .container .main-menu .sub-menu li a:hover {
  color: #D0664B;
}
header .menu-desktop .container .main-menu .sub-menu li.current-menu-item a {
  color: #1B1227;
  opacity: 1;
  font-weight: 600;
  border-bottom-color: transparent;
}
header .menu-desktop .container .main-menu li.menu-item-has-children:hover > .sub-menu,
header .menu-desktop .container .main-menu li.menu-item-has-children:focus-within > .sub-menu,
header .menu-desktop .container .main-menu li.menu-item-has-children.sous-menu-ouvert-desktop > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
header .menu-desktop .container .cta-header {
  flex: 0 0 auto;
}
header .menu-desktop .container .cta-header .bouton a {
  padding: 8px 22px;
  font-size: 13px;
  border-radius: 31px;
}
header .menu-desktop .sous-menu-fond {
  position: fixed;
  left: 0px;
  width: 100%;
  top: 0px;
  height: 0px;
  background-color: #FCFAFA;
  box-shadow: 0px 24px 24px -12px rgba(27, 18, 39, 0.08);
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 4;
  transition: opacity 0.2s ease, height 0.2s ease;
}
header .menu-desktop .sous-menu-fond .sous-menu-fond-ligne {
  position: absolute;
  top: 8px;
  left: 0px;
  width: 0px;
  height: 2px;
  background-color: rgba(208, 102, 75, 0.1);
}
header .menu-desktop .sous-menu-fond.visible {
  opacity: 1;
}
header .menu-mobile {
  background-color: #FCFAFA;
}
header .menu-mobile .container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  padding-bottom: 16px;
}
header .menu-mobile .container .logo-link .logo {
  width: 120px;
  display: block;
}
header .menu-mobile .container #menuToggle {
  cursor: pointer;
  position: relative;
  width: 44px;
  height: 40px;
  border-radius: 8px;
  background-color: #F49360;
  z-index: 1000;
}
header .menu-mobile .container #menuToggle .position {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
header .menu-mobile .container #menuToggle .position span {
  display: block;
  background: #FCFAFA;
  width: 20px;
  height: 2px;
  margin-bottom: 4px;
  position: relative;
  border-radius: 3px;
  z-index: 1;
  transform-origin: 0% 100%;
  transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1), background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1), opacity 0.55s ease;
}
header .menu-mobile .container #menuToggle .position span:last-child {
  margin-bottom: 0px;
  transform-origin: 0% 0%;
}
header .menu-mobile .container #menuToggle.open .position span {
  opacity: 1;
  transform: rotate(45deg) translate(-4px, -7px);
  background: #FCFAFA;
}
header .menu-mobile .container #menuToggle.open .position span:nth-of-type(1) {
  transform: rotate(-45deg) translate(-6px, 11px);
}
header .menu-mobile .container #menuToggle.open .position span:nth-of-type(3) {
  opacity: 0;
  transform: rotate(0deg) scale(0.2, 0.2);
}
header .menu {
  position: fixed;
  width: 100%;
  height: 100vh;
  left: 0;
  top: 0;
  z-index: 900;
  background-color: #FCFAFA;
  transform: translateX(-100%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.45s cubic-bezier(0.77, 0.2, 0.05, 1), opacity 0.35s ease, visibility 0s linear 0.45s;
  overflow-y: auto;
}
header .menu .contenu-menu {
  position: relative;
  z-index: 15;
  text-align: center;
  margin-top: 110px;
  padding: 0px 20px 40px;
}
header .menu .contenu-menu .main-menu {
  list-style: none;
  padding: 0px;
  margin: 0px 0px 40px 0px;
  text-align: left;
}
header .menu .contenu-menu .main-menu li {
  margin-bottom: 16px;
  position: relative;
}
header .menu .contenu-menu .main-menu li a {
  display: block;
  font-family: "DM Sans", sans-serif;
  font-size: 18px;
  font-weight: 500;
  color: #1B1227;
  padding: 10px 0px;
  border-radius: 0px;
  background-color: transparent;
}
header .menu .contenu-menu .main-menu li.sous-menu-ouvert > a {
  font-weight: 700;
}
header .menu .contenu-menu .main-menu li.sous-menu-ouvert {
  margin-bottom: 28px;
}
header .menu .contenu-menu .main-menu li.menu-item-has-children > a {
  padding-right: 54px;
}
header .menu .contenu-menu .main-menu .sub-menu-toggle {
  position: absolute;
  right: 2px;
  top: 2px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
  border: 0px;
  padding: 0px;
  cursor: pointer;
}
header .menu .contenu-menu .main-menu .sub-menu-toggle .chevron {
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid #1B1227;
  border-bottom: 2px solid #1B1227;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}
header .menu .contenu-menu .main-menu li.sous-menu-ouvert .sub-menu-toggle .chevron {
  transform: rotate(-135deg);
}
header .menu .contenu-menu .main-menu .sub-menu {
  list-style: none;
  margin: 0px;
  padding: 0px;
  max-height: 0px;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
header .menu .contenu-menu .main-menu .sub-menu li {
  margin: 8px 0px 0px 0px;
}
header .menu .contenu-menu .main-menu .sub-menu li a {
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  font-weight: 400;
  padding: 8px 0px;
  background-color: transparent;
  border-radius: 0px;
}
header .menu .contenu-menu .bouton {
  display: table;
  margin: 0px auto;
}
header .menu.visible {
  transform: translateX(0%);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: transform 0.45s cubic-bezier(0.77, 0.2, 0.05, 1), opacity 0.4s ease;
}

body.navshrink header {
  box-shadow: 0px 5px 25px rgba(0, 0, 0, 0.08);
}

body.navshrink.sous-menu-desktop-ouvert header {
  box-shadow: none;
}

body.menu-ouvert {
  overflow: hidden;
}
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
/* ============ HERO ============ */
.hero .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding-top: 64px;
  padding-bottom: 72px;
}
@media screen and (max-width: 1200px) {
  .hero .container {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
.hero .hero-contenu {
  position: relative;
  flex: 0 1 440px;
  max-width: 440px;
  padding: 60px 0px 80px 0px;
}
@media screen and (max-width: 1200px) {
  .hero .hero-contenu {
    flex: 1 1 auto;
    max-width: none;
    padding: 0px;
  }
}
.hero .hero-visuels {
  flex: 0 0 auto;
  display: flex;
  align-items: stretch;
  gap: 16px;
  height: 420px;
}
@media screen and (max-width: 1200px) {
  .hero .hero-visuels {
    width: 100%;
    height: 320px;
  }
}
@media screen and (max-width: 576px) {
  .hero .hero-visuels {
    height: 240px;
  }
}
.hero .hero-tuile {
  position: relative;
  flex: 0 1 auto;
  min-width: 0;
  aspect-ratio: 2/5;
  border-radius: 24px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  transition: aspect-ratio 0.5s ease, flex-grow 0.5s ease;
}
.hero .hero-tuile img, .hero .hero-tuile .img-placeholder {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  max-width: none;
  object-fit: cover;
  transition: opacity 0s ease;
}
.hero .hero-tuile .img-etroit {
  height: 100%;
  width: auto;
  aspect-ratio: 420/980;
  opacity: 1;
  transition-delay: 0.35s;
}
.hero .hero-tuile .img-carre {
  height: 100%;
  width: auto;
  aspect-ratio: 1/1;
  opacity: 0;
  transition-delay: 0.35s;
}
.hero .hero-tuile .degrade {
  position: absolute;
  inset: 0;
  background-color: #1B1227;
  opacity: 0.3;
  transition: opacity 0.3s ease;
}
.hero .hero-tuile .texte {
  position: absolute;
  bottom: 5px;
  left: 15px;
  z-index: 2;
  color: #FFFFFF;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 17px;
  letter-spacing: 0.5px;
  margin-bottom: 18px;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.hero .hero-tuile:first-child {
  aspect-ratio: 1/1;
}
.hero .hero-tuile:first-child .img-etroit {
  opacity: 0;
  transition-delay: 0s;
}
.hero .hero-tuile:first-child .img-carre {
  opacity: 1;
  transition-delay: 0s;
}
.hero .hero-tuile:first-child .degrade, .hero .hero-tuile:first-child .texte {
  opacity: 0;
}
@media screen and (max-width: 1200px) {
  .hero .hero-tuile {
    flex: 1 1 0;
    aspect-ratio: auto;
  }
  .hero .hero-tuile:first-child {
    flex-grow: 2.5;
  }
  .hero .hero-tuile .img-etroit, .hero .hero-tuile .img-carre {
    width: 100%;
    aspect-ratio: auto;
    left: 0;
    transform: none;
  }
}
.hero .hero-visuels:hover .hero-tuile {
  aspect-ratio: 2/5;
}
.hero .hero-visuels:hover .hero-tuile .img-etroit {
  opacity: 1;
  transition-delay: 0.35s;
}
.hero .hero-visuels:hover .hero-tuile .img-carre {
  opacity: 0;
  transition-delay: 0.35s;
}
.hero .hero-visuels:hover .hero-tuile .degrade, .hero .hero-visuels:hover .hero-tuile .texte {
  opacity: 1.3;
}
@media screen and (max-width: 1200px) {
  .hero .hero-visuels:hover .hero-tuile {
    aspect-ratio: auto;
    flex-grow: 1;
  }
}
.hero .hero-visuels:hover .hero-tuile .degrade {
  opacity: 0.3;
}
.hero .hero-visuels:hover .hero-tuile:hover {
  aspect-ratio: 1/1;
}
.hero .hero-visuels:hover .hero-tuile:hover .img-etroit {
  opacity: 0;
  transition-delay: 0s;
}
.hero .hero-visuels:hover .hero-tuile:hover .img-carre {
  opacity: 1;
  transition-delay: 0s;
}
.hero .hero-visuels:hover .hero-tuile:hover .degrade, .hero .hero-visuels:hover .hero-tuile:hover .texte {
  opacity: 0;
}
@media screen and (max-width: 1200px) {
  .hero .hero-visuels:hover .hero-tuile:hover {
    aspect-ratio: auto;
    flex-grow: 2.5;
  }
}

/* ============ CITATION ============ */
.bandeau-citation {
  background-color: #D0664B;
  color: #FFFFFF;
  text-align: center;
  padding: 50px 0px;
}
.bandeau-citation .titre h2 {
  font-family: "Veiran", sans-serif;
  font-weight: 400;
  color: #FFFFFF;
  max-width: 680px;
  margin: 0px auto 28px;
  font-size: 30px;
}
.bandeau-citation .contenu {
  max-width: 820px;
  margin: 0px auto;
}
.bandeau-citation .contenu p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  line-height: 25px;
}
.bandeau-citation .bouton.blanc {
  margin: 40px auto 0px auto;
}
.bandeau-citation .bouton.blanc a {
  color: #450C2B;
}

/* ============ PRISE EN CHARGE ============ */
.prise-en-charge {
  padding: 60px 0px 0px 0px;
}
.prise-en-charge .contenu {
  max-width: 560px;
  margin-bottom: 48px;
}
.prise-en-charge .pec-slider {
  padding-bottom: 12px;
  overflow: hidden;
}
.prise-en-charge .card-pec {
  position: relative;
  overflow: hidden;
}
.prise-en-charge .card-pec a {
  display: inline;
}
.prise-en-charge .card-pec a .titre-carte {
  position: absolute;
}
.prise-en-charge .card-pec a .forme {
  position: relative;
  z-index: 10;
  width: 100%;
  height: auto;
}
.prise-en-charge .card-pec a img:not(.forme) {
  position: absolute;
  z-index: 5;
  height: auto;
}
.prise-en-charge .card-pec a .titre-carte {
  position: absolute;
  z-index: 15;
  left: 26px;
  display: block;
  max-width: 62%;
  color: #FFFFFF;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.25;
}
@media screen and (max-width: 576px) {
  .prise-en-charge .card-pec a .titre-carte {
    font-size: 15px;
    line-height: 20px;
  }
}
.prise-en-charge .card-pec a .icone-fleche {
  position: absolute;
  z-index: 15;
  left: 26px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}
.prise-en-charge .impaire .titre-carte {
  top: 26px;
}
.prise-en-charge .impaire .icone-fleche {
  bottom: 26px;
}
.prise-en-charge .impaire img:not(.forme) {
  width: 55%;
  bottom: 0;
  right: 0;
  border-bottom-right-radius: 30px;
}
.prise-en-charge .paire .titre-carte {
  bottom: 26px;
}
.prise-en-charge .paire .icone-fleche {
  top: 26px;
}
.prise-en-charge .paire img:not(.forme) {
  width: 65%;
  top: 0;
  right: 0;
  border-top-right-radius: 30px;
}
.prise-en-charge .couleur-terracotta .icone-fleche {
  color: #D0664B;
}
.prise-en-charge .couleur-orange .icone-fleche {
  color: #F49360;
}
.prise-en-charge .couleur-bleu-clair .icone-fleche {
  color: #D1DEF1;
}
.prise-en-charge .couleur-bleu .icone-fleche {
  color: #A8C4E9;
}
.prise-en-charge .couleur-sauge .icone-fleche {
  color: #8F967E;
}
.prise-en-charge .couleur-vert .icone-fleche {
  color: #C9DAA7;
}
.prise-en-charge .couleur-bordeaux .icone-fleche {
  color: #450C2B;
}
.prise-en-charge .swiper-pagination {
  position: relative;
  margin-top: 28px;
  text-align: center;
}

.home .prise-en-charge {
  padding: 60px 0px;
}

/* ============ BANDEAU BADGE ============ */
.bandeau-badge {
  background-color: #D1DEF1;
  padding: 64px 0px;
}
@media screen and (max-width: 1200px) {
  .bandeau-badge {
    padding: 48px 0px;
  }
}
.bandeau-badge .bandeau-badge-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
}
@media screen and (max-width: 1200px) {
  .bandeau-badge .bandeau-badge-inner {
    flex-direction: column;
    text-align: center;
  }
}
.bandeau-badge img {
  position: absolute;
  left: 0px;
  top: -120px;
  width: 180px;
  height: 180px;
}
@media screen and (max-width: 1200px) {
  .bandeau-badge img {
    left: 50%;
    transform: translateX(-50%);
    top: -96px;
    width: 148px;
    height: 148px;
  }
}
.bandeau-badge .stamp-svg {
  width: 100%;
  height: 100%;
}
.bandeau-badge .stamp-fond {
  fill: #F49360;
}
.bandeau-badge .stamp-logo-fond {
  fill: rgba(255, 255, 255, 0.15);
}
.bandeau-badge .contenu {
  max-width: 760px;
  margin: 0px auto;
  text-align: center;
}
@media screen and (max-width: 1200px) {
  .bandeau-badge .contenu {
    margin: 80px auto 0px auto;
  }
}
.bandeau-badge .contenu p {
  margin: 0px;
  font-size: 16px;
  line-height: 27px;
}

/* ============ APPROCHE ============ */
.approche .row {
  margin: 0px;
}
.approche .approche-texte, .approche .approche-image {
  padding: 0px;
  height: 560px;
}
@media screen and (max-width: 991px) {
  .approche .approche-texte, .approche .approche-image {
    height: auto;
  }
}
.approche .approche-texte {
  background-color: #8F967E;
  color: #FFFFFF;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 1200px) {
  .approche .approche-texte {
    min-height: auto;
    padding: 56px 0px;
  }
}
.approche .approche-texte .bouton.blanc {
  margin-top: 30px;
}
.approche .approche-texte .bouton.blanc a {
  color: #8F967E;
}
.approche .approche-texte .bouton.blanc a:hover {
  color: #FFFFFF;
}
.approche .approche-texte-inner {
  padding: 40px 60px 40px 0px;
  max-width: 520px;
  margin-left: calc((100vw - 1140px) / 2);
}
@media screen and (min-width: 1400px) {
  .approche .approche-texte-inner {
    margin-left: calc((100vw - 1320px) / 2);
  }
}
@media screen and (max-width: 1200px) {
  .approche .approche-texte-inner {
    margin: 0px auto;
    padding: 0px 24px;
  }
}
.approche .approche-texte .titre h2 {
  font-family: "Veiran", sans-serif;
  font-weight: 400;
  color: #FFFFFF;
  font-size: 28px;
}
.approche .approche-texte .contenu p {
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  line-height: 25px;
}
.approche .approche-image img, .approche .approche-image .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ============ TARIFS ============ */
.tarifs {
  padding: 56px 0px 0px;
}
.tarifs .tarifs-liste {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 42px;
}
@media screen and (max-width: 1200px) {
  .tarifs .tarifs-liste {
    flex-direction: column;
    align-items: center;
    gap: 48px;
  }
}
.tarifs .carte-tarif {
  opacity: 0.6;
  transition: opacity 0.3s ease;
}
.tarifs .carte-tarif:first-child,
.tarifs .carte-tarif:hover {
  opacity: 1;
}
.tarifs .tarifs-liste:has(.carte-tarif:hover) .carte-tarif:not(:hover) {
  opacity: 0.6;
}
.tarifs .carte-tarif {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 0 1 370px;
  border: 2px solid #D0664B;
  border-radius: 20px;
  padding: 33px 40px 25px;
}
@media screen and (max-width: 1200px) {
  .tarifs .carte-tarif {
    flex: 0 0 auto;
    width: 100%;
    max-width: 576px;
    padding: 33px 24px 25px;
  }
}
.tarifs .carte-tarif.colonnes-2 {
  flex-basis: 576px;
}
@media screen and (max-width: 1200px) {
  .tarifs .carte-tarif.colonnes-2 {
    flex-basis: auto;
  }
}
.tarifs .badge-tarif {
  position: absolute;
  top: 0px;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 174px;
  padding: 5px 20px 4px;
  border-radius: 31px;
  background-color: #D0664B;
  color: #FCFAFA;
  font-size: 16px;
  font-weight: 500;
  line-height: 21px;
  text-align: center;
  white-space: nowrap;
}
.tarifs .carte-tarif-entete {
  text-align: center;
  color: #D0664B;
}
.tarifs .carte-tarif-entete h3 {
  font-family: "DM Sans", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 25px;
  margin: 0px;
}
.tarifs .carte-tarif-entete .duree {
  display: block;
  font-size: 16px;
  line-height: 21px;
  margin-top: 3px;
}
.tarifs .carte-tarif-colonnes {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}
@media screen and (max-width: 575px) {
  .tarifs .carte-tarif-colonnes {
    flex-direction: column;
  }
}
.tarifs .colonne-tarif {
  flex: 1 1 0;
  padding: 0px 21px;
  max-width: 248px;
}
.tarifs .colonne-tarif:first-child {
  padding-left: 0px;
}
.tarifs .colonne-tarif:last-child {
  padding-right: 0px;
}
.tarifs .colonne-tarif + .colonne-tarif {
  border-left: 1px solid #D0664B;
}
@media screen and (max-width: 575px) {
  .tarifs .colonne-tarif {
    max-width: none;
    padding: 0px;
  }
  .tarifs .colonne-tarif + .colonne-tarif {
    border-left: none;
    border-top: 1px solid #D0664B;
    margin-top: 16px;
    padding-top: 16px;
  }
}
.tarifs .colonne-tarif .titre-colonne {
  display: block;
  font-size: 16px;
  font-weight: 700;
  line-height: 21px;
  margin-bottom: 8px;
}
.tarifs .colonne-tarif ul {
  list-style: none;
  margin: 0px;
  padding: 0px;
}
.tarifs .colonne-tarif li {
  line-height: 30px;
  margin-bottom: 6px;
}
.tarifs .colonne-tarif li:last-child {
  margin-bottom: 0px;
}
.tarifs .colonne-tarif .prix {
  font-size: 18px;
  font-weight: 700;
  margin-right: 3px;
}
.tarifs .colonne-tarif .libelle {
  font-size: 16px;
  font-weight: 500;
}
.tarifs .contenu {
  margin-top: 24px;
}
.tarifs .contenu p {
  font-size: 14px;
  font-weight: 500;
  line-height: 25px;
}
.tarifs .bouton.bordeaux {
  margin: auto auto 0px;
  padding-top: 23px;
}
.tarifs .bouton.bordeaux a {
  min-width: 221px;
  text-align: center;
  background-color: #4B1432;
  border-color: #4B1432;
  color: #FCFAFA;
  font-size: 16px;
  font-weight: 500;
  line-height: 18px;
  letter-spacing: 0.8px;
  padding: 10px 24px;
}
.tarifs .bouton.bordeaux a:hover {
  background-color: transparent;
  color: #4B1432;
}

/* ============ FAQ ============ */
.faq {
  padding: 100px 0px;
}
@media screen and (max-width: 1200px) {
  .faq {
    padding: 64px 0px;
  }
}
.faq .faq-intro {
  padding-right: 40px;
}
@media screen and (max-width: 1200px) {
  .faq .faq-intro {
    padding-right: 0px;
    margin-bottom: 36px;
  }
}
.faq .faq-intro .contenu {
  margin-top: 20px;
}
.faq .faq-intro .contenu p {
  font-size: 15px;
  line-height: 25px;
}

/* ============ TEMOIGNAGES ============ */
.temoignages {
  background-color: #450C2B;
  color: #FFFFFF;
  padding: 88px 0px 56px;
}
@media screen and (max-width: 1200px) {
  .temoignages {
    padding: 56px 0px 40px;
  }
}
.temoignages .temoignages-top {
  display: flex;
  gap: 40px;
}
@media screen and (max-width: 1200px) {
  .temoignages .temoignages-top {
    flex-direction: column;
    gap: 16px;
  }
}
.temoignages .temoignages-intro {
  flex: 0 0 300px;
  max-width: none;
}
@media screen and (max-width: 1200px) {
  .temoignages .temoignages-intro {
    flex: 0 0 auto;
    width: 100% !important;
  }
}
.temoignages .temoignages-intro .titre h2 {
  color: #FFFFFF;
  font-size: 28px;
}
.temoignages .temoignages-intro .bouton {
  margin-top: 30px;
}
@media screen and (max-width: 1200px) {
  .temoignages .temoignages-intro .bouton {
    margin-bottom: 30px;
  }
}
.temoignages .temoignages-intro .bouton a {
  color: #450C2B;
}
.temoignages .temoignages-cartes {
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
}
@media screen and (max-width: 1200px) {
  .temoignages .temoignages-cartes {
    width: 100% !important;
  }
}
.temoignages .temoignages-slider {
  overflow: hidden;
  padding-bottom: 12px;
}
.temoignages .temoignages-slider .swiper-pagination {
  text-align: right !important;
}
@media screen and (max-width: 1200px) {
  .temoignages .temoignages-slider .swiper-pagination {
    text-align: center !important;
  }
}
.temoignages .temoignages-slider .swiper-pagination-bullet {
  background-color: rgba(215, 198, 206, 0.5) !important;
}
.temoignages .temoignages-slider .swiper-pagination-bullet-active {
  background-color: #D7C6CE !important;
}
.temoignages .swiper-slide {
  height: auto;
}
.temoignages .carte-temoignage {
  position: relative;
  height: 100%;
  box-sizing: border-box;
  border-radius: 20px;
  padding: 28px 48px;
  color: #1B1227;
}
.temoignages .carte-temoignage img {
  position: absolute;
  top: 15px;
  left: 20px;
}
.temoignages .carte-temoignage.creme {
  background-color: #EEF0E2;
}
.temoignages .carte-temoignage.mauve {
  background-color: #D7C6CE;
}
.temoignages .temoignages-slider .swiper-pagination {
  position: relative;
  margin-top: 28px;
  text-align: center;
}
.temoignages p {
  font-size: 14px;
  line-height: 22px;
  margin: 0px 0px 24px 0px;
}
.temoignages .auteur {
  display: block;
  text-align: right;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: 14px;
}
.temoignages .logos-partenaires {
  overflow: hidden;
  padding-top: 32px;
}
.temoignages .logos-track {
  display: flex;
  align-items: center;
  gap: 64px;
  width: max-content;
  animation: logos-scroll 26s linear infinite;
}
.temoignages .logo-partenaire {
  margin-top: 30px;
  display: flex;
  align-items: center;
}
.temoignages .logo-partenaire img {
  height: 40px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.5;
}
.temoignages .logo-partenaire .img-placeholder {
  width: 90px;
  height: 22px;
}

@keyframes logos-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-16.6666666667%);
  }
}
/* ============ ACTUALITES ============ */
.actualites {
  padding: 100px 0px;
  background-color: rgba(196, 210, 149, 0.15);
  text-align: center;
}
@media screen and (max-width: 1200px) {
  .actualites {
    padding: 64px 0px;
  }
}
.actualites .actualites-intro {
  max-width: 600px;
  margin: 0px auto 48px;
}
.actualites .actualites-liste {
  row-gap: 36px;
  text-align: left;
}
.actualites .actu-slider {
  text-align: left;
  padding-bottom: 12px;
  overflow: hidden;
}
.actualites .actu-slider .swiper-pagination {
  position: relative;
  margin-top: 28px;
  text-align: center;
}
.actualites .carte-actualite-image {
  position: relative;
  display: block;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 4/3;
  margin-bottom: 20px;
}
.actualites .carte-actualite-image img, .actualites .carte-actualite-image .img-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.actualites .carte-actualite-image .icone-fleche {
  position: absolute;
  left: 16px;
  bottom: 18px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: #FFFFFF;
  color: #D0664B;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0px 4px 14px rgba(0, 0, 0, 0.12);
}
.actualites .carte-actualite.couleur-orange .icone-fleche {
  color: #F49360;
}
.actualites .carte-actualite.couleur-bleu .icone-fleche {
  color: #A8C4E9;
}
.actualites .carte-actualite.couleur-terracotta .icone-fleche {
  color: #D0664B;
}
.actualites .carte-actualite {
  height: 100%;
  padding: 12px 12px 20px 12px;
  border-radius: 24px;
  background-color: transparent;
  transition: background-color 0.3s ease;
}
.actualites .carte-actualite .carte-actualite-meta,
.actualites .carte-actualite h3,
.actualites .carte-actualite .contenu {
  padding: 0px 8px;
}
.actualites .carte-actualite:hover {
  background-color: #FFFFFF;
}
.actualites .carte-actualite-meta {
  font-size: 13px;
  color: rgba(27, 18, 39, 0.6);
  margin-bottom: 8px;
}
.actualites .categorie {
  font-weight: 600;
}
.actualites .categorie.couleur-orange {
  color: #F49360;
}
.actualites .categorie.couleur-bleu {
  color: #A8C4E9;
}
.actualites .categorie.couleur-terracotta {
  color: #D0664B;
}
.actualites h3 {
  margin: 0px 0px 8px 0px;
  font-family: "DM Sans", sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
}
.actualites h3 a {
  color: #1B1227;
}
.actualites .contenu p {
  font-size: 14px;
  line-height: 21px;
  color: rgba(27, 18, 39, 0.7);
  margin: 0px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.actualites .actualites-vide {
  color: rgba(27, 18, 39, 0.6);
}
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
.page-corps {
  margin: 100px 0px;
}
@media screen and (max-width: 992px) {
  .page-corps {
    margin: 80px 0px;
  }
}
@media screen and (max-width: 767px) {
  .page-corps {
    margin: 60px 0px;
  }
}
.page-corps strong {
  font-weight: 700;
  color: #F49360;
}
.page-corps h2 {
  font-size: 28px;
}
.page-corps h3 {
  font-size: 22px;
  color: #F49360;
}
.page-corps a {
  text-decoration: underline;
  font-weight: 500;
  color: #D0664B;
}
.page-corps .wp-block-quote {
  position: relative;
  background-color: rgba(244, 147, 96, 0.1);
  border-radius: 25px;
  padding: 30px 50px;
}
.page-corps .wp-block-quote p {
  font-weight: 500;
  color: #F49360;
}
.page-corps .wp-block-quote p:last-of-type {
  text-align: right;
  margin-bottom: 0px;
}
.page-corps .wp-block-quote::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 20px;
  background-image: url(../../src/img/quote-orange.svg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100%;
  width: 17px;
  height: 27px;
}
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
/* ============ CONSULTATION (comme .approche, en bordeaux) ============ */
.approche.bordeaux .approche-texte {
  background-color: #450C2B;
}
.approche.bordeaux .approche-texte .bouton.blanc a {
  color: #450C2B;
}
.approche.bordeaux .approche-texte .bouton.blanc a:hover {
  color: #FFFFFF;
}

/* ============ QUESTIONNEMENTS (grille 3x3, 9 cartes par slide) ============ */
.quest-slider {
  padding-bottom: 12px;
  overflow: hidden;
}

.questionnements-grille {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
@media screen and (max-width: 1200px) {
  .questionnements-grille {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}
@media screen and (max-width: 640px) {
  .questionnements-grille {
    grid-template-columns: 1fr;
  }
}

.questionnements-grille .carte-pec .photo-carte {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 0px;
}

.questionnements-grille .carte-pec .photo-carte-clip {
  display: contents;
}

.questionnements-grille .carte-pec:nth-child(odd) {
  align-self: start;
  height: auto;
  padding: 0px;
}

.questionnements-grille .carte-pec:nth-child(odd) .photo-carte {
  position: static;
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0px;
  -webkit-clip-path: url(#carte-pec-decoupe);
  clip-path: url(#carte-pec-decoupe);
}

.questionnements-grille .carte-pec:nth-child(odd) .photo-carte-clip {
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: 160px 160px 0px 160px;
}

.questionnements-grille .carte-pec:nth-child(even) {
  align-self: start;
  height: auto;
  padding: 0px;
}

.questionnements-grille .carte-pec:nth-child(even) .photo-carte {
  position: static;
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0px;
}

.questionnements-grille .carte-pec:nth-child(even) .photo-carte-clip {
  display: block;
  width: 100%;
  -webkit-clip-path: url(#carte-pec-decoupe-inverse);
  clip-path: url(#carte-pec-decoupe-inverse);
}

.questionnements-grille .carte-pec:nth-child(even) .titre-carte {
  top: auto;
  bottom: 26px;
}

.questionnements-grille .carte-pec:nth-child(even) .icone-fleche {
  top: 26px;
  bottom: auto;
}

.quest-bouton-tout {
  margin: 8px auto 0;
  width: fit-content;
}
@charset "UTF-8";
/******************************************/
/***********      FONTS       ***********/
/******************************************/
@font-face {
  font-family: "DM Sans";
  src: url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype-variations"), url("../../src/fonts/DMSans-VariableFont_opsz,wght.ttf") format("truetype");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Veiran";
  src: url("../../src/fonts/veiran.regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/******************************************/
/***********      COLORS       ***********/
/******************************************/
/******************************************/
/***********      LAYOUT       ***********/
/******************************************/
/* ============ HERO (titre + catégories + photo) ============ */
.hero-article {
  padding: 64px 0px 80px;
}
@media screen and (max-width: 1200px) {
  .hero-article {
    padding: 40px 0px 48px;
  }
}
.hero-article .hero-article-texte {
  padding-right: 32px;
}
@media screen and (max-width: 1200px) {
  .hero-article .hero-article-texte {
    padding-right: 0px;
    margin-bottom: 32px;
  }
}
.hero-article .hero-article-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.hero-article .hero-article-intro {
  margin-top: 30px;
}
.hero-article .hero-article-intro p {
  font-weight: 500;
  font-size: 18px;
  color: #F49360;
}
.hero-article .hero-article-image img, .hero-article .hero-article-image .img-placeholder {
  width: 100%;
  height: 100%;
  aspect-ratio: 2/1;
  object-fit: cover;
  display: block;
  border-radius: 24px;
}

/* ============ CORPS DE L'ARTICLE ============ */
.article-corps h2 {
  font-size: 20px;
}
.article-corps strong {
  font-weight: 700;
  color: #F49360;
}
.article-corps a {
  text-decoration: underline;
  font-weight: 500;
  color: #D0664B;
}
.article-corps .wp-block-quote {
  position: relative;
  background-color: rgba(244, 147, 96, 0.1);
  border-radius: 25px;
  padding: 30px 50px;
}
.article-corps .wp-block-quote p {
  font-weight: 500;
  color: #F49360;
}
.article-corps .wp-block-quote p:last-of-type {
  text-align: right;
  margin-bottom: 0px;
}
.article-corps .wp-block-quote::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 20px;
  background-image: url(../../src/img/quote-orange.svg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100%;
  width: 17px;
  height: 27px;
}

iframe {
  width: 100%;
  height: 350px;
}

.actualites {
  padding-top: 30px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMuc2NzcyIsImFjdHVhbGl0ZXMuc2NzcyIsImFwcHJvY2hlLnNjc3MiLCJjb250YWN0LnNjc3MiLCJlbmZhbnQuc2NzcyIsImZvb3Rlci5zY3NzIiwiZ2xvYmFsZXMuc2NzcyIsImhlYWRlci5zY3NzIiwiaG9tZS5zY3NzIiwicGFnZS1kZWZhdWx0LnNjc3MiLCJwYXJlbnRzLnNjc3MiLCJzaW5nbGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtBQUNBO0FBQ0E7QUFFQTtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBTUE7RUFDQTtFQUNBOztBQU1KO0FBQ0E7QUFDQTtBQW1EQTtBQUNBO0FBQ0E7QUMzRUE7QUFDQTtFQUNJO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBOztBQUVKO0VBQ0k7RUFDQTtFQUNBOztBQUVKO0VBWko7SUFhUTs7OztBQUlSO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBTko7SUFPUTtJQUNBOzs7O0FBR1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsYURuQks7RUNvQkw7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDSSxrQkRYTztFQ1lQLGNEWk87RUNhUCxPRHZCSTs7O0FDeUJSO0VBQ0ksa0JEMUJJO0VDMkJKLGNEakJPO0VDa0JQLE9EbEJPOzs7QUNvQlg7RUFDSTtFQUNBLE9EMUJLOzs7QUM0QlQ7RUFDSSxrQkQ3Qks7RUM4QkwsY0Q5Qks7RUMrQkwsT0RyQ0k7OztBQ3VDUjtFQUNJLGtCRGpDUztFQ2tDVCxPRGpDRzs7O0FDbUNQO0VBQ0ksa0JEcENHO0VDcUNILGNEckNHO0VDc0NILE9EOUNJOzs7QUNnRFI7RUFDSSxrQkR6QlU7RUMwQlYsT0Q3Q1M7OztBQytDYjtFQUNJLGtCRGhEUztFQ2lEVCxjRGpEUztFQ2tEVCxPRHZESTs7O0FDMERSO0FBQ0E7RUFDSTs7QUFDQTtFQUZKO0lBR1E7Ozs7QUFHUjtFQUNJO0VBQ0E7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VDtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUNBO0VBQ0k7RUFDQSxPWDVCSDs7QVc4QkQ7RUFDSTtFQUNBOztBQUdSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdSO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSSIsImZpbGUiOiJlbG9fc2V4by5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKiogICAgICBGT05UUyAgICAgICAqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnRE0gU2Fucyc7XG4gICAgc3JjOiB1cmwoJy4uLy4uL3NyYy9mb250cy9ETVNhbnMtVmFyaWFibGVGb250X29wc3osd2dodC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlLXZhcmlhdGlvbnMnKSxcbiAgICAgICAgIHVybCgnLi4vLi4vc3JjL2ZvbnRzL0RNU2Fucy1WYXJpYWJsZUZvbnRfb3Bzeix3Z2h0LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgICBmb250LXdlaWdodDogMTAwIDEwMDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdWZWlyYW4nO1xuICAgIHNyYzogdXJsKCcuLi8uLi9zcmMvZm9udHMvdmVpcmFuLnJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIC8vIFVuIHNldWwgZmljaGllciAoZ3JhaXNzZSBcInJlZ3VsYXJcIiksIHBhcyB1bmUgcG9saWNlIHZhcmlhYmxlIGNvbW1lIERNXG4gICAgLy8gU2Fucy9TcGFjZSBHcm90ZXNrIGF2YW50IGVsbGUgLS0gZG9uYyBwYXMgZCdpbnRlcnZhbGxlIGZvbnQtd2VpZ2h0IGljaS5cbiAgICAvLyBMZXMgZW5kcm9pdHMgZHUgdGjDqG1lIHF1aSBkZW1hbmRlbnQgNjAwLzcwMCBzdXIgJGdyb3Rlc2sgYWZmaWNoZXJvbnRcbiAgICAvLyB1biBncmFzIFwic3ludGjDqXRpcXVlXCIgKHNpbXVsw6kgcGFyIGxlIG5hdmlnYXRldXIpIHRhbnQgcXVlIE1hcnRpbiBuZVxuICAgIC8vIGZvdXJuaXQgcGFzIHVuIGZpY2hpZXIgYm9sZCBkw6lkacOpLlxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuJGRtc2FuczogJ0RNIFNhbnMnLCBzYW5zLXNlcmlmO1xuJGdyb3Rlc2s6ICdWZWlyYW4nLCBzYW5zLXNlcmlmO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqICAgICAgQ09MT1JTICAgICAgICoqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLy8gTmV1dHJlc1xuJGJsYW5jOiAjRkZGRkZGO1xuJGNyZW1lOiAjRkNGQUZBOyAgIC8vIGZvbmQgZGUgcGFnZVxuJGVuY3JlOiAjMUIxMjI3OyAgIC8vIHRleHRlIHByaW5jaXBhbCAocHJlc3F1ZSBub2lyLCB0ZWludMOpIHZpb2xldClcblxuLy8gTWFycXVlXG4kdGVycmFjb3R0YTogI0QwNjY0QjsgICAvLyBiYW5kZWF1IGNpdGF0aW9uLCBmb290ZXJcbiRvcmFuZ2U6ICNGNDkzNjA7ICAgICAgIC8vIENUQSwgYWNjZW50XG4kYmxldS1jbGFpcjogI0QxREVGMTsgICAvLyBiYW5kZWF1IFwidGjDqXJhcGV1dGUgZW4gc2V4b2xvZ2llXCJcbiRibGV1OiAjQThDNEU5OyAgICAgICAgIC8vIGNhcnRlIFwicHJpc2UgZW4gY2hhcmdlXCJcbiRzYXVnZTogIzhGOTY3RTsgICAgICAgIC8vIHNlY3Rpb24gQXBwcm9jaGVcbiRib3JkZWF1eDogIzQ1MEMyQjsgICAgIC8vIHNlY3Rpb24gVMOpbW9pZ25hZ2VzXG4kYm9yZGVhdXgtdGFyaWY6ICM0QjE0MzI7IC8vIGJvdXRvbnMgXCJQcmVuZHJlIHJlbmRlei12b3VzXCIgc2VjdGlvbiBUYXJpZnMgKGhvbWUpLCB2YWxldXIgWERcbiR2ZXJ0OiAjQzlEQUE3OyAgICAgICAgIC8vIDRlIGNvdWxldXIgZGVzIGNhcnRlcyBcIlByaXNlIGVuIGNoYXJnZVwiL1wiUXVlc3Rpb25uZW1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAvLyAodmFsZXVyIGV4YWN0ZSBjb25maXJtw6llIHBhciBNYXJ0aW4sIHJlbXBsYWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgLy8gbCdlc3RpbWF0aW9uIHZpc3VlbGxlIHByw6ljw6lkZW50ZSlcblxuLy8gQ291bGV1ciBcInZpb2xldFwiIGR1IGJvdXRvbiBcIsOJY291dGVyIGxlIHBvZGNhc3RcIiAobW9kw6hsZSBkZSBwYWdlIEVuZmFudCxcbi8vIGV4LiBcIkV4Y2l0YXRpb24gZXQgcGxhaXNpclwiKSAtLSBtw6ptZSBjb250cmFpbnRlIHF1ZSAkdmVydCBjaS1kZXNzdXMgOlxuLy8gZXN0aW3DqWUgdmlzdWVsbGVtZW50IGRlcHVpcyBsYSBtYXF1ZXR0ZSBYRCAoem9vbS9JbnNwZWN0IG5vbiBmaWFibGUgZGFuc1xuLy8gbGUgdmlld2VyIHV0aWxpc8OpIGljaSksIMOgIGNvbmZpcm1lciBhdmVjIE1hcnRpbiBzaSBsYSB0ZWludGUgbmVcbi8vIGNvcnJlc3BvbmQgcGFzIGV4YWN0ZW1lbnQgw6Agc29uIGludGVudGlvbi5cbiR2aW9sZXQ6ICM0QjJFNkI7XG5cbi8vIEJhZGdlcyAvIHRhZ3MgKGTDqWNsaW5haXNvbnMgcGFzdGVsKVxuJGJhZGdlLXBlY2hlOiAjRjVEOUM4O1xuJGJhZGdlLXNhdWdlOiAjRTNFNkQzO1xuJHRlbW9pZ25hZ2UtY3JlbWU6ICNFRUYwRTI7XG4kdGVtb2lnbmFnZS1tYXV2ZTogI0Q3QzZDRTtcblxuLy8gUGFsZXR0ZSA2IGNvdWxldXJzIGRlcyBjYXJ0ZXMgXCJQcmlzZSBlbiBjaGFyZ2VcIiAoaG9tZSksIFwiUXVlc3Rpb25uZW1lbnRzXCJcbi8vIChwYWdlIFBhcmVudHMpIGV0IGNhc2VzIFwiY2hpZmZyZXNcIiBjYXJyw6llcyAocGFnZSBFbmZhbnQpIC0tIHZhbGV1cnNcbi8vIGV4YWN0ZXMgZm91cm5pZXMgcGFyIE1hcnRpbi4gJHRlcnJhY290dGEgZXQgJHNhdWdlIGV4aXN0ZW50IGTDqWrDoCBtYWlzIHNvbnRcbi8vIGF1c3NpIHV0aWxpc8OpZXMgYWlsbGV1cnMgc3VyIGxlIHNpdGUgKGJhbmRlYXUgY2l0YXRpb24vZm9vdGVyL2FjdHVhbGl0w6lzXG4vLyBwb3VyICR0ZXJyYWNvdHRhLCBzZWN0aW9uIEFwcHJvY2hlL0NvbnRhY3QgcG91ciAkc2F1Z2UpIGF2ZWMgbGV1cnMgdmFsZXVyc1xuLy8gZCdvcmlnaW5lIGluY2hhbmfDqWVzIDogb24gaW50cm9kdWl0IGRvbmMgZGVzIHZhcmlhYmxlcyBkw6lkacOpZXMgcG91ciBuZVxuLy8gcGFzIHLDqXBlcmN1dGVyIGNlIG5vdXZlYXUgdG9uIHN1ciBjZXMgYXV0cmVzIMOpbMOpbWVudHMuXG4kcG91cnByZTogIzYwMUQ0MDtcbiRwZWNoZTogI0Y2QTc3NTtcbiRjYXJ0ZS10ZXJyYWNvdHRhOiAjRDk3RDVFO1xuJGJsZXVldDogI0JCQ0VFQztcbiRjYXJ0ZS1zYXVnZTogIzk1QTA4NztcblxuLy8gRm9uZCBkdSBoZXJvIGRlIGxhIHBhZ2UgXCJBcHByb2NoZVwiIChyb3NlIGNsYWlyIGRlcnJpw6hyZSB0ZXh0ZSArIHBob3RvKSAtLVxuLy8gbcOqbWUgbGltaXRlIHF1ZSAkdmVydC8kdmlvbGV0IGNpLWRlc3N1cyA6IGVzdGltw6llIHZpc3VlbGxlbWVudCBkZXB1aXMgbGFcbi8vIG1hcXVldHRlIFhEIChwYWdlIFwiQXBwcm9jaGVcIiksIHpvb20vSW5zcGVjdCBub24gZXhwbG9pdGFibGUgZGUgZmHDp29uXG4vLyBmaWFibGUgZGFucyBsZSB2aWV3ZXIgdXRpbGlzw6kgaWNpIC0tIMOgIGNvbmZpcm1lciBhdmVjIE1hcnRpbi5cbiRyb3NlLWhlcm86ICNGNEQ2Q0Q7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKiogICAgICBMQVlPVVQgICAgICAgKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vLyBVbiBzZXVsIHBhbGllciBtb2JpbGUgcG91ciB0b3V0IGxlIHNpdGUgKG5hdiBtb2JpbGUgY29tcHJpc2UpXG4kbW9iaWxlOiAxMjAwcHg7XG5cbi8vIEZvbmQgZGVzIHNlY3Rpb25zIGFjdHVhbGl0w6lzIChob21lICsgYXJ0aWNsZXMgbGnDqXMgZW4gYmFzIGQndW4gYXJ0aWNsZSkgLS0gdmFsZXVyIGZvdXJuaWUgcGFyIE1hcnRpbiwgYXBwbGlxdcOpZSDDoCAxNSAlIGQnb3BhY2l0w6kuXG4kZm9uZC1hY3R1YWxpdGU6ICNDNEQyOTU7XG4iLCIvLyA9PT09PT09PT09PT09PT09PSBQQUdFIEFDVFVBTElURVMgKHRlbXBsYXRlLWFjdHVhbGl0ZXMucGhwICsgY2F0ZWdvcnkucGhwKSA9PT09PT09PT09PT09PT09PVxuLy8gZ3VscC1zYXNzIGNvbXBpbGUgY2hhcXVlIGZpY2hpZXIgLnNjc3MgaW5kw6lwZW5kYW1tZW50IGF2YW50IGNvbmNhdMOpbmF0aW9uXG4vLyAoY2YuIGd1bHBmaWxlLmpzKSA6IGNldCBpbXBvcnQgZXN0IGRvbmMgbsOpY2Vzc2FpcmUgaWNpIGF1c3NpLCBjb21tZSBkYW5zXG4vLyBjb250YWN0LnNjc3MvcGFyZW50cy5zY3NzLlxuQGltcG9ydCAndmFyaWFibGVzJztcblxuLy8gTGUgaGVybyAoLmhlcm8tY29udGFjdCkgZXN0IGTDqWrDoCBkw6lmaW5pIGRhbnMgY29udGFjdC5zY3NzIGV0IG4nZXN0IHBhc1xuLy8gbmVzdGVkIHNvdXMgdW4gd3JhcHBlciBzcMOpY2lmaXF1ZSDDoCBsYSBwYWdlIENvbnRhY3QgOiBpbCBzJ2FwcGxpcXVlIGRvbmNcbi8vIHRlbCBxdWVsIGljaSwgYXVjdW5lIHLDqGdsZSDDoCBkdXBsaXF1ZXIuXG5cbi8qID09PT09PT09PT09PSBURVhURSBEJ0lOVFJPIChBQ0YpID09PT09PT09PT09PSAqL1xuLmFjdHVhbGl0ZXMtaW50cm8ge1xuICAgIHBhZGRpbmc6IDcycHggMHB4IDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLnRpdHJlIHtcbiAgICAgICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggYXV0byAxOHB4O1xuICAgIH1cbiAgICAuY29udGVudSB7XG4gICAgICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgICAgIG1hcmdpbjogMHB4IGF1dG87XG4gICAgICAgIGNvbG9yOiByZ2JhKCRlbmNyZSwgMC43NSk7XG4gICAgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZzogNDhweCAwcHggMHB4O1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09IFBBU1RJTExFUyBDQVRFR09SSUVTID09PT09PT09PT09PSAqL1xuLnBpbHVsZXMtY2F0ZWdvcmllcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbjogNDBweCAwcHggNTZweDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDMycHggMHB4IDQwcHg7XG4gICAgfVxufVxuLnBpbHVsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMHB4IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1mYW1pbHk6ICRkbXNhbnM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xufVxuLy8gRWZmZXQgZGUgaG92ZXIgZW4gY291bGV1cnMgaW52ZXJzw6llcywgY29tbWUgLmJvdXRvbiAoZ2xvYmFsZXMuc2NzcykgOlxuLy8gcGFzIGQnw6l0YXQgXCJhY3RpZlwiIHPDqXBhcsOpLCBqdXN0ZSBsZSBzdXJ2b2wuXG4ucGlsdWxlLXRvdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRib3JkZWF1eDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZWF1eDtcbiAgICBjb2xvcjogJGJsYW5jO1xufVxuLnBpbHVsZS10b3V0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhbmM7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVhdXg7XG4gICAgY29sb3I6ICRib3JkZWF1eDtcbn1cbi5waWx1bGUuY291bGV1ci1vcmFuZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJG9yYW5nZSwgMC4xOCk7XG4gICAgY29sb3I6ICRvcmFuZ2U7XG59XG4ucGlsdWxlLmNvdWxldXItb3JhbmdlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuICAgIGJvcmRlci1jb2xvcjogJG9yYW5nZTtcbiAgICBjb2xvcjogJGJsYW5jO1xufVxuLnBpbHVsZS5jb3VsZXVyLWJsZXUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGV1LWNsYWlyO1xuICAgIGNvbG9yOiAkYmxldTtcbn1cbi5waWx1bGUuY291bGV1ci1ibGV1OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxldTtcbiAgICBib3JkZXItY29sb3I6ICRibGV1O1xuICAgIGNvbG9yOiAkYmxhbmM7XG59XG4ucGlsdWxlLmNvdWxldXItdGVycmFjb3R0YSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLXBlY2hlO1xuICAgIGNvbG9yOiAkdGVycmFjb3R0YTtcbn1cbi5waWx1bGUuY291bGV1ci10ZXJyYWNvdHRhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICBib3JkZXItY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgIGNvbG9yOiAkYmxhbmM7XG59XG5cbi8qID09PT09PT09PT09PSBHUklMTEUgREVTIEFDVFVTICg0IGNvbG9ubmVzIHggMiBsaWduZXMsIHN3aXBlcikgPT09PT09PT09PT09ICovXG4uYWN0dWFsaXRlcy1saXN0ZS1zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwcHggMHB4IDEwMHB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZzogMHB4IDBweCA2NHB4O1xuICAgIH1cbn1cbi5hY3R1YWxpdGVzLWdyaWxsZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgIHJvdy1nYXA6IDQ0cHg7XG4gICAgY29sdW1uLWdhcDogMjhweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgIHJvdy1nYXA6IDMycHg7XG4gICAgICAgIGNvbHVtbi1nYXA6IDIwcHg7XG4gICAgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIH1cbn1cbi5hY3R1YWxpdGVzLXNsaWRlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAuc3dpcGVyLXBhZ2luYXRpb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi10b3A6IDM2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG4uYXVjdW4tYXJ0aWNsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiByZ2JhKCRlbmNyZSwgMC42KTtcbn1cblxuLy8gQ2FydGVzIGFjdHVzIDogbcOqbWUgZ2FiYXJpdCB2aXN1ZWwgcXVlIHN1ciBsYSBob21lICguY2FydGUtYWN0dWFsaXRlLFxuLy8gY2YuIGhvbWUucGhwL2hvbWUuc2NzcykgLS0gcsOoZ2xlcyBkdXBsaXF1w6llcyBpY2kgY2FyIHN1ciBsYSBob21lIGVsbGVzXG4vLyBzb250IG5lc3RlZCBzb3VzIC5hY3R1YWxpdGVzIChzZWN0aW9uIHNww6ljaWZpcXVlIMOgIGxhIGhvbWUpLCBkb25jIHBhc1xuLy8gcsOpdXRpbGlzYWJsZXMgdGVsbGVzIHF1ZWxsZXMgc3VyIGNldHRlIHBhZ2UgKG3Dqm1lIGxvZ2lxdWUgcXVlIGxhXG4vLyBkdXBsaWNhdGlvbiBkZXMgPGNsaXBQYXRoPiBkYW5zIHBhcmVudHMuc2NzcykuXG4uYWN0dWFsaXRlcy1wYWdlIHtcbiAgICAuY2FydGUtYWN0dWFsaXRlLWltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiA0IC8gMztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgaW1nLCAuaW1nLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICAuaWNvbmUtZmxlY2hlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgICAgICBib3R0b206IDE4cHg7XG4gICAgICAgICAgICB3aWR0aDogMzhweDtcbiAgICAgICAgICAgIGhlaWdodDogMzhweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgIGNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydGUtYWN0dWFsaXRlLmNvdWxldXItb3JhbmdlIC5pY29uZS1mbGVjaGUgeyBjb2xvcjogJG9yYW5nZTsgfVxuICAgIC5jYXJ0ZS1hY3R1YWxpdGUuY291bGV1ci1ibGV1IC5pY29uZS1mbGVjaGUgeyBjb2xvcjogJGJsZXU7IH1cbiAgICAuY2FydGUtYWN0dWFsaXRlLmNvdWxldXItdGVycmFjb3R0YSAuaWNvbmUtZmxlY2hlIHsgY29sb3I6ICR0ZXJyYWNvdHRhOyB9XG4gICAgLmNhcnRlLWFjdHVhbGl0ZS1tZXRhIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBjb2xvcjogcmdiYSgkZW5jcmUsIDAuNik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG4gICAgLmNhdGVnb3JpZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuY2F0ZWdvcmllLmNvdWxldXItb3JhbmdlIHsgY29sb3I6ICRvcmFuZ2U7IH1cbiAgICAuY2F0ZWdvcmllLmNvdWxldXItYmxldSB7IGNvbG9yOiAkYmxldTsgfVxuICAgIC5jYXRlZ29yaWUuY291bGV1ci10ZXJyYWNvdHRhIHsgY29sb3I6ICR0ZXJyYWNvdHRhOyB9XG4gICAgLmNhcnRlLWFjdHVhbGl0ZSBoMyB7XG4gICAgICAgIG1hcmdpbjogMHB4IDBweCA4cHggMHB4O1xuICAgICAgICBmb250LWZhbWlseTogJGRtc2FucztcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBhIHsgY29sb3I6ICRlbmNyZTsgfVxuICAgIH1cbiAgICAuY2FydGUtYWN0dWFsaXRlIC5jb250ZW51IHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICAgICAgY29sb3I6IHJnYmEoJGVuY3JlLCAwLjcpO1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB9XG59XG4iLCIvLyBTdHlsZXMgOiBwYWdlIFwiQXBwcm9jaGVcIlxuQGltcG9ydCAndmFyaWFibGVzJztcblxuLyogPT09PT09PT09PT09IEhFUk8gPT09PT09PT09PT09ICovXG4vLyBNw6ptZSBtb2TDqGxlIHF1ZSAuaGVybyBkZSBsYSBob21lIChob21lLnNjc3MpIC0tIC5oZXJvLWNvbnRlbnUgaWRlbnRpcXVlXG4vLyAtLSBtYWlzIHVuZSBTRVVMRSBwaG90byAocsOpcMOpdGV1ciByZW1wbGFjw6kgcGFyIHVuIGNoYW1wIGltYWdlIHNpbXBsZSxcbi8vIGZvcm1hdCBcImhlcm8tYXBwcm9jaGVcIiAxMjAweDYwMCBjcm9wKSDDoCBsYSBwbGFjZSBkZXMgMyB0dWlsZXMsIHN1ciB1blxuLy8gZm9uZCBkZSBjb3VsZXVyIHBsZWluZSBsYXJnZXVyIChhYnNlbnQgZHUgaGVybyBob21lKS5cbi5oZXJvLWFwcHJvY2hlIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDQwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNzJweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaGVyby1jb250ZW51IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4OiAwIDEgNDQwcHg7XG4gICAgICAgIG1heC13aWR0aDogNDQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDYwcHggMHB4IDgwcHggMHB4O1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBMYXJnZXVyIGZpeGUgKGNhbMOpZSBzdXIgbGUgcmF0aW8gMTIwMC82MDAgPSAyLzEgZHUgZm9ybWF0IFwiaGVyby1hcHByb2NoZVwiKVxuICAgIC8vIGV0IGhhdXRldXIgaWRlbnRpcXVlIMOgIC5oZXJvLXZpc3VlbHMgZGUgbGEgaG9tZSwgcG91ciByZXN0ZXIgYXUgbcOqbWVcbiAgICAvLyBnYWJhcml0IGfDqW7DqXJhbCBtYWxncsOpIGxhIHBob3RvIHVuaXF1ZS5cbiAgICAuaGVyby1waG90byB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogODQwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAyIC8gMTtcbiAgICAgICAgaGVpZ2h0OiA0MjBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgaW1nLCAuaW1nLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMzIwcHg7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgICAgICAgICAgIGhlaWdodDogMjQwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PSBESVBMT01FID09PT09PT09PT09PSAqL1xuLmRpcGxvbWUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA5NnB4IDBweDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgIHBhZGRpbmc6IDU2cHggMHB4O1xuICAgIH1cbiAgICAuZGlwbG9tZS1pbnRybyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgfVxuICAgIC5lbmNhZHJlIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2NDBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJG9yYW5nZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgcGFkZGluZzogMjRweCAzMnB4O1xuICAgIH1cbiAgICAudGl0cmUtZGlwbG9tZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICAgICAgbWFyZ2luOiAwcHggMHB4IDZweDtcbiAgICB9XG4gICAgLnNvdXMtdGl0cmUtZGlwbG9tZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICB9XG4gICAgLmFjY29tcGFnbmVyLWludHJvIHtcbiAgICAgICAgbWFyZ2luOiA1NnB4IDBweCA0MHB4O1xuICAgICAgICAudGl0cmUgaDIge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIENhcnRlcyBib3Jkw6llcyAobWFxdWV0dGUgbWlzZSDDoCBqb3VyIGR1IDIyLzA5LzIwMjYsIHNlY3Rpb24gXCJQcmlzZSBlblxuICAgIC8vIGNoYXJnZVwiIC0tIGJhZGdlIC5iYWRnZS5zYXVnZSBcIlByaXNlIGVuIGNoYXJnZVwiIGp1c3RlIGF1LWRlc3N1cykgOiB1blxuICAgIC8vIGVuY2FkcsOpIHBhciBjb2xvbm5lIChhdSBsaWV1IGQndW5lIHNpbXBsZSBsaXN0ZSDDoCBwdWNlcyksIGNvdWxldXIgZGVcbiAgICAvLyBib3JkdXJlL3RpdHJlIGRpZmbDqXJlbnRlIHBhciBjb2xvbm5lLCB0ZXh0ZSBjZW50csOpIHNhbnMgcHVjZSwgXCIuLi5cIlxuICAgIC8vIGTDqWNvcmF0aWYgZW4gYmFzIGRlIGNhcnRlIChwYXMgZGUgbm91dmVhdSBjaGFtcCBBQ0YgOiBwdXIgQ1NTKS5cbiAgICAuZGlwbG9tZS1jb2xvbm5lcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBnYXA6IDQwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRpcGxvbWUtY29sb25uZSB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRvcmFuZ2U7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMjRweCAyOHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4IDBweCAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgY29sb3I6ICRlbmNyZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnLi4uJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgkZW5jcmUsIDAuMzUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kaXBsb21lLWNvbG9ubmU6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRlcnJhY290dGE7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGlwbG9tZS1jb2xvbm5lOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmxldTtcbiAgICAgICAgaDMge1xuICAgICAgICAgICAgY29sb3I6ICRibGV1O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kaXBsb21lLWNvbG9ubmU6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICBib3JkZXItY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5kaXBsb21lLWNvbG9ubmU6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgLy8gJHZlcnQgKGV0IG5vbiAkc2F1Z2UpIDogY291bGV1ciBkw6lkacOpZSDDoCBsYSA0ZSBjYXJ0ZSBcIlByaXNlIGVuXG4gICAgICAgIC8vIGNoYXJnZVwiL1wiUXVlc3Rpb25uZW1lbnRzXCIsIGNmLiBsZSBjb21tZW50YWlyZSBzdXIgY2V0dGUgdmFyaWFibGVcbiAgICAgICAgLy8gZGFucyBfdmFyaWFibGVzLnNjc3MgLS0gYWxpZ27DqWUgYXZlYyBsYSBtYXF1ZXR0ZSBtaXNlIMOgIGpvdXIuXG4gICAgICAgIGJvcmRlci1jb2xvcjogJHZlcnQ7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkdmVydDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGlwbG9tZS1ib3V0b24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgbWFyZ2luOiAwcHggYXV0bztcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgbWFyZ2luOiAwcHggYXV0byA1MHB4IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVycmFjb3R0YSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHRlcnJhY290dGEgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFuYyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJyYWNvdHRhICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PSBUUkFOU01FVFRSRSA9PT09PT09PT09PT0gKi9cbi8vIE3Dqm1lIGdhYmFyaXQgcXVlIC5hcHByb2NoZSAoc2VjdGlvbiBzcGxpdCB0ZXh0ZS9waG90byBwbGVpbmUgbGFyZ2V1cikgZGVcbi8vIGxhIGhvbWUsIGNmLiBob21lLnNjc3MgLS0gZHVwbGlxdcOpIGljaSBzb3VzIHVuIG5vbSBkw6lkacOpIChjb3VsZXVycyBldFxuLy8gbWFjYXJvbiBkaWZmw6lyZW50cywgcGFzIGRlIGJvdXRvbikgcGx1dMO0dCBxdWUgZGUgZ8OpbsOpcmFsaXNlciAuYXBwcm9jaGVcbi8vIHBvdXIgbmUgcGFzIHJpc3F1ZXIgZGUgcsOpcGVyY3V0ZXIgdW4gY2hhbmdlbWVudCBzdXIgbGEgaG9tZS5cbi50cmFuc21ldHRyZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC5yb3cgeyBtYXJnaW46IDBweDsgfVxuICAgIC50cmFuc21ldHRyZS10ZXh0ZSwgLnRyYW5zbWV0dHJlLWltYWdlIHtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAvLyBIYXV0ZXVyIGZpeGUgKGV0IG5vbiBtaW4taGVpZ2h0KSA6IHZvaXIgLmFwcHJvY2hlIGRhbnMgaG9tZS5zY3NzXG4gICAgICAgIC8vIHBvdXIgbCdleHBsaWNhdGlvbiAobGUgcmF0aW8gaW50cmluc8OocXVlIGRlIGwnaW1hZ2UgZmFpdCBxdWVcbiAgICAgICAgLy8gbWluLWhlaWdodCBzZXVsIGVzdCBpZ25vcsOpIMOgIGNhdXNlIGR1IHN0cmV0Y2ggZmxleCkuIFLDqXBlcmN1dMOpXG4gICAgICAgIC8vIGRlcHVpcyAuYXBwcm9jaGUgZHUgbcOqbWUgZ2FiYXJpdC4gNzIwcHggPSBoYXV0ZXVyIG7DqWNlc3NhaXJlIGF1XG4gICAgICAgIC8vIHRleHRlICg0IHBhcmFncmFwaGVzKSBwb3VyIG5lIHBhcyBkw6lib3JkZXIgZHUgYmxvYy5cbiAgICAgICAgaGVpZ2h0OiA3MjBweDtcbiAgICAgICAgLy8gTcOqbWUgY29ycmVjdGlvbiBkZSBzZXVpbCBxdWUgLmFwcHJvY2hlIChob21lLnNjc3MpIDogYWxpZ27DqSBzdXJcbiAgICAgICAgLy8gbCdlbXBpbGVtZW50IHLDqWVsIGRlIGNvbC1sZy02ICg5OTJweCkgZXQgbm9uIHN1ciAkbW9iaWxlICgxMjAwcHgpLlxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuICAgIC50cmFuc21ldHRyZS10ZXh0ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgIGNvbG9yOiAkYmxhbmM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAxMDZweCAwcHggNTZweCAwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRyYW5zbWV0dHJlLXRleHRlLWlubmVyIHtcbiAgICAgICAgcGFkZGluZzogNDBweCA2MHB4IDQwcHggMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDUyMHB4O1xuICAgICAgICAvLyBNw6ptZSByZWNhbGN1bCBkJ2FsaWduZW1lbnQgZGUgZ3JpbGxlIHF1ZSAuYXBwcm9jaGUtdGV4dGUtaW5uZXJcbiAgICAgICAgLy8gKGhvbWUuc2NzcykgOiBsYSBzZWN0aW9uIGVzdCBlbiBwbGVpbmUgbGFyZ2V1ciAocm93IGctMCksIGhvcnNcbiAgICAgICAgLy8gLmNvbnRhaW5lciBCb290c3RyYXAuXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtIDExNDBweCkgLyAyKTtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygoMTAwdncgLSAxMzIwcHgpIC8gMik7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgbWFyZ2luOiAwcHggYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweCAyNHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEV4Y2VwdGlvbiA6IGNlIHRpdHJlIHJlc3RlIGVuIFZlaXJhbiBSZWd1bGFyIChkZW1hbmRlIGRlIE1hcnRpbiBkdVxuICAgIC8vIDI0LzA5LzIwMjYpLCBhbG9ycyBxdWUgbGEgcsOoZ2xlIGfDqW7DqXJpcXVlIC50aXRyZSAoZ2xvYmFsZXMuc2NzcylcbiAgICAvLyBlc3QgcGFzc8OpZSBlbiBETSBTZW1pIEJvbGQgcGFyIGTDqWZhdXQuXG4gICAgLnRyYW5zbWV0dHJlLXRleHRlIC50aXRyZSBoMiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZ3JvdGVzaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgIH1cbiAgICAudHJhbnNtZXR0cmUtdGV4dGUgLmNvbnRlbnUgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRibGFuYywgMC45Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIG1hcmdpbjogMHB4IDBweCAxNnB4O1xuICAgICAgICAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgICB9XG4gICAgLnRyYW5zbWV0dHJlLWltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpbWcsIC5pbWctcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5tYWNhcm9uIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgIHRvcDogOTZweDtcbiAgICAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTgwcHg7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICB0b3A6IC03NnB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNDhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0OHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT0gQkFOREVBVSAodGV4dGUgY2VudHLDqSwgLmJhbmRlYXUtY2l0YXRpb24gcGFydGFnw6kpID09PT09PT09PT09PSAqL1xuLy8gLmJhbmRlYXUtY2l0YXRpb24gbHVpLW3Dqm1lIGVzdCBkw6lqw6AgZMOpZmluaSBnbG9iYWxlbWVudCBkYW5zIGhvbWUuc2NzcyBldFxuLy8gcsOpdXRpbGlzw6kgdGVsIHF1ZWwgKGNmLiB0ZW1wbGF0ZS1hcHByb2NoZS5waHApLiBJY2ksIGp1c3RlIHVuIGVzcGFjZW1lbnRcbi8vIGVudHJlIHBhcmFncmFwaGVzIHBvdXIgbGUgdGV4dGUgcGx1cyBsb25nIGRlIGNldHRlIHBhZ2UgKGxhIGhvbWUgbidhXG4vLyBxdSd1biBzZXVsIHBhcmFncmFwaGUgY291cnQpIC0tIHNjb3DDqSDDoCAucGFnZS1hcHByb2NoZSBwb3VyIG5lIHJpZW5cbi8vIGNoYW5nZXIgc3VyIGxhIGhvbWUuXG4ucGFnZS1hcHByb2NoZSAuYmFuZGVhdS1jaXRhdGlvbiAuY29udGVudSBwIHtcbiAgICBtYXJnaW46IDBweCAwcHggMTZweDtcbiAgICAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09IFBBR0UgQ09OVEFDVCAodGVtcGxhdGUtY29udGFjdC5waHApID09PT09PT09PT09PT09PT09XG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG4vLyBIZXJvIGJhbm5pw6hyZSAocGhvdG8gcGxlaW5lIGxhcmdldXIgKyBmb3JtZSBib3JkZWF1eCBcImZvcm1lLWhlYWRlci5zdmdcIiksXG4vLyBzZWN0aW9uIGRlIHByaXNlIGRlIGNvbnRhY3QgKHRleHRlICsgY29vcmRvbm7DqWVzICsgZm9ybXVsYWlyZSBDb250YWN0XG4vLyBGb3JtIDcgKyBtYWNhcm9uIEFDRikuIExhIHNlY3Rpb24gVMOpbW9pZ25hZ2VzIHBsdXMgYmFzIHLDqXV0aWxpc2UgbGVcbi8vIG1hcmt1cCBFVCBsZXMgY2xhc3NlcyBkZSBob21lLnNjc3MgKC50ZW1vaWduYWdlcywgLmNhcnRlLXRlbW9pZ25hZ2UsXG4vLyAubG9nb3MtcGFydGVuYWlyZXMuLi4pIDogYXVjdW5lIHLDqGdsZSDDoCBkdXBsaXF1ZXIgaWNpIHBvdXIgZWxsZS5cblxuLmhlcm8tY29udGFjdCB7XG4gICAgLnBob3RvIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLy8gSGF1dGV1cnMgcsOpZHVpdGVzIGQnZW52aXJvbiAyNSUgKGRlbWFuZGUgZGUgTWFydGluIGR1IDMwLzA5LzIwMjYsXG4gICAgICAgIC8vIHZhdXQgcG91ciB0b3V0ZXMgbGVzIHBhZ2VzIHF1aSB1dGlsaXNlbnQgY2UgaGVybyA6IENvbnRhY3QsXG4gICAgICAgIC8vIEFjdHVhbGl0w6lzLCBjYXTDqWdvcmllcyBldCBtb2TDqGxlIEVuZmFudCkuIEF2YW50IDogNTMwcHggLyAzM3Z3IC9cbiAgICAgICAgLy8gNDIwcHggLyAzNjBweC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVmFyaWFibGVzIHBhcnRhZ8OpZXMgcGFyIGxhIHBob3RvLCBsYSBmb3JtZSBldCBsZSB0aXRyZSwgcG91ciBxdWVcbiAgICAgICAgLy8gbGEgbGFyZ2V1ciBtYXggZHUgdGl0cmUgc29pdCBjYWxjdWzDqWUgw6AgcGFydGlyIGRlIGxhIGxhcmdldXIgcsOpZWxsZVxuICAgICAgICAvLyBkZSBsYSBmb3JtZSAobGUgdGl0cmUgbmUgZG9pdCBqYW1haXMgZW4gZMOpcGFzc2VyLCBxdWl0dGUgw6AgcGFzc2VyXG4gICAgICAgIC8vIHN1ciBwbHVzaWV1cnMgbGlnbmVzKSA6XG4gICAgICAgIC8vIC0taGVyby1oICAgICAgICAgIGhhdXRldXIgZHUgaGVyb1xuICAgICAgICAvLyAtLWZvcm1lLXBhcnQgICAgICBoYXV0ZXVyIGRlIGxhIGZvcm1lIGVuIHBhcnQgZGUgY2VsbGUgZHUgaGVyb1xuICAgICAgICAvLyAtLWZvcm1lLWRlY2FsYWdlICBkw6ljYWxhZ2UgZGUgbGEgZm9ybWUgw6AgZ2F1Y2hlIGRlIGxhIGdyaWxsZVxuICAgICAgICAvLyBMYXJnZXVyIGRlIGxhIGZvcm1lID0gaGF1dGV1ciB4IDEuMjU0IChmb3JtZS1oZWFkZXIuc3ZnIDogMTk1NXgxNTU5KS5cbiAgICAgICAgLS1oZXJvLWg6IDQwMHB4O1xuICAgICAgICAtLWZvcm1lLXBhcnQ6IDE7XG4gICAgICAgIC0tZm9ybWUtZGVjYWxhZ2U6IDc1cHg7XG4gICAgICAgIGhlaWdodDogdmFyKC0taGVyby1oKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJvcmRlYXV4O1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgICAgICAgICAgIC0taGVyby1oOiAyNXZ3O1xuICAgICAgICAgICAgLS1mb3JtZS1wYXJ0OiAwLjk7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgLS1oZXJvLWg6IDMyMHB4O1xuICAgICAgICAgICAgLS1mb3JtZS1kZWNhbGFnZTogMzBweDtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICAgICAgLS1oZXJvLWg6IDI3MHB4O1xuICAgICAgICB9XG4gICAgICAgIC5vcGFjaXRlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxQjEyMjc7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgIH1cbiAgICAgICAgaW1nLnBob3RvLXByaW5jaXBhbGUsIC5pbWctcGxhY2Vob2xkZXIucGhvdG8tcHJpbmNpcGFsZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9ybWUgcGxhY8OpZSBEQU5TIGxlIC5jb250YWluZXIgKHRlbXBsYXRlcyBDb250YWN0LCBBY3R1YWxpdMOpcyxcbiAgICAgICAgLy8gY2F0w6lnb3JpZXMsIEVuZmFudCkgOiBzb24gYm9yZCBnYXVjaGUgZXN0IGNhbMOpIHN1ciBsYSBncmlsbGVcbiAgICAgICAgLy8gKD0gYm9yZCBnYXVjaGUgZHUgY29udGVudSwgcGFkZGluZyBkdSBjb250YWluZXIgY29tcHJpcyksIGNvbW1lXG4gICAgICAgIC8vIGxlIHJlc3RlIGR1IHNpdGUsIGF1IGxpZXUgZGUgcGFydGlyIGR1IGJvcmQgZGUgbCfDqWNyYW4gKGRlbWFuZGVcbiAgICAgICAgLy8gZGUgTWFydGluIGR1IDMwLzA5LzIwMjYpLiBTYSBoYXV0ZXVyIHN1aXQgdG91am91cnMgY2VsbGUgZHUgaGVyby5cbiAgICAgICAgaW1nLmZvcm1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIC8vIETDqWNhbMOpZSBkZSA3NXB4IHZlcnMgbGEgZ2F1Y2hlIHBhciByYXBwb3J0IMOgIGxhIGdyaWxsZVxuICAgICAgICAgICAgLy8gKGRlbWFuZGUgZGUgTWFydGluKSA6IGxlIHRpdHJlLCBsdWksIHJlc3RlIGFsaWduw6kgc3VyIGxhIGdyaWxsZS5cbiAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tYnMtZ3V0dGVyLXgsIDI0cHgpICogMC41IC0gdmFyKC0tZm9ybWUtZGVjYWxhZ2UpKTtcbiAgICAgICAgICAgIGJvdHRvbTogLTQ1cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tZm9ybWUtcGFydCkgKiAxMDAlKTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNjAwcHgpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IC0yMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoMjBweCAtIHZhcigtLWZvcm1lLWRlY2FsYWdlKSk7IC8vIHBhZGRpbmcgLmNvbnRhaW5lciBtb2JpbGUgKGdsb2JhbGVzLnNjc3MpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBpbnNldDogMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudGl0cmUtaGVybyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAvLyBUaXRyZSBhbGlnbsOpIHN1ciBsYSBncmlsbGUgOyBsYSBmb3JtZSBkw6lwYXNzZSDDoCBnYXVjaGUgKGNmLlxuICAgICAgICAgICAgLy8gaW1nLmZvcm1lKSwgY2UgcXVpIGxhaXNzZSBkZSBsYSBtYXJnZSBhdmFudCBzb24gYm9yZCBhcnJvbmRpLlxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAvLyBUaXRyZSByw6lkdWl0IGF2ZWMgbGUgaGVybyAoNDBweC8zMnB4IGjDqXJpdMOpcyBkZSAudGl0cmUtaGVyb1xuICAgICAgICAgICAgLy8gZGFucyBnbG9iYWxlcy5zY3NzIGF2YW50KS5cbiAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgICAgICAgICAgICAgICAvLyBFbnRyZSAxMjAwIGV0IDE2MDBweCBsZSBoZXJvICgyNXZ3KSBldCBkb25jIGxhIGZvcm1lXG4gICAgICAgICAgICAgICAgLy8gcsOpdHLDqWNpc3NlbnQgOiBsZSB0aXRyZSBzdWl0ICgzMnB4IMOgIDE2MDBweCwgfjI1cHggw6BcbiAgICAgICAgICAgICAgICAvLyAxMjUwcHgpIHBvdXIgcmVzdGVyIHN1ciAyIGxpZ25lcyBkYW5zIGxhIGZvcm1lLlxuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE2MDBweCkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDI0cHgsIDJ2dywgMzJweCk7XG4gICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiBjbGFtcCgycHgsIDAuMTl2dywgM3B4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhbmM7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgLy8gTGFyZ2V1ciBkZSBsYSBmb3JtZSAtIHNvbiBkw6ljYWxhZ2Ugw6AgZ2F1Y2hlIC0gNDBweCBkZSBtYXJnZVxuICAgICAgICAgICAgICAgIC8vIGF2YW50IHNvbiBib3JkIGRyb2l0IDogbGUgdGV4dGUgcGFzc2Ugw6AgbGEgbGlnbmUgcGx1dMO0dCBxdWVcbiAgICAgICAgICAgICAgICAvLyBkZSBkw6lwYXNzZXIuXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWhlcm8taCkgKiB2YXIoLS1mb3JtZS1wYXJ0KSAqIDEuMjU0IC0gdmFyKC0tZm9ybWUtZGVjYWxhZ2UpIC0gNDBweCk7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogMHB4IDJweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb250YWN0LWZvcm0ge1xuICAgIHBhZGRpbmc6IDk2cHggMHB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZzogNjRweCAwcHg7XG4gICAgfVxuICAgIC5yb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAvKiAtLS0gQ29sb25uZSB0ZXh0ZSArIGNvb3Jkb25uw6llcyAtLS0gKi9cbiAgICAuY29udGFjdC1pbnRybyB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQ4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRlbnUgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY29vcmRvbm5lZXMge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJGVuY3JlLCAwLjEyKTtcbiAgICAgICAgaDMge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRkbXNhbnM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwcHggMHB4IDhweCAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDBweCAwcHggMTZweCAwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhLmJhZGdlLnNhdWdlLmxpZW4taXRpbmVyYWlyZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgICBhLmJhZGdlLnNhdWdlLmxpZW4taXRpbmVyYWlyZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzYXVnZTtcbiAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICB9XG4gICAgLnJlc2VhdXgtc29jaWF1eCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4IDBweCA4cHggMHB4O1xuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCRlbmNyZSwgMC43NSk7XG4gICAgICAgIH1cbiAgICAgICAgLnJlc2VhdXgge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1zYXVnZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNhdWdlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGE6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzYXVnZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsYW5jO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogLS0tIENvbG9ubmUgZm9ybXVsYWlyZSAtLS0gKi9cbiAgICAuY29udGFjdC1jYXJ0ZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmNhcnRlLWZvcm11bGFpcmUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1zYXVnZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgcGFkZGluZzogNDhweCA0MHB4IDIwcHggNDBweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgcGFkZGluZzogODBweCAyNHB4IDIwcHggMjRweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm1hY2Fyb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTYwcHg7XG4gICAgICAgIHJpZ2h0OiAtNjBweDtcbiAgICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgICBoZWlnaHQ6IDEyMHB4O1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCA0cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMTUpKTtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICB0b3A6IC01MHB4O1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogRm9ybXVsYWlyZSBDb250YWN0IEZvcm0gNyAqL1xuICAgIC5jYXJ0ZS1mb3JtdWxhaXJlIGZvcm0ge1xuICAgICAgICAubGlnbmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICAgICAgLmxpZ25lLW1lc3NhZ2Uge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICB9XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkZW5jcmU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0LndwY2Y3LWZvcm0tY29udHJvbCxcbiAgICAgICAgdGV4dGFyZWEud3BjZjctZm9ybS1jb250cm9sIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMThweDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRlbmNyZTtcbiAgICAgICAgfVxuICAgICAgICB0ZXh0YXJlYS53cGNmNy1mb3JtLWNvbnRyb2wge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0LndwY2Y3LWZvcm0tY29udHJvbDpmb2N1cyxcbiAgICAgICAgdGV4dGFyZWEud3BjZjctZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzYXVnZTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dC53cGNmNy1ub3QtdmFsaWQsXG4gICAgICAgIHRleHRhcmVhLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICNjMDM5MmI7XG4gICAgICAgIH1cbiAgICAgICAgLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogI2MwMzkyYjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgfVxuICAgICAgICAvLyBNYXNxdWUgbGEgbWVudGlvbiBcIkNoYW1wcyBmYWN1bHRhdGlmc1wiIChkZW1hbmRlIGRlIE1hcnRpbiwgMjMvMDkvMjAyNikgLS1cbiAgICAgICAgLy8gY2UgdGV4dGUgdmllbnQgZHUgY29udGVudSBkdSBmb3JtdWxhaXJlIENvbnRhY3QgRm9ybSA3IGx1aS1tZW1lXG4gICAgICAgIC8vIChlZGl0ZSBkYW5zIHdwLWFkbWluID4gQ29udGFjdCA+IGZvcm11bGFpcmVzKSwgcGFzIGR1IHRoZW1lLCBkb25jXG4gICAgICAgIC8vIG1hc3F1ZSBpY2kgZW4gQ1NTIHBsdXRvdCBxdWUgc3VwcHJpbWUgYSBsYSBzb3VyY2UuXG4gICAgICAgIC5ub3RlLWZhY3VsdGF0aWYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMTZweCAwcHggMHB4IDBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmJvdXRvbi5vcmFuZ2Uge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMjhweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkb3JhbmdlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG9yYW5nZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06ZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAud3BjZjctc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09IFRBUklGUyAoYmxvYyBkZSBsYSBob21lLCBjZi4gaG9tZS5zY3NzKSA9PT09PT09PT09PT0gKi9cbi8vIEVudHJlIGxlIGZvcm11bGFpcmUgZXQgbGVzIHTDqW1vaWduYWdlcyAobWFxdWV0dGUgWEQgOiB+NjBweCBzb3VzIGxlXG4vLyBmb3JtdWxhaXJlLCB+MTAwcHggYXZhbnQgbGVzIHTDqW1vaWduYWdlcykgOiBvbiByZXRpcmUgbGUgcGFkZGluZyBiYXMgZGVcbi8vIC5jb250YWN0LWZvcm0gcXVhbmQgbGEgc2VjdGlvbiBUYXJpZnMgc3VpdCwgZXQgbGEgc2VjdGlvbiBUYXJpZnMgcG9ydGVcbi8vIGwnZXNwYWNlIGF2YW50IGxlcyB0w6ltb2lnbmFnZXMgKHF1aSBuJ29udCBwYXMgZGUgbWFyZ2UgaGF1dGUgcHJvcHJlKS5cbi5jb250YWN0LWZvcm0uYXZlYy10YXJpZnMge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG59XG4udGFyaWZzLnRhcmlmcy1jb250YWN0IHtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDY0cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09IFBBR0UgRU5GQU5UICh0ZW1wbGF0ZS1lbmZhbnQucGhwKSA9PT09PT09PT09PT09PT09PVxuLy8gXCJQYWdlIEVuZmFudFwiID0gbW9kw6hsZSByw6l1dGlsaXNhYmxlIHBvdXIgbGVzIHBhZ2VzIFwiZW5mYW50c1wiIChhdSBzZW5zXG4vLyBoacOpcmFyY2hpZSBwYXJlbnQvZW5mYW50KSBkZSBsYSBwYWdlIFwiU2V4b3Row6lyYXBpZVwiIChlbGxlLW3Dqm1lIGLDonRpZSBzdXJcbi8vIHRlbXBsYXRlLXBhcmVudHMucGhwLCBjZi4gc29uIG9uZ2xldCBcIlF1ZXN0aW9ubmVtZW50c1wiKSAtLSB1bmUgcGFnZSBwYXJcbi8vIHRow6htZSAoZXguIFwiRXhjaXRhdGlvbiBldCBwbGFpc2lyXCIsIFwiVmFnaW5pc21lIGV0IGRpZmZpY3VsdMOpc1wiLi4uKS5cbi8vXG4vLyBDb21wb3NhbnRzIHLDqXV0aWxpc8OpcyB0ZWxzIHF1ZWxzIGRlcHVpcyBkJ2F1dHJlcyBwYWdlcyAoYXVjdW5lIHLDqGdsZSDDoFxuLy8gZHVwbGlxdWVyIGljaSwgY2YuIGhvbWUtYWNjdWVpbC1idWlsZC5tZCkgOlxuLy8gLSBIZXJvIDogLmhlcm8tY29udGFjdCAoY29udGFjdC5zY3NzKSwgZGVtYW5kZSBleHBsaWNpdGUgZGUgTWFydGluLlxuLy8gLSBNYWNhcm9uIDogLmJhbmRlYXUtYmFkZ2UgKGhvbWUuc2NzcyksIGp1c3RlIGNvbXBsw6l0w6kgZCd1biBib3V0b24uXG4vLyAtIEZBUSA6IC5mYXEgLyAuZmFxLWludHJvIC8gLmZhcS1xdWVzdGlvbnMgKGhvbWUuc2NzcyArIGFjY29yZMOpb24gZGVcbi8vICAgZ2xvYmFsZXMuc2NzcyksIG3Dqm1lIHN0cnVjdHVyZSBFVCBtw6ptZXMgY2xhc3NlcyBxdWUgbGEgaG9tZS5cbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5cbi8qID09PT09PT09PT09PSBCTE9DIElOVFJPICh0ZXh0ZSArIHBvZGNhc3QpID09PT09PT09PT09PSAqL1xuLmJsb2MtaW50cm8ge1xuICAgIHBhZGRpbmc6IDg4cHggMHB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZzogNTZweCAwcHg7XG4gICAgfVxuICAgIC5yb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG4gICAgLmJsb2MtaW50cm8tdGV4dGUge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0OHB4O1xuICAgICAgICB9XG4gICAgICAgIC5jb250ZW51IHAge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmJvdXRvbi5vcmFuZ2Uge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIC0tLSBDb2xvbm5lIHBvZGNhc3QgKyBcIlN1aXZlei1ub3VzXCIgLS0tICovXG4gICAgLmJsb2MtaW50cm8tcG9kY2FzdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnBvZGNhc3QtdGl0cmUge1xuICAgICAgICBmb250LWZhbWlseTogJGRtc2FucztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBtYXJnaW46IDBweCAwcHggMTRweCAwcHg7XG4gICAgfVxuICAgIC5ibG9jLWludHJvLXBvZGNhc3QgPiAuY29udGVudSBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICB9XG4gICAgLmJsb2MtaW50cm8tcG9kY2FzdCAuZW5zZW1ibGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgfVxuICAgIC8qIE3Dqm1lIGJvdXRvbiBxdWUgXCJQcmVuZHJlIHJlbmRlei12b3VzXCIgKGhlcm8gZGUgbGEgaG9tZSwgY2YuXG4gICAgICAgLmJvdXRvbi1mbGVjaGUgZGFucyBnbG9iYWxlcy5zY3NzKSwgbWFpcyBlbiB1c2FnZSBcIm5vcm1hbFwiIChkYW5zIGxlXG4gICAgICAgZmx1eCwgcGFzIGNvbGzDqSBhdSBib3JkIGQndW5lIGNvbG9ubmUpIDogb24gbmV1dHJhbGlzZSBsZVxuICAgICAgIHBvc2l0aW9ubmVtZW50IGFic29sdSBwcm9wcmUgYXUgaGVybywgZXQgb24gYWRhcHRlIGp1c3RlIGxhIGNvdWxldXJcbiAgICAgICAodmlvbGV0LCBkZW1hbmRlIGRlIE1hcnRpbikgKyBzdXBwcmVzc2lvbiBkZXMgb21icmVzIHBvcnTDqWVzLiBMYVxuICAgICAgIHBhc3RpbGxlIHJvbmRlICguZmxlY2hlKSBnYXJkZSBzYSBwb3NpdGlvbiAoY2hldmF1Y2hhbnQgbGUgYm9yZCBkcm9pdFxuICAgICAgIGRlIGxhIHBpbHVsZSksIGMnZXN0IHJlbGF0aWYgw6AgbGEgcGlsdWxlIGVsbGUtbcOqbWUsIHBhcyBhdSBoZXJvLiAqL1xuICAgIC5ib3V0b24tZmxlY2hlLnZpb2xldCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkdmlvbGV0O1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgIC5mbGVjaGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHZpb2xldDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYm91dG9uLWZsZWNoZS52aW9sZXQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhbmM7XG4gICAgICAgIC50ZXh0ZSB7XG4gICAgICAgICAgICBjb2xvcjogJHZpb2xldDtcbiAgICAgICAgfVxuICAgICAgICAuZmxlY2hlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHZpb2xldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIEJvcmR1cmUgKyBibG9jIFwiU3VpdmV6LW5vdXNcIiByZXBhc3PDqXMgaW50w6lncmFsZW1lbnQgZW4gdmlvbGV0IChkZW1hbmRlXG4gICAgICAgZGUgTWFydGluIGR1IDE4LzA5KSAtLSBsYSBib3JkdXJlIHBhc3NlIGRlIDFweCDDoCAycHggYXUgcGFzc2FnZS4gKi9cbiAgICAuc2VwYXJhdGV1ciB7XG4gICAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgkdmlvbGV0LCAwLjMpO1xuICAgICAgICBtYXJnaW46IDMycHggMHB4O1xuICAgIH1cblxuICAgIC8qIFJlcHJlbmQgLnJlc2VhdXgtc29jaWF1eCBkZSBsYSBwYWdlIENvbnRhY3QgKGNvbnRhY3Quc2NzcyksIGludMOpZ3JhbGVtZW50XG4gICAgICAgdGVpbnTDqSBlbiB2aW9sZXQgKHRpdHJlLCB0ZXh0ZSwgaWPDtG5lcykgcGx1dMO0dCBxdWUgbGUgc2F1Z2UgdXRpbGlzw6kgc3VyXG4gICAgICAgbGEgcGFnZSBDb250YWN0LiAqL1xuICAgIC5yZXNlYXV4LXNvY2lhdXgudmlvbGV0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICBoMyB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGRtc2FucztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW46IDBweCAwcHggOHB4IDBweDtcbiAgICAgICAgICAgIGNvbG9yOiAkdmlvbGV0O1xuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCR2aW9sZXQsIDAuNzUpO1xuICAgICAgICB9XG4gICAgICAgIC5yZXNlYXV4IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR2aW9sZXQsIDAuMTIpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmlvbGV0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGE6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2aW9sZXQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09IE1BQ0FST04gKGJvdXRvbiBham91dMOpIHN1ciAuYmFuZGVhdS1iYWRnZSwgcmVwcmlzIGRlIGxhIGhvbWUpID09PT09PT09PT09PSAqL1xuLy8gU2NvcMOpIMOgIC5lbmZhbnQgKGNmLiA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50IGVuZmFudFwiPiBkYW5zXG4vLyB0ZW1wbGF0ZS1lbmZhbnQucGhwKSBwb3VyIG5lIHBhcyBhZmZlY3RlciAuYmFuZGVhdS1iYWRnZSBkZSBsYSBob21lLCBxdWlcbi8vIG4nYSBwYXMgY2UgYm91dG9uLlxuLmVuZmFudCAuYmFuZGVhdS1iYWRnZSAuYm91dG9uIHtcbiAgICBtYXJnaW46IDMwcHggYXV0byAwcHg7XG4gICAgLy8gLmJvdXRvbi5ibGFuYyAoZ2xvYmFsZXMuc2NzcykgZXN0IHBhciBkw6lmYXV0IGVuICR0ZXJyYWNvdHRhIC0tIGRlbWFuZGVcbiAgICAvLyBkZSBNYXJ0aW4gKDE4LzA5KSA6IGNlIGJvdXRvbiBkb2l0IMOqdHJlIGVuICRvcmFuZ2Ugw6AgbGEgcGxhY2UgKGF1XG4gICAgLy8gc3Vydm9sLCAuYm91dG9uLmJsYW5jOmhvdmVyIHBhc3NlIGTDqWrDoCBlbiAkYmxhbmMgLS0gaW5jaGFuZ8OpLCBjZi5cbiAgICAvLyBnbG9iYWxlcy5zY3NzKS5cbiAgICBhLCBidXR0b24ge1xuICAgICAgICBjb2xvcjogJG9yYW5nZTtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PSBHUklMTEUgQ0hJRkZSRVMgKDQgY29sb25uZXMgeCAyIGxpZ25lcywgYWx0ZXJuw6llKSA9PT09PT09PT09PT0gKi9cbi5ncmlsbGUtY2hpZmZyZXMge1xuICAgIHBhZGRpbmc6IDBweCAwcHggOTZweCAwcHg7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICBwYWRkaW5nOiAwcHggMHB4IDU2cHggMHB4O1xuICAgIH1cbiAgICAuZ3JpbGxlLWNoaWZmcmVzLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgICAgICBnYXA6IDIwcHg7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgICAgICBnYXA6IDE0cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhc2UtY2hpZmZyZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLmNhc2UtY2hpZmZyZS5jYXNlLWltYWdlIHtcbiAgICAgICAgaW1nLCAuaW1nLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FzZS1jaGlmZnJlLmNhc2UtdGV4dGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAyMnB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBmb250LWZhbWlseTogJGRtc2FucztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgLy8gVGV4dGUgdG91am91cnMgZW4gYmxhbmMsIHF1ZWxsZSBxdWUgc29pdCBsYSBjb3VsZXVyIGRlIGZvbmQgKGRlbWFuZGUgZGUgTWFydGluKS5cbiAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhc2UtY2hpZmZyZS5jYXNlLXRleHRlLmNvdWxldXItcGVjaGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtcGVjaGU7XG4gICAgfVxuICAgIC5jYXNlLWNoaWZmcmUuY2FzZS10ZXh0ZS5jb3VsZXVyLWJsZXUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQThDNEU5O1xuICAgIH1cbiAgICAuY2FzZS1jaGlmZnJlLmNhc2UtdGV4dGUuY291bGV1ci1vcmFuZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuICAgIH1cbiAgICAvLyBOb3V2ZWxsZXMgY291bGV1cnMgKHBhbGV0dGUgw6AgNiBjb3VsZXVycyBmb3VybmllIHBhciBNYXJ0aW4sIGNmLlxuICAgIC8vIF92YXJpYWJsZXMuc2NzcywgbcOqbWVzIHZhbGV1cnMgcXVlIGxlcyBjYXJ0ZXMgXCJQcmlzZSBlbiBjaGFyZ2VcIi9cbiAgICAvLyBcIlF1ZXN0aW9ubmVtZW50c1wiKSA6IFwicGVjaGVcIi9cImJsZXVcIiBjaS1kZXNzdXMgcmVzdGVudCBlbiBwbGFjZSBwb3VyXG4gICAgLy8gbmUgcGFzIGNhc3NlciBsZXMgY2FzZXMgZMOpasOgIHB1Ymxpw6llcyBhdmVjIGNlcyBjb3VsZXVycy4gTGUgdGV4dGUgZXN0XG4gICAgLy8gYmxhbmMgcGFydG91dCAoY2YuIC5jYXNlLXRleHRlIGNpLWRlc3N1cykuXG4gICAgLmNhc2UtY2hpZmZyZS5jYXNlLXRleHRlLmNvdWxldXItcG91cnByZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3VycHJlO1xuICAgIH1cbiAgICAuY2FzZS1jaGlmZnJlLmNhc2UtdGV4dGUuY291bGV1ci10ZXJyYWNvdHRhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcnRlLXRlcnJhY290dGE7XG4gICAgfVxuICAgIC5jYXNlLWNoaWZmcmUuY2FzZS10ZXh0ZS5jb3VsZXVyLWJsZXVldCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGV1ZXQ7XG4gICAgfVxuICAgIC5jYXNlLWNoaWZmcmUuY2FzZS10ZXh0ZS5jb3VsZXVyLXZlcnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmVydDtcbiAgICB9XG4gICAgLmNhc2UtY2hpZmZyZS5jYXNlLXRleHRlLmNvdWxldXItc2F1Z2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FydGUtc2F1Z2U7XG4gICAgfVxuICAgIC5ncmlsbGUtY2hpZmZyZXMtc291cmNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBjb2xvcjogcmdiYSgkZW5jcmUsIDAuNSk7XG4gICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgfVxufVxuIiwiLy8gU3R5bGVzIDogZm9vdGVyXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG5mb290ZXIge1xuICAgIC5pbmZvcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgICAgICBjb2xvcjogJGJsYW5jO1xuICAgICAgICBwYWRkaW5nOiAzMHB4IDBweDtcblxuICAgICAgICAucm93IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRkbXNhbnM7XG4gICAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwcHggMHB4IDEwcHggMHB4O1xuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDBweCAwcHggMTZweCAwcHg7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgkYmxhbmMsIDAuODgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2MtbG9nbyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgICAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNTBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnRhZ2xpbmUge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jLXNvY2lhbCxcbiAgICAgICAgLmJsb2MtY29udGFjdCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc2VhdXgge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhbmMsIDAuNSk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhbmM7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhbmM7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsYW5jO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2MtY29udGFjdCB7XG4gICAgICAgICAgICAuYm91dG9uIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjJweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFzLWRlLXBhZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3JlbWU7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMHB4O1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgICAgICB9XG4gICAgICAgIGEsIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5cbi8qIENvbnRhaW5lciBCb290c3RyYXAgOiArOHB4IGRlIHBhZGRpbmcgbGF0w6lyYWwgc3VwcGzDqW1lbnRhaXJlIGVuIG1vYmlsZVxuICAgKEJvb3RzdHJhcCBjaGFyZ2UgYXByw6hzIGxlIHRow6htZSBkYW5zIGVucXVldWUucGhwLCBkb25jICFpbXBvcnRhbnQgZXN0XG4gICBuw6ljZXNzYWlyZSBwb3VyIGdhZ25lciBsYSBjYXNjYWRlIMOgIHNww6ljaWZpY2l0w6kgw6lnYWxlIOKAlCBtw6ptZSBwb2ludCBkZVxuICAgdmlnaWxhbmNlIHF1ZSBsZXMgcHVjZXMgU3dpcGVyLCBjZi4gaG9tZS1hY2N1ZWlsLWJ1aWxkLm1kKS4gQm9vdHN0cmFwXG4gICBhcHBsaXF1ZSAxMnB4IGRlIGJhc2UgOyBvbiBwYXNzZSBkb25jIMOgIDIwcHggPSAxMiArIDguICovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5odG1sIHtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMHB4O1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICAvLyBSw6lzZXJ2ZSB0b3Vqb3VycyBsYSBwbGFjZSBkZSBsYSBzY3JvbGxiYXIgOiDDqXZpdGUgbGUgcGV0aXRcbiAgICAvLyByZWRpbWVuc2lvbm5lbWVudC9zYXV0IGRlIGxheW91dCBxdWFuZCBsZSBtZW51IG1vYmlsZSBwYXNzZSBsZSBib2R5XG4gICAgLy8gZW4gb3ZlcmZsb3c6aGlkZGVuIChsYSBzY3JvbGxiYXIgZGlzcGFyYcOudCBzaW5vbiwgZMOpY2FsYW50IGxlIGNvbnRlbnUpLlxuICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcbiAgICBib2R5IHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICBjb2xvcjogJGVuY3JlO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNyZW1lO1xuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuICAgICAgICAqOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5tYWluLWNvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOTZweDsgLy8gaGF1dGV1ciBkdSBoZWFkZXIgZml4ZVxuICAgICAgICB9XG5cbiAgICAgICAgLyogVW4gc2V1bCBwYWxpZXIgbW9iaWxlIHBvdXIgdG91dCBsZSBzaXRlIChuYXYgY29tcHJpc2UpICovXG4gICAgICAgIC5kZXNrdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm1vYmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBCYWRnZXMgKGV5ZWJyb3cpICovXG4gICAgICAgIC5iYWRnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMThweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRkbXNhbnM7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5iYWRnZS5wZWNoZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtcGVjaGU7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnJhY290dGE7XG4gICAgICAgIH1cbiAgICAgICAgLmJhZGdlLnNhdWdlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1zYXVnZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2F1Z2U7XG4gICAgICAgIH1cbiAgICAgICAgLmJhZGdlLmJsYW5jIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGJsYW5jLCAwLjE4KTtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhbmM7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBUaXRyZXMgLyB0ZXh0ZXMgZGUgc2VjdGlvbiAqL1xuICAgICAgICAudGl0cmUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICAgICAgICAgIGgxLCBoMiwgaDMsIHAge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAzNHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRlbmNyZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudGl0cmUtaGVybyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICAgICAgaDEge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiA0cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGRtc2FucztcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jb250ZW51IHtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4IDBweCAxNnB4IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogQm91dG9ucyAqL1xuICAgICAgICAuYm91dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgYSwgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGRtc2FucztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ib3V0b24ub3JhbmdlIHtcbiAgICAgICAgICAgIGEsIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGE6aG92ZXIsIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmJvdXRvbi5ibGFuYyB7XG4gICAgICAgICAgICBhLCBidXR0b24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnJhY290dGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhOmhvdmVyLCBidXR0b246aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsYW5jO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhbmM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmJvdXRvbi5vdXRsaW5lLWJsYW5jIHtcbiAgICAgICAgICAgIGEsIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRibGFuYywgMC42KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsYW5jO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYTpob3ZlciwgYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhbmM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhbmM7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogQm91dG9uIHBpbHVsZSArIHB1Y2UgZmzDqGNoZSAoaGVybywgZXRjLikgKi9cbiAgICAgICAgLmJvdXRvbi1mbGVjaGUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICAgICAgbGVmdDogOTQlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDRweCAxcHggNnB4IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiA4MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50ZXh0ZSB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRkbXNhbnM7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA3cHggMTRweDtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuZmxlY2hlIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA5OSU7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogNHB4IDFweCAzcHggcmdiYSgzOCwgMzUsIDM0LCAwLjIpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJsYW5jO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYm91dG9uLWZsZWNoZTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhbmM7XG4gICAgICAgICAgICAudGV4dGUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmZsZWNoZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYW5jO1xuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogQWNjb3Jkw6lvbiBGQVEgKi9cbiAgICAgICAgLmFjY29yZGlvbjpub3QoLmFjY29yZGlvbi1tZW51LW1vYmlsZSkge1xuICAgICAgICAgICAgLmFjY29yZGlvbi1pdGVtIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkZW5jcmUsIDAuMTIpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbWFyZ2luIDAuMnMgZWFzZTtcbiAgICAgICAgICAgICAgICAuYWNjb3JkaW9uLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTcOqbWUgcGFkZGluZyBnYXVjaGUgb3V2ZXJ0L2Zlcm3DqSwgcG91ciBxdWUgbGUgdGV4dGUgKGV0XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsZSBjaGV2cm9uLCBjZi4gOjphZnRlcikgbmUgYm91Z2UgcGFzIGhvcml6b250YWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVhbmQgb24gb3V2cmUvZmVybWUgdW5lIHF1ZXN0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjJweCA0MHB4IDIycHggMjJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGVuY3JlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE3Dqm1lIGVzcGFjZW1lbnQgw6AgZHJvaXRlIHF1ZSBsZSBwYWRkaW5nLWxlZnQgZHUgdGV4dGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNpLWRlc3N1cyAoMjJweCksIG91dmVydCBvdSBmZXJtw6kuXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMjJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBCb290c3RyYXAgcG9zZSBzb24gcHJvcHJlIGNoZXZyb24gZW4gYmFja2dyb3VuZC1pbWFnZSBzdXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIC5hY2NvcmRpb24tYnV0dG9uOjphZnRlciA6IHNhbnMgY2UgcmVzZXQsIHNvbiBpY8O0bmUgKHF1aVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGllbnQgdW4gdHJhaXQgdmVydGljYWwpIHNlIHN1cGVycG9zZSDDoCBub3RyZSBjaGV2cm9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXNzaW7DqSBlbiBib3JkdXJlcywgZCdvw7kgbGUgdHJhaXQgcGFyYXNpdGUgb2JzZXJ2w6kuXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGVuY3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRlbmNyZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjUlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBidXR0b246bm90KC5jb2xsYXBzZWQpOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTM1JSkgcm90YXRlKC0xMzVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5hY2NvcmRpb24tY29sbGFwc2Uge1xuICAgICAgICAgICAgICAgICAgICAuYWNjb3JkaW9uLWJvZHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMHB4IDQwcHggMjJweCAyMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoJGVuY3JlLCAwLjc1KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIExhIGNhcnRlIHNhdWdlIGVuZ2xvYmUgbGEgcXVlc3Rpb24gRVQgbGEgcsOpcG9uc2UgZGUgbCdpdGVtIG91dmVydFxuICAgICAgICAgICAgLy8gKHF1ZWwgcXUnaWwgc29pdCwgcGFzIHNldWxlbWVudCBsZSAxZXIg4oCUIGNvcnJpZ8OpIGR1IGNvbXBvcnRlbWVudFxuICAgICAgICAgICAgLy8gcHLDqWPDqWRlbnQgcXVpIG5lIG1ldHRhaXQgZW4gYXZhbnQgcXVlIGxlIHRvdXQgcHJlbWllciBpdGVtKS5cbiAgICAgICAgICAgIC8vIFVuZSBtYXJnZSB2ZXJ0aWNhbGUgbCfDqWNhcnRlIGRlcyBzw6lwYXJhdGV1cnMgZGVzIHF1ZXN0aW9uc1xuICAgICAgICAgICAgLy8gdm9pc2luZXMgKHNpbm9uIGxlIGZvbmQgc2F1Z2UgdG91Y2hhaXQgbGEgYm9yZHVyZSBkZSBsYVxuICAgICAgICAgICAgLy8gcXVlc3Rpb24gZmVybcOpZSBqdXN0ZSBhdS1kZXNzdXMpLlxuICAgICAgICAgICAgLmFjY29yZGlvbi1pdGVtOmhhcyguYWNjb3JkaW9uLWhlYWRlciBidXR0b246bm90KC5jb2xsYXBzZWQpKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLXNhdWdlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA4cHggMHB4O1xuICAgICAgICAgICAgICAgIC5hY2NvcmRpb24taGVhZGVyIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggNDBweCA0cHggMjJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmFjY29yZGlvbi1jb2xsYXBzZSAuYWNjb3JkaW9uLWJvZHkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggNDBweCAyMnB4IDIycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBQbGFjZWhvbGRlciBpbWFnZSAodGFudCBxdWUgbGUgdnJhaSB2aXN1ZWwgbidlc3QgcGFzIGFqb3V0w6kgZGFucyBsJ2FkbWluKSAqL1xuLmltZy1wbGFjZWhvbGRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDEzNWRlZyxcbiAgICAgICAgcmdiYSgyNywgMTgsIDM5LCAwLjA2KSxcbiAgICAgICAgcmdiYSgyNywgMTgsIDM5LCAwLjA2KSAxMHB4LFxuICAgICAgICByZ2JhKDI3LCAxOCwgMzksIDAuMSkgMTBweCxcbiAgICAgICAgcmdiYSgyNywgMTgsIDM5LCAwLjEpIDIwcHhcbiAgICApO1xuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG5cbi8qIFN3aXBlciA6IHB1Y2VzIGRlIHBhZ2luYXRpb24gYXV4IGNvdWxldXJzIGR1IHNpdGUgKi9cbi8vICFpbXBvcnRhbnQgbsOpY2Vzc2FpcmUgOiBzd2lwZXItYnVuZGxlLm1pbi5jc3MgZXN0IGVucXVldWUgYXByw6hzIG5vdHJlXG4vLyBmZXVpbGxlIGRlIHN0eWxlIChmdW5jdGlvbnMucGhwKSwgZG9uYyBzYW5zIMOnYSBzZXMgY291bGV1cnMgcGFyIGTDqWZhdXRcbi8vIChibGV1IGFjdGlmLCBub2lyIGluYWN0aWYpIGdhZ25lbnQgbGEgY2FzY2FkZSDDoCBzcMOpY2lmaWNpdMOpIMOpZ2FsZS5cbi5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1wZWNoZSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgd2lkdGg6IDEycHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEycHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgNnB4ICFpbXBvcnRhbnQ7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogJG9yYW5nZSAhaW1wb3J0YW50O1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldDpub3QoLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUpIHtcbiAgICBvcGFjaXR5OiAwLjg7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24ge1xuICAgIG1hcmdpbi10b3A6IDYwcHggIWltcG9ydGFudDtcbn1cblxuLy8gQmFkZ2UgR29vZ2xlIHJlQ0FQVENIQSA6IG1hc3F1w6kgcGFydG91dCBzYXVmIHN1ciBsYSBwYWdlIENvbnRhY3Rcbi8vICh0ZW1wbGF0ZS1jb250YWN0LnBocCwgY2xhc3NlIGFqb3V0w6llIHBhciBib2R5X2NsYXNzKCkpLiB2aXNpYmlsaXR5IHBsdXTDtHRcbi8vIHF1ZSBkaXNwbGF5Om5vbmUsIHJlY29tbWFuZMOpIHBhciBHb29nbGUgcG91ciBuZSBwYXMgZ8OqbmVyIGxlIHNjcmlwdC5cbmJvZHk6bm90KC5wYWdlLXRlbXBsYXRlLXRlbXBsYXRlLWNvbnRhY3QpIC5ncmVjYXB0Y2hhLWJhZGdlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4iLCIvLyBTdHlsZXMgOiBoZWFkZXJcbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5cbmhlYWRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDk5MDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNyZW1lO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlO1xuXG4gICAgLm1lbnUtZGVza3RvcCB7XG4gICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBnYXA6IDI0cHg7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXG4gICAgICAgICAgICAubG9nby1saW5rIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICAubG9nbyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWFpbi1tZW51IHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDMycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJGRtc2FucztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGVuY3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5saW5lLWZsZXggKCsgYWxpZ24taXRlbXM6Y2VudGVyKSBzdXIgVE9VUyBsZXMgaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXMgc2V1bGVtZW50IGNldXggYXZlYyBjaGV2cm9uIChtZW51LWl0ZW0taGFzLWNoaWxkcmVuKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbiBkaXNwbGF5OmlubGluZSBcIm5vcm1hbFwiLCBsZSBwYWRkaW5nL2JvcmR1cmUgdmVydGljYWxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lIGNvbXB0ZSBwYXMgZGFucyBsYSBoYXV0ZXVyIGRlIGxhIGJvw650ZSwgYWxvcnMgcXUnZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlubGluZS1mbGV4IHNpIC0tIHVuIGl0ZW0gcGFyZW50IChjaGV2cm9uKSArIGFjdGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAoc291bGlnbmVtZW50KSBzZSByZXRyb3V2YWl0IGRvbmMgfjZweCBwbHVzIGhhdXQgcXVlIGxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXV0cmVzLiBVbmlmb3JtaXNlciBsZSBkaXNwbGF5IMOpdml0ZSBjZSBkw6ljYWxhZ2UuXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBCb3JkdXJlIHRyYW5zcGFyZW50ZSBwYXIgZMOpZmF1dCA6IHLDqXNlcnZlIGxhIG3Dqm1lXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXV0ZXVyIHF1ZSBsJ2l0ZW0gYWN0aWYgKGNmLiByw6hnbGUgY3VycmVudC1tZW51LSpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBsdXMgYmFzKSBwb3VyIMOpdml0ZXIgdW4gZMOpY2FsYWdlIHZlcnRpY2FsIGVudHJlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsZXMgaXRlbXMgc2Vsb24gcXUnaWxzIGFmZmljaGVudCBvdSBub24gbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdWxpZ25lbWVudC5cbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYTpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnJhY290dGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBCb3V0b24gXCJ0b2dnbGVcIiAoY2hldnJvbikgaW5qZWN0w6kgcGFyIGVsb19zZXhvX25hdl9zb3VzX21lbnVfdG9nZ2xlKClcbiAgICAgICAgICAgICAgICAvLyAoaW5jL3NldHVwLnBocCkgYXByw6hzIGxlIGxpZW4gZGUgY2hhcXVlIGl0ZW0gYXlhbnQgZGVzIGVuZmFudHMgLS1cbiAgICAgICAgICAgICAgICAvLyB1dGlsZSBzZXVsZW1lbnQgZW4gbW9iaWxlIChhY2NvcmTDqW9uLCBjZi4gcGx1cyBiYXMpLCBsZSBzdXJ2b2xcbiAgICAgICAgICAgICAgICAvLyBzdWZmaXQgaWNpIDogb24gbGUgbWFzcXVlIGVuIGRlc2t0b3AuXG4gICAgICAgICAgICAgICAgLnN1Yi1tZW51LXRvZ2dsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gU291cy1tZW51IChkcm9wZG93bikgOiB1biBjaGV2cm9uIGlubGluZSByZW1wbGFjZSBsZSBib3V0b24gZW5cbiAgICAgICAgICAgICAgICAvLyBkZXNrdG9wIC0tIG3Dqm1lIHRlY2huaXF1ZSBkZSBjaGV2cm9uIChib3JkdXJlcyArIHJvdGF0aW9uKSBxdWVcbiAgICAgICAgICAgICAgICAvLyBsJ2FjY29yZMOpb24gRkFRIChnbG9iYWxlcy5zY3NzKSwgcG91ciByZXN0ZXIgY29ow6lyZW50LlxuICAgICAgICAgICAgICAgIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiA3cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgbWFyZ2luIDAuMnMgZWFzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpob3ZlciA+IGE6OmFmdGVyLFxuICAgICAgICAgICAgICAgIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW46Zm9jdXMtd2l0aGluID4gYTo6YWZ0ZXIsXG4gICAgICAgICAgICAgICAgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbi5zb3VzLW1lbnUtb3V2ZXJ0LWRlc2t0b3AgPiBhOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSXRlbSBkZSBzZWN0aW9uIGFjdGl2ZSAoZXguIFwiU2V4b3Row6lyYXBpZVwiIHF1YW5kIG9uIGVzdCBzdXIgdW5lIGRlXG4gICAgICAgICAgICAgICAgLy8gc2VzIHBhZ2VzIGVuZmFudHMgLS0gY2xhc3NlcyBcImN1cnJlbnQtbWVudS1wYXJlbnRcIi9cIi1hbmNlc3RvclwiXG4gICAgICAgICAgICAgICAgLy8gcG9zw6llcyBhdXRvbWF0aXF1ZW1lbnQgcGFyIFdvcmRQcmVzcykgOiBwZXRpdCBzb3VsaWduZW1lbnQsIHJlcHJpc1xuICAgICAgICAgICAgICAgIC8vIGRlIGxhIG1hcXVldHRlIFhEIFwiUGFnZSBFbmZhbnRcIiAoYmFycmUgZmluZSBzb3VzIGxlIGxpYmVsbMOpKS5cbiAgICAgICAgICAgICAgICA+IGxpLmN1cnJlbnQtbWVudS1wYXJlbnQgPiBhLFxuICAgICAgICAgICAgICAgID4gbGkuY3VycmVudC1tZW51LWFuY2VzdG9yID4gYSxcbiAgICAgICAgICAgICAgICA+IGxpLmN1cnJlbnQtbWVudS1pdGVtID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFNvdXMtbWVudSAoZHJvcGRvd24pIDogY29uZm9ybWUgw6AgbGEgbWFxdWV0dGUgWEQgXCJQYWdlIEVuZmFudFwiIC0tXG4gICAgICAgICAgICAgICAgLy8gbGlzdGUgw6AgcGxhdCBTQU5TIGNhcnRlIChwYXMgZGUgZm9uZCwgcGFzIGQnb21icmUsIHBhcyBkZSBjb2luc1xuICAgICAgICAgICAgICAgIC8vIGFycm9uZGlzKSwgYWxpZ27DqWUgw6AgZ2F1Y2hlIHN1ciBsZSBsaWVuIHBhcmVudCBwbHV0w7R0IHF1ZSBjZW50csOpZSxcbiAgICAgICAgICAgICAgICAvLyBlbiBjb2xvbm5lcyBzaSBwbHVzIGRlIDUgaXRlbXMgKGdyaWQtYXV0by1mbG93OiBjb2x1bW4sIHJlbXBsaXNzYWdlXG4gICAgICAgICAgICAgICAgLy8gdmVydGljYWwgZCdhYm9yZCkuIEwnaXRlbSBkZSBsYSBwYWdlIGNvdXJhbW1lbnQgYWZmaWNow6llIHJlc3NvcnQgZW5cbiAgICAgICAgICAgICAgICAvLyBzb21icmUvZ3JhcyAoY2xhc3NlIFwiY3VycmVudC1tZW51LWl0ZW1cIiksIGxlcyBhdXRyZXMgZW4gZ3JpcyBjbGFpci5cbiAgICAgICAgICAgICAgICAuc3ViLW1lbnUge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICAgICAgLy8gcGFkZGluZy10b3AgKGV0IG5vbiBtYXJnaW4tdG9wKSA6IGxlIHN1cnZvbCBkb2l0IHJlc3RlclxuICAgICAgICAgICAgICAgICAgICAvLyBcInZyYWlcIiBlbiBjb250aW51IGVudHJlIGxlIGxpZW4gcGFyZW50IGV0IGxlIHNvdXMtbWVudSAtLVxuICAgICAgICAgICAgICAgICAgICAvLyBhdmVjIHVuIG1hcmdpbiwgY2V0IGVzcGFjZSBlc3QgdW4gdmlkZSBob3JzIGRlIHRvdXQgw6lsw6ltZW50XG4gICAgICAgICAgICAgICAgICAgIC8vIGV0IGxhIHNvdXJpcyBcInNvcnRcIiBkdSA8bGk+IGVuIGxlIHRyYXZlcnNhbnQsIGNlIHF1aSByZWZlcm1lXG4gICAgICAgICAgICAgICAgICAgIC8vIGxlIG1lbnUgYXZhbnQgZCdhdHRlaW5kcmUgdW4gaXRlbSBlbmZhbnQgKHNpZ25hbMOpIHBhclxuICAgICAgICAgICAgICAgICAgICAvLyBNYXJ0aW4pLiBFbiBwYWRkaW5nLCBjZXQgZXNwYWNlIGZhaXQgcGFydGllIGR1IGJsb2NcbiAgICAgICAgICAgICAgICAgICAgLy8gLnN1Yi1tZW51IGx1aS1tw6ptZSAoZG9uYyB0b3Vqb3VycyBcInN1cnZvbMOpXCIpLlxuICAgICAgICAgICAgICAgICAgICAvLyBWYWxldXIgZ8OpbsOpcmV1c2UgKDQycHgsIGF1IGxpZXUgZGUgMThweCkgOiBsYWlzc2UgbGEgcGxhY2VcbiAgICAgICAgICAgICAgICAgICAgLy8gYXUgZmlsZXQgdGVycmFjb3R0YSAoLnNvdXMtbWVudS1mb25kLWxpZ25lKSArIHVuIGVzcGFjZVxuICAgICAgICAgICAgICAgICAgICAvLyDDqWdhbCBhdS1kZXNzdXMgZXQgZW4tZGVzc291cywgY2VudHLDqSBkeW5hbWlxdWVtZW50IGVuIEpTXG4gICAgICAgICAgICAgICAgICAgIC8vIChtZW51LmpzKSBkYW5zIGNldHRlIHpvbmUuXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDQycHggMHB4IDhweCAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDUsIGF1dG8pO1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICAvLyBJdGVtcyByZXNzZXJyw6lzIChkZW1hbmRlIGRlIE1hcnRpbiBkdSAyOC8wOS8yMDI2KSA6XG4gICAgICAgICAgICAgICAgICAgIC8vIHJvdy1nYXAgNHB4IC0+IDAsIHBhZGRpbmcgZGVzIGxpZW5zIDZweCAtPiAzcHggZXRcbiAgICAgICAgICAgICAgICAgICAgLy8gbGluZS1oZWlnaHQgMjBweCAoYXUgbGlldSBkZXMgMjZweCBow6lyaXTDqXMgZHUgYm9keSkuXG4gICAgICAgICAgICAgICAgICAgIHJvdy1nYXA6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjJzO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGkgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW4gcGV1IHBsdXMgZm9uY8OpIHF1J2F2YW50ICgwLjQ1IC0+IDAuNjUpIDogbGVzIGl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbmZhbnRzIG1hbnF1YWllbnQgZGUgbGlzaWJpbGl0w6kgKHJldG91ciBkZSBNYXJ0aW4pLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoJGVuY3JlLCAwLjY1KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsaSBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsaS5jdXJyZW50LW1lbnUtaXRlbSBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZW5jcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFwic291cy1tZW51LW91dmVydC1kZXNrdG9wXCIgOiBjbGFzc2UgcG9zw6llIHBhciBtZW51LmpzIChtb3VzZWVudGVyL1xuICAgICAgICAgICAgICAgIC8vIGZvY3VzaW4gc3VyIGxlIDxsaT4sIGF2ZWMgdW4gcGV0aXQgZMOpbGFpIMOgIGxhIGZlcm1ldHVyZSBxdWlcbiAgICAgICAgICAgICAgICAvLyB0b2zDqHJlIHVuIHN1cnZvbCBpbXBhcmZhaXQpIC0tIGFqb3V0w6llIGVuIHBsdXMgZGUgOmhvdmVyL1xuICAgICAgICAgICAgICAgIC8vIDpmb2N1cy13aXRoaW4gKGdhcmTDqXMgY29tbWUgcmVwbGkgMTAwJSBDU1MsIHV0aWxlIGF1IGNsYXZpZXIpXG4gICAgICAgICAgICAgICAgLy8gcG91ciBjb3JyaWdlciB1biB2cmFpIGTDqWNyb2NoYWdlIGR1IHN1cnZvbCBlbiBzb3J0YW50IGR1IGxpZW5cbiAgICAgICAgICAgICAgICAvLyBwYXJlbnQsIHNpZ25hbMOpIHBhciBNYXJ0aW4uXG4gICAgICAgICAgICAgICAgbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbjpob3ZlciA+IC5zdWItbWVudSxcbiAgICAgICAgICAgICAgICBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuOmZvY3VzLXdpdGhpbiA+IC5zdWItbWVudSxcbiAgICAgICAgICAgICAgICBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuLnNvdXMtbWVudS1vdXZlcnQtZGVza3RvcCA+IC5zdWItbWVudSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY3RhLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICAgICAgLmJvdXRvbiBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDIycHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzFweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCYW5kZSBibGFuY2hlIHBsZWluZSBsYXJnZXVyIGRlcnJpw6hyZSBsZSBzb3VzLW1lbnUgb3V2ZXJ0IChtYXF1ZXR0ZVxuICAgICAgICAvLyBYRCBcIlBhZ2UgRW5mYW50XCIpIC0tIHBvc2l0aW9uL2hhdXRldXIgZml4w6llcyBwYXIgbWVudS5qcyAodmFyaWFibGVcbiAgICAgICAgLy8gc2Vsb24gbGUgbm9tYnJlIGRlIHBhZ2VzIGVuZmFudHMpLCBsYSBjb3VsZXVyL2wnb21icmUvbGEgdHJhbnNpdGlvblxuICAgICAgICAvLyByZXN0ZW50IGljaS4gU2libGluZyBkZSAuY29udGFpbmVyIChwYXMgZGVkYW5zLCBjZi4gaGVhZGVyLnBocCkgcG91clxuICAgICAgICAvLyBuZSBwYXMgw6p0cmUgY29udHJhaW50IHBhciBzYSBsYXJnZXVyL3NvbiBwYWRkaW5nIDogZWxsZSBkb2l0XG4gICAgICAgIC8vIGNvdXZyaXIgMTAwJSBkdSB2aWV3cG9ydCwgcGFzIGp1c3RlIGxlIGNvbnRhaW5lciBjZW50csOpLlxuICAgICAgICAuc291cy1tZW51LWZvbmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgIGhlaWdodDogMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkFGQTtcbiAgICAgICAgICAgIC8vIE9tYnJlIGTDqWNhbMOpZSB2ZXJzIGxlIGJhcyArIHNwcmVhZCBuw6lnYXRpZiA6IMOpdml0ZSBxdSdlbGxlIG5lXG4gICAgICAgICAgICAvLyBcImTDqWJvcmRlXCIgYXUtZGVzc3VzICh2ZXJzIGxlIGhlYWRlcikgdG91dCBlbiByZXN0YW50IHZpc2libGVcbiAgICAgICAgICAgIC8vIHNvdXMgbGEgYmFuZGUuXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMjRweCAyNHB4IC0xMnB4IHJnYmEoMjcsIDE4LCAzOSwgMC4wOCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCBoZWlnaHQgMC4ycyBlYXNlO1xuXG4gICAgICAgICAgICAvLyBGaW4gZmlsZXQgdGVycmFjb3R0YSBlbiBoYXV0IGRlIGxhIGJhbmRlLCBtYWlzIHNldWxlbWVudCBzdXIgbGFcbiAgICAgICAgICAgIC8vIGxhcmdldXIgZHUgbWVudSArIGJvdXRvbiAocGFzIHRvdXRlIGxhIGxhcmdldXIgZGUgbGEgYmFuZGUsIG5pXG4gICAgICAgICAgICAvLyBsZSBsb2dvIMOgIGdhdWNoZSkgOiBwb3NpdGlvbi9sYXJnZXVyIGNhbMOpZXMgZW4gSlMgKG1lbnUuanMpIHN1clxuICAgICAgICAgICAgLy8gLm1haW4tbWVudSAvIC5jdGEtaGVhZGVyLlxuICAgICAgICAgICAgLnNvdXMtbWVudS1mb25kLWxpZ25lIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgLy8gQ2VudHLDqSBkYW5zIGxlcyAxOHB4IGRlIHBhZGRpbmctdG9wIGR1IC5zdWItbWVudSAoY2YuXG4gICAgICAgICAgICAgICAgLy8gcsOoZ2xlIHBsdXMgYmFzKSA6IDhweCBkJ2VzcGFjZSBhdS1kZXNzdXMgKGp1c3F1J2F1IGhlYWRlcilcbiAgICAgICAgICAgICAgICAvLyBldCA4cHggZW4tZGVzc291cyAoanVzcXUnYXUgcHJlbWllciBpdGVtKSwgZXNwYWNlIMOpZ2FsIGRlc1xuICAgICAgICAgICAgICAgIC8vIGRldXggY8O0dMOpcyBkdSBmaWxldCAocmV0b3VyIE1hcnRpbikuXG4gICAgICAgICAgICAgICAgdG9wOiA4cHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkdGVycmFjb3R0YSwgMC4xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc291cy1tZW51LWZvbmQudmlzaWJsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1lbnUtbW9iaWxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNyZW1lO1xuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcblxuICAgICAgICAgICAgLmxvZ28tbGluayB7XG4gICAgICAgICAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI21lbnVUb2dnbGUge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7XG5cbiAgICAgICAgICAgICAgICAucG9zaXRpb24ge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNyZW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAuNzcsMC4yLDAuMDUsMS4wKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgMC41cyBjdWJpYy1iZXppZXIoMC43NywwLjIsMC4wNSwxLjApLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAwLjU1cyBlYXNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNwYW46bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEJhcnJlcyAtPiBjcm9peCA6IG3Dqm1lIHRlY2huaXF1ZSBxdWUgc2FpbnRfY2xlbWVudCAocm90YXRpb24gYXV0b3VyXG4gICAgICAgICAgICAvLyBkdSBjb2luIGRlIGNoYXF1ZSBiYXJyZSArIGTDqWNhbGFnZSwgbGEgM2UgYmFycmUgZGlzcGFyYcOudCkuXG4gICAgICAgICAgICAjbWVudVRvZ2dsZS5vcGVuIHtcbiAgICAgICAgICAgICAgICAucG9zaXRpb24gc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoLTRweCwgLTdweCk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjcmVtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnBvc2l0aW9uIHNwYW46bnRoLW9mLXR5cGUoMSkge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSgtNnB4LCAxMXB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnBvc2l0aW9uIHNwYW46bnRoLW9mLXR5cGUoMykge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgwLjIsIDAuMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUGFubmVhdSBwbGVpbiDDqWNyYW4gKG1vYmlsZSkgOiBzbGlkZSBsYXTDqXJhbCAoZGVwdWlzIGxhIGdhdWNoZSlcbiAgICAvLyBwbHV0w7R0IHF1J3VuIHNpbXBsZSBmb25kdSwgcG91ciB1bmUgb3V2ZXJ0dXJlIG1vaW5zIGJydXNxdWUuXG4gICAgLm1lbnUge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDkwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNyZW1lO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuNzcsMC4yLDAuMDUsMS4wKSxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAwLjM1cyBlYXNlLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjQ1cztcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAuY29udGVudS1tZW51IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE1O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggMjBweCA0MHB4O1xuXG4gICAgICAgICAgICAubWFpbi1tZW51IHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweCAwcHggNDBweCAwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZW5jcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSXRlbSBkb250IGxlIHNvdXMtbWVudSBlc3QgYWN0dWVsbGVtZW50IGTDqXBsacOpIChjbGFzc2VcbiAgICAgICAgICAgICAgICAvLyBcInNvdXMtbWVudS1vdXZlcnRcIiBwb3PDqWUgcGFyIG1lbnUuanMpIDogbWlzIGVuIGF2YW50IHBhciBsZVxuICAgICAgICAgICAgICAgIC8vIHBvaWRzIGRlIHBvbGljZSBwbHV0w7R0IHF1J3VuIGZvbmQgY29sb3LDqSAobWFxdWV0dGUgWERcbiAgICAgICAgICAgICAgICAvLyBcIk1lbnVfZWxvc2V4b1wiLCAyMy8wOS8yMDI2KSAtLSBlc3BhY2Ugc3VwcGzDqW1lbnRhaXJlIHNvdXMgbGVcbiAgICAgICAgICAgICAgICAvLyBncm91cGUgZMOpcGxpw6kgcG91ciBsZSBkaXN0aW5ndWVyIHZpc3VlbGxlbWVudCBkdSBwcm9jaGFpbiBpdGVtLlxuICAgICAgICAgICAgICAgIGxpLnNvdXMtbWVudS1vdXZlcnQgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGkuc291cy1tZW51LW91dmVydCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gU291cy1tZW51IGVuIGFjY29yZMOpb24gKHBhcyBkZSBzdXJ2b2wgcG9zc2libGUgYXUgdGFjdGlsZSkgOlxuICAgICAgICAgICAgICAgIC8vIGxlIGxpZW4gcGFyZW50IHJlc3RlIGNsaXF1YWJsZSBzdXIgdG91dGUgc2EgbGFyZ2V1ciAobmF2aWdhdGlvblxuICAgICAgICAgICAgICAgIC8vIG5vcm1hbGUpLCB1biBib3V0b24gZMOpZGnDqSDDoCBkcm9pdGUgKGNoZXZyb24pIGTDqXBsaWUvcmVwbGllIGxhXG4gICAgICAgICAgICAgICAgLy8gbGlzdGUgZGVzIGVuZmFudHMgLS0gbcOqbWUgcHJpbmNpcGUgdG9nZ2xlIHF1ZSBsJ2FjY29yZMOpb24gRkFRLlxuICAgICAgICAgICAgICAgIGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4gPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNTRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQW5jcsOpIGF1IHNvbW1ldCBkdSA8bGk+IChwYXMgY2VudHLDqSBzdXIgc2EgaGF1dGV1ciB0b3RhbGUpIDpcbiAgICAgICAgICAgICAgICAvLyBsZSA8bGk+IGNvbnRpZW50IGF1c3NpIGxlIC5zdWItbWVudSBxdWkgZ3JhbmRpdCBxdWFuZCBpbCBzZVxuICAgICAgICAgICAgICAgIC8vIGTDqXBsaWUsIGRvbmMgdW4gY2VudHJhZ2UgdmVydGljYWwgw6AgNTAlIGR1IDxsaT4gZmVyYWl0XG4gICAgICAgICAgICAgICAgLy8gZMOpcml2ZXIgbGEgZmzDqGNoZSB2ZXJzIGxlIGJhcyBhdSBmdXIgZXQgw6AgbWVzdXJlIHF1ZSBsYVxuICAgICAgICAgICAgICAgIC8vIGxpc3RlIGQnZW5mYW50cyBzJ291dnJlLiBBbmNyw6kgZW4gaGF1dCwgZWxsZSByZXN0ZSB0b3Vqb3Vyc1xuICAgICAgICAgICAgICAgIC8vIGF1IG5pdmVhdSBkdSBsaWVuIHBhcmVudCwgb3V2ZXJ0IG91IGZlcm3DqS5cbiAgICAgICAgICAgICAgICAuc3ViLW1lbnUtdG9nZ2xlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIC5jaGV2cm9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGVuY3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRlbmNyZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxpLnNvdXMtbWVudS1vdXZlcnQgLnN1Yi1tZW51LXRvZ2dsZSAuY2hldnJvbiB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5zdWItbWVudSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjM1cyBlYXNlO1xuICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDhweCAwcHggMHB4IDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIExhIHZhbGV1ciBkJ291dmVydHVyZSAobWF4LWhlaWdodCkgbidlc3QgcGx1cyB1bmVcbiAgICAgICAgICAgICAgICAvLyBjb25zdGFudGUgYXJiaXRyYWlyZSBpY2kgOiBlbGxlIGVzdCBwb3PDqWUgZW4gSlMgKG1lbnUuanMpXG4gICAgICAgICAgICAgICAgLy8gc3VyIGxhIGhhdXRldXIgcsOpZWxsZSBkdSBjb250ZW51IChzY3JvbGxIZWlnaHQpLCBwb3VyIHVuZVxuICAgICAgICAgICAgICAgIC8vIGFuaW1hdGlvbiBwcm9wb3J0aW9ubmVsbGUgZXQgZmx1aWRlIHF1ZWwgcXVlIHNvaXQgbGVcbiAgICAgICAgICAgICAgICAvLyBub21icmUgZCdlbmZhbnRzIC0tIHVuZSBjb25zdGFudGUgZml4ZSAoZXguIDUwMHB4KSBjb250cmVcbiAgICAgICAgICAgICAgICAvLyB1biBjb250ZW51IGJpZW4gcGx1cyBjb3VydCByZW5kYWl0IGxhIHRyYW5zaXRpb24gc2FjY2Fkw6llLlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYm91dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweCBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5tZW51LnZpc2libGUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjc3LDAuMiwwLjA1LDEuMCksXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMC40cyBlYXNlO1xuICAgIH1cbn1cblxuYm9keS5uYXZzaHJpbmsgaGVhZGVyIHtcbiAgICBib3gtc2hhZG93OiAwcHggNXB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cblxuLy8gTGUgc291cy1tZW51IGRlc2t0b3Agb3V2ZXJ0IGEgc2EgcHJvcHJlIGJhbmRlIGJsYW5jaGUgKyBvbWJyZSAoY2YuXG4vLyAuc291cy1tZW51LWZvbmQpIDogb24gcmV0aXJlIGNlbGxlIGR1IGhlYWRlciByw6l0csOpY2kgcG91ciBuZSBwYXMgY3VtdWxlclxuLy8gbGVzIGRldXggb21icmVzLlxuYm9keS5uYXZzaHJpbmsuc291cy1tZW51LWRlc2t0b3Atb3V2ZXJ0IGhlYWRlciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuYm9keS5tZW51LW91dmVydCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiIsIi8vIFN0eWxlcyA6IGhvbWVcbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5cbi8qID09PT09PT09PT09PSBIRVJPID09PT09PT09PT09PSAqL1xuLmhlcm8ge1xuICAgIC5jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogNDBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDY0cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA3MnB4O1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5oZXJvLWNvbnRlbnUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXg6IDAgMSA0NDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA0NDBweDtcbiAgICAgICAgcGFkZGluZzogNjBweCAwcHggODBweCAwcHg7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5oZXJvLXZpc3VlbHMge1xuICAgICAgICAvLyBOZSBzJ8OpdGlyZSBwYXMgcG91ciByZW1wbGlyIGwnZXNwYWNlIHJlc3RhbnQgOiBzYSBsYXJnZXVyIHZpZW50IGRlXG4gICAgICAgIC8vIHNlcyBwaG90b3MgKGNhcnLDqSArIDIgY3JvcHMpLCBsZSBcImp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlblwiXG4gICAgICAgIC8vIGR1IGNvbnRhaW5lciBhYnNvcmJlIGwnZXNwYWNlIGVuIHRyb3AgZW50cmUgbGUgdGV4dGUgZXQgbGVzIHBob3Rvcy5cbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIGhlaWdodDogNDIwcHg7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMjBweDtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzZweCkge1xuICAgICAgICAgICAgaGVpZ2h0OiAyNDBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBUcm9pcyBwaG90b3MgZGFucyB1biBzZXVsIHLDqXDDqXRldXIgOiBsYSBwcmVtacOocmUgKFwiY29xdWlsbGFnZVwiKSBlc3QgZW5cbiAgICAvLyBmb3JtYXQgY2FycsOpIHBhciBkw6lmYXV0LCBsZXMgZGV1eCBhdXRyZXMgc29udCBjcm9wIChmb3JtYXQgcmVjdGFuZ3VsYWlyZVxuICAgIC8vIHZlcnRpY2FsIMOpdHJvaXQpLiBBdSBzdXJ2b2wgZCd1bmUgZGVzIGRldXggYXV0cmVzLCBjJ2VzdCBlbGxlIHF1aSBkw6ljcm9wXG4gICAgLy8gZW4gY2FycsOpIGV0IGxlcyBkZXV4IGF1dHJlcyAoZG9udCBsYSBwcmVtacOocmUpIHJlY3JvcHBlbnQgZW4gdmVydGljYWwuXG4gICAgLmhlcm8tdHVpbGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMiAvIDU7IC8vIGZvcm1hdCBjcm9wIChyZWN0YW5nbGUgdmVydGljYWwgw6l0cm9pdClcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLy8gTGEgdHVpbGUgcydhZ3JhbmRpdCB0b3Vqb3VycyBlbiBkb3VjZXVyIGF1IHN1cnZvbCAodHJhbnNpdGlvbiBzdXJcbiAgICAgICAgLy8gYXNwZWN0LXJhdGlvL2ZsZXgtZ3JvdywgY29tbWUgw6AgbCdvcmlnaW5lKS5cbiAgICAgICAgdHJhbnNpdGlvbjogYXNwZWN0LXJhdGlvIDAuNXMgZWFzZSwgZmxleC1ncm93IDAuNXMgZWFzZTtcbiAgICAgICAgLy8gRGV1eCByZWNhZHJhZ2VzIGRlIGxhIG3Dqm1lIHBob3RvICjDqXRyb2l0IFwiaG9tZS1oZXJvLXR1aWxlXCIgZXQgY2FycsOpXG4gICAgICAgIC8vIFwiaG9tZS1oZXJvLXByaW5jaXBhbGVcIiwgY2YuIGhvbWUucGhwKSBzb250IFRPVUpPVVJTIHN1cGVycG9zw6lzIGRhbnNcbiAgICAgICAgLy8gbGUgRE9NLCBjaGFjdW4gw6AgdGFpbGxlIEZJWEUgKGphbWFpcyByZWNhbGN1bMOpZSBkJ2FwcsOocyBsYSBsYXJnZXVyXG4gICAgICAgIC8vIC0tIGNoYW5nZWFudGUgLS0gZGUgbGEgdHVpbGUpLiBMZSBzdXJ2b2wgZmFpdCB1biBmb25kdSAob3BhY2l0eSlcbiAgICAgICAgLy8gZW50cmUgbGVzIGRldXggcGx1dMO0dCBxdWUgZGUgbGFpc3NlciBvYmplY3QtZml0OmNvdmVyIHJlY2FkcmVyIHVuZVxuICAgICAgICAvLyBzZXVsZSBpbWFnZSBwZW5kYW50IHF1ZSBsYSB0dWlsZSBjaGFuZ2UgZGUgZm9ybWF0IDogYydlc3QgY2VcbiAgICAgICAgLy8gcmVjYWxjdWwgY29udGludSBxdWkgZG9ubmFpdCBsJ2VmZmV0IGRlIFwiem9vbVwiLlxuICAgICAgICBpbWcsIC5pbWctcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lOyAvLyBkw6lwYXNzZSBsZSByZXNldCBnbG9iYWwgaW1ne21heC13aWR0aDoxMDAlfVxuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAvLyBGb25kdSB2b2xvbnRhaXJlbWVudCByYXBpZGUgKHBsdXTDtHQgcXUndW4gbG9uZyBjcm9zcy1mYWRlIMOgIGxhXG4gICAgICAgICAgICAvLyBtw6ptZSBkdXLDqWUgcXVlIGwnYWdyYW5kaXNzZW1lbnQgZGUgbGEgdHVpbGUpIDogbGVzIGRldXggcGhvdG9zXG4gICAgICAgICAgICAvLyBuJ29udCBwYXMgbGUgbcOqbWUgY2FkcmFnZSwgZG9uYyBsZXMgc3VwZXJwb3NlciDDoCBtaS1mb25kdSBzdXJcbiAgICAgICAgICAgIC8vIH4wLjQtMC41cyBsYWlzc2FpdCB2b2lyIGxlcyBkZXV4IGVuIHN1cmltcHJlc3Npb24gKGVmZmV0XG4gICAgICAgICAgICAvLyBcImRvdWJsZSBleHBvc2l0aW9uXCIgcGVyw6d1IGNvbW1lIHVuIGNsaWdub3RlbWVudCkuIFVuIGZvbmR1XG4gICAgICAgICAgICAvLyBjb3VydCByZW5kIGxlIGNoYW5nZW1lbnQgZGUgcGhvdG8gcXVhc2kgaW5zdGFudGFuw6kgw6AgbCdvZWlsXG4gICAgICAgICAgICAvLyBwZW5kYW50IHF1ZSBsYSB0dWlsZSwgZWxsZSwgY29udGludWUgZGUgcydhZ3JhbmRpciBlbiBkb3VjZXVyLlxuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwcyBlYXNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIEF1IFLDiVRSw4lDSVNTRU1FTlQgKHJldG91ciBhdSBmb3JtYXQgw6l0cm9pdCksIGxhIHBob3RvIGNhcnLDqWUgKHBsdXNcbiAgICAgICAgLy8gbGFyZ2UsIDQyMHB4KSBkb2l0IHJlc3RlciB2aXNpYmxlIC0tIGV0IGRvbmMgY29udGludWVyIGRlIGNvdXZyaXJcbiAgICAgICAgLy8gdG91dGUgbGEgbGFyZ2V1ciBkZSBsYSB0dWlsZSBwZW5kYW50IHF1J2VsbGUgcsOpdHLDqWNpdCAtLSBqdXNxdSfDoCBjZVxuICAgICAgICAvLyBxdWUgbGEgdHVpbGUgc29pdCBwcmVzcXVlIHJldmVudWUgw6Agc29uIGZvcm1hdCDDqXRyb2l0ICgxODBweCkgO1xuICAgICAgICAvLyBzaW5vbiwgbGEgcGhvdG8gw6l0cm9pdGUgKGVsbGUsIHRvdWpvdXJzIMOgIDE4MHB4KSBkZXZpZW50IHZpc2libGVcbiAgICAgICAgLy8gdHJvcCB0w7R0LCBhbG9ycyBxdWUgbGEgdHVpbGUgZXN0IGVuY29yZSBiaWVuIHBsdXMgbGFyZ2UgcXUnZWxsZSxcbiAgICAgICAgLy8gY2UgcXVpIGxhaXNzZSBhcHBhcmHDrnRyZSBkZXMgYm9yZHMgdmlkZXMgKGdyaXMpIGRlIGNoYXF1ZSBjw7R0w6kuXG4gICAgICAgIC8vIEQnb8O5IGxlIGTDqWxhaSBjaS1kZXNzb3VzLCByw6lnbMOpIHBvdXIgc2UgdGVybWluZXIgZW4gbcOqbWUgdGVtcHMgcXVlXG4gICAgICAgIC8vIGxhIHRyYW5zaXRpb24gZGUgbGEgdHVpbGUgKGFzcGVjdC1yYXRpbyAwLjVzKSA7IMOgIGwnQUdSQU5ESVNTRU1FTlRcbiAgICAgICAgLy8gKHZlcnMgbGUgY2FycsOpKSwgcGFzIGNlIHByb2Jsw6htZSAtLSBsYSBwaG90byBjYXJyw6llIGVzdCB0b3Vqb3Vyc1xuICAgICAgICAvLyBhdSBtb2lucyBhdXNzaSBsYXJnZSBxdWUgbGEgdHVpbGUsIGRvbmMgbGUgZm9uZHUgcGV1dCDDqnRyZSBpbW3DqWRpYXRcbiAgICAgICAgLy8gKGTDqWxhaSAwcywgY2YuIHLDqGdsZXMgOmhvdmVyIGNpLWRlc3NvdXMpLlxuICAgICAgICAuaW1nLWV0cm9pdCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogNDIwIC8gOTgwOyAvLyBtw6ptZSBmb3JtYXQgcXVlIGxhIHRhaWxsZSBob21lLWhlcm8tdHVpbGVcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjM1cztcbiAgICAgICAgfVxuICAgICAgICAuaW1nLWNhcnJlIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTsgLy8gdGFpbGxlIEZJWEUgKGNhcnLDqSA9IGhhdXRldXIgZGUgbGEgdHVpbGUsIGNvbnN0YW50ZSkgLS1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZSBkw6lwZW5kIGphbWFpcyBkZSBsYSBsYXJnZXVyLCBjaGFuZ2VhbnRlLCBkZSBsYSB0dWlsZVxuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMzVzO1xuICAgICAgICB9XG4gICAgICAgIC5kZWdyYWRlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGluc2V0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFCMTIyNztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICAgICB9XG4gICAgICAgIC50ZXh0ZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDVweDtcbiAgICAgICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRkbXNhbnM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvcm1hdCBjYXJyw6kgcGFyIGTDqWZhdXQgcG91ciBsYSBwcmVtacOocmUgcGhvdG8gKGTDqWNyb3Bww6llKVxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgICAgICAgICAvLyBCYXNlID0gY2FycsOpIGljaSwgZG9uYyB1biByZXRvdXIgw6AgY2V0IMOpdGF0IChxdWFuZCB1bmUgQVVUUkVcbiAgICAgICAgICAgIC8vIHR1aWxlIHF1J29uIHN1cnZvbGFpdCBlc3QgcmVsw6JjaMOpZSkgZXN0IHVuIEFHUkFORElTU0VNRU5UIC0tXG4gICAgICAgICAgICAvLyB0b3Vqb3VycyBzw7tyLCBkb25jIHBhcyBkZSBkw6lsYWkgw6AgaMOpcml0ZXIgZGUgbGEgcsOoZ2xlIGfDqW7DqXJhbGVcbiAgICAgICAgICAgIC8vIGNpLWRlc3N1cyAocXVpLCBlbGxlLCB2aXNlIGxlIGNhcyBkdSByw6l0csOpY2lzc2VtZW50KS5cbiAgICAgICAgICAgIC5pbWctZXRyb2l0IHsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IH1cbiAgICAgICAgICAgIC5pbWctY2FycmUgeyBvcGFjaXR5OiAxOyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgfVxuICAgICAgICAgICAgLmRlZ3JhZGUsIC50ZXh0ZSB7IG9wYWNpdHk6IDA7IH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVuIGRlc3NvdXMgZHUgcGFsaWVyIG1vYmlsZSwgbGVzIDMgcGhvdG9zIHJlbXBsaXNzZW50IHRvdXRlIGxhXG4gICAgICAgIC8vIGxhcmdldXIgZGUgLmhlcm8tdmlzdWVscyAoYXUgbGlldSBkZSBnYXJkZXIgbGV1ciBsYXJnZXVyIFwiY2FycsOpL2Nyb3BcIlxuICAgICAgICAvLyBpbnRyaW5zw6hxdWUsIGNlIHF1aSBsYWlzc2FpdCB1biB2aWRlIMOgIGRyb2l0ZSkgOiBsYSBwcm9wb3J0aW9uXG4gICAgICAgIC8vIGNhcnLDqS9jcm9wIGVzdCByZXByb2R1aXRlIHZpYSBmbGV4LWdyb3cgcGx1dMO0dCBxdWUgdmlhIGFzcGVjdC1yYXRpby5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IGF1dG87XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDIuNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIExhIGxhcmdldXIgZGUgbGEgdHVpbGUgZGV2aWVudCBmbHVpZGUgKGZsZXgtZ3JvdykgaWNpLCBhbG9ycyBxdWVcbiAgICAgICAgICAgIC8vIC5pbWctZXRyb2l0Ly5pbWctY2FycmUgZ2FyZGVudCB1bmUgbGFyZ2V1ciBGSVhFIChjYWxjdWzDqWUgZGVwdWlzXG4gICAgICAgICAgICAvLyBsZXVyIGFzcGVjdC1yYXRpbyBkZXNrdG9wKSAtLSBlbnRyZSAxMjAwcHggZXQgfjc2OHB4IGxhIHR1aWxlXG4gICAgICAgICAgICAvLyBkZXZpZW50IHBsdXMgbGFyZ2UgcXVlIGwnaW1hZ2Ugw6AgdGFpbGxlIGZpeGUsIGxhaXNzYW50IHVuIHZpZGVcbiAgICAgICAgICAgIC8vIGRlIGNoYXF1ZSBjw7R0w6kgKGNmLiByYXBwb3J0IE1hcnRpbiwgY2FyZHMgXCJjYXNzw6llc1wiIGRhbnMgY2V0dGVcbiAgICAgICAgICAgIC8vIHBsYWdlKS4gRW4gZGVzc291cywgbGEgdHVpbGUgcmVkZXZpZW50IHBsdXMgw6l0cm9pdGUgcXVlIGwnaW1hZ2VcbiAgICAgICAgICAgIC8vIGV0IMOnYSBzZSByZWNhZHJlIHBhciBvdmVyZmxvdzpoaWRkZW4sIGQnb8O5IGwnaWxsdXNpb24gcXVlXG4gICAgICAgICAgICAvLyBjJ8OpdGFpdCBcImNvcnJlY3RcIiDDoCBwYXJ0aXIgZCd1bmUgY2VydGFpbmUgbGFyZ2V1ci4gRml4IDogc3VyXG4gICAgICAgICAgICAvLyB0b3V0ZSBsYSBwbGFnZSBtb2JpbGUsIGxlcyBpbWFnZXMgcmVtcGxpc3NlbnQgMTAwJSBkZSBsYSB0dWlsZVxuICAgICAgICAgICAgLy8gKHJlY2FkcmFnZSBvYmplY3QtZml0OmNvdmVyLCBkw6lqw6AgZMOpZmluaSBwbHVzIGhhdXQpIGF1IGxpZXUgZGVcbiAgICAgICAgICAgIC8vIGdhcmRlciBsZXVyIGZvcm1hdCBjYXJyw6kvY3JvcCBmaXhlLlxuICAgICAgICAgICAgLmltZy1ldHJvaXQsIC5pbWctY2FycmUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuaGVyby12aXN1ZWxzOmhvdmVyIC5oZXJvLXR1aWxlIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAyIC8gNTtcbiAgICAgICAgLy8gUsOpdHLDqWNpc3NlbWVudCAoY2YuIGNvbW1lbnRhaXJlIHBsdXMgaGF1dCkgOiBvbiBsYWlzc2UgbGUgdGVtcHMgw6BcbiAgICAgICAgLy8gbGEgdHVpbGUgZGUgcsOpdHLDqWNpciBhdmFudCBkZSBmYWlyZSBhcHBhcmHDrnRyZSBsYSBwaG90byDDqXRyb2l0ZS5cbiAgICAgICAgLmltZy1ldHJvaXQgeyBvcGFjaXR5OiAxOyB0cmFuc2l0aW9uLWRlbGF5OiAwLjM1czsgfVxuICAgICAgICAuaW1nLWNhcnJlIHsgb3BhY2l0eTogMDsgdHJhbnNpdGlvbi1kZWxheTogMC4zNXM7IH1cbiAgICAgICAgLmRlZ3JhZGUsIC50ZXh0ZSB7IG9wYWNpdHk6IDEuMzsgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IGF1dG87XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cbiAgICAgICAgLmRlZ3JhZGUge1xuICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5oZXJvLXZpc3VlbHM6aG92ZXIgLmhlcm8tdHVpbGU6aG92ZXIge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgICAgICAvLyBBZ3JhbmRpc3NlbWVudCA6IHRvdWpvdXJzIHPDu3IsIGZvbmR1IGltbcOpZGlhdC5cbiAgICAgICAgLmltZy1ldHJvaXQgeyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgfVxuICAgICAgICAuaW1nLWNhcnJlIHsgb3BhY2l0eTogMTsgdHJhbnNpdGlvbi1kZWxheTogMHM7IH1cbiAgICAgICAgLmRlZ3JhZGUsIC50ZXh0ZSB7IG9wYWNpdHk6IDA7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgICAgICAgICAgZmxleC1ncm93OiAyLjU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PSBDSVRBVElPTiA9PT09PT09PT09PT0gKi9cbi5iYW5kZWF1LWNpdGF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICBjb2xvcjogJGJsYW5jO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiA1MHB4IDBweDtcbiAgICAvLyBFeGNlcHRpb24gOiBjZSB0aXRyZSByZXN0ZSBlbiBWZWlyYW4gUmVndWxhciAoZGVtYW5kZSBkZSBNYXJ0aW4gZHVcbiAgICAvLyAyNC8wOS8yMDI2KSwgYWxvcnMgcXVlIGxhIHLDqGdsZSBnw6luw6lyaXF1ZSAudGl0cmUgKGdsb2JhbGVzLnNjc3MpXG4gICAgLy8gZXN0IHBhc3PDqWUgZW4gRE0gU2VtaSBCb2xkIHBhciBkw6lmYXV0LlxuICAgIC50aXRyZSBoMiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZ3JvdGVzaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgbWF4LXdpZHRoOiA2ODBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggYXV0byAyOHB4O1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgfVxuICAgIC5jb250ZW51IHtcbiAgICAgICAgbWF4LXdpZHRoOiA4MjBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggYXV0bztcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgkYmxhbmMsIDAuOTIpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJvdXRvbi5ibGFuYyB7XG4gICAgICAgIG1hcmdpbjogNDBweCBhdXRvIDBweCBhdXRvO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYm9yZGVhdXg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PSBQUklTRSBFTiBDSEFSR0UgPT09PT09PT09PT09ICovXG4ucHJpc2UtZW4tY2hhcmdlIHtcbiAgICBwYWRkaW5nOiA2MHB4IDBweCAwcHggMHB4O1xuICAgIC5jb250ZW51IHtcbiAgICAgICAgbWF4LXdpZHRoOiA1NjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDhweDtcbiAgICB9XG4gICAgLnBlYy1zbGlkZXIge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLmNhcmQtcGVjIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIC50aXRyZS1jYXJ0ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIC5mb3JtZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGltZzpub3QoLmZvcm1lKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnRpdHJlLWNhcnRlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTU7XG4gICAgICAgICAgICAgICAgbGVmdDogMjZweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDYyJTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsYW5jO1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmljb25lLWZsZWNoZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE1O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDI2cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDM4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhbmM7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG4gICAgLmltcGFpcmUge1xuICAgICAgICAudGl0cmUtY2FydGUge1xuICAgICAgICAgICAgdG9wOiAyNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5pY29uZS1mbGVjaGUge1xuICAgICAgICAgICAgYm90dG9tOiAyNnB4O1xuICAgICAgICB9XG4gICAgICAgIGltZzpub3QoLmZvcm1lKSB7XG4gICAgICAgICAgICB3aWR0aDogNTUlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMzBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucGFpcmUge1xuICAgICAgICAudGl0cmUtY2FydGUge1xuICAgICAgICAgICAgYm90dG9tOiAyNnB4O1xuICAgICAgICB9XG4gICAgICAgIC5pY29uZS1mbGVjaGUge1xuICAgICAgICAgICAgdG9wOiAyNnB4O1xuICAgICAgICB9XG4gICAgICAgIGltZzpub3QoLmZvcm1lKSB7XG4gICAgICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb3VsZXVyLXRlcnJhY290dGEgLmljb25lLWZsZWNoZSB7IGNvbG9yOiAkdGVycmFjb3R0YTsgfVxuICAgIC5jb3VsZXVyLW9yYW5nZSAuaWNvbmUtZmxlY2hlIHsgY29sb3I6ICRvcmFuZ2U7IH1cbiAgICAuY291bGV1ci1ibGV1LWNsYWlyIC5pY29uZS1mbGVjaGUgeyBjb2xvcjogJGJsZXUtY2xhaXI7IH1cbiAgICAuY291bGV1ci1ibGV1IC5pY29uZS1mbGVjaGUgeyBjb2xvcjogJGJsZXU7IH1cbiAgICAuY291bGV1ci1zYXVnZSAuaWNvbmUtZmxlY2hlIHsgY29sb3I6ICRzYXVnZTsgfVxuICAgIC5jb3VsZXVyLXZlcnQgLmljb25lLWZsZWNoZSB7IGNvbG9yOiAkdmVydDsgfVxuICAgIC5jb3VsZXVyLWJvcmRlYXV4IC5pY29uZS1mbGVjaGUgeyBjb2xvcjogJGJvcmRlYXV4OyB9XG4gICAgXG4gICAgLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIFxuXG59XG4uaG9tZSB7XG4gICAgLnByaXNlLWVuLWNoYXJnZSB7XG4gICAgICAgIHBhZGRpbmc6IDYwcHggMHB4O1xuICAgIH1cbn1cbi8qID09PT09PT09PT09PSBCQU5ERUFVIEJBREdFID09PT09PT09PT09PSAqL1xuLmJhbmRlYXUtYmFkZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibGV1LWNsYWlyO1xuICAgIHBhZGRpbmc6IDY0cHggMHB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZzogNDhweCAwcHg7XG4gICAgfVxuICAgIC5iYW5kZWF1LWJhZGdlLWlubmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogNjBweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgdG9wOiAtMTIwcHg7XG4gICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgaGVpZ2h0OiAxODBweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgdG9wOiAtOTZweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNDhweDtcbiAgICAgICAgICAgIGhlaWdodDogMTQ4cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnN0YW1wLXN2ZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuc3RhbXAtZm9uZCB7IGZpbGw6ICRvcmFuZ2U7IH1cbiAgICAuc3RhbXAtbG9nby1mb25kIHsgZmlsbDogcmdiYSgkYmxhbmMsIDAuMTUpOyB9XG4gICAgLmNvbnRlbnUge1xuICAgICAgICBtYXgtd2lkdGg6IDc2MHB4O1xuICAgICAgICBtYXJnaW46IDBweCBhdXRvO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIG1hcmdpbjogODBweCBhdXRvIDBweCBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09IEFQUFJPQ0hFID09PT09PT09PT09PSAqL1xuLmFwcHJvY2hlIHtcbiAgICAucm93IHsgbWFyZ2luOiAwcHg7IH1cbiAgICAuYXBwcm9jaGUtdGV4dGUsIC5hcHByb2NoZS1pbWFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgLy8gSGF1dGV1ciBmaXhlIChldCBub24gbWluLWhlaWdodCkgOiBhdmVjIGxlIHJhdGlvIGludHJpbnPDqHF1ZSBkZVxuICAgICAgICAvLyBsJ2ltYWdlICg5MDB4MTAwMCksIHVuIHNpbXBsZSBtaW4taGVpZ2h0IGVzdCBpZ25vcsOpIGNhciBsZSBmbGV4XG4gICAgICAgIC8vIChhbGlnbi1pdGVtczogc3RyZXRjaCBwYXIgZMOpZmF1dCkgw6l0aXJlIGxlcyBkZXV4IGNvbG9ubmVzIHN1ciBsYVxuICAgICAgICAvLyBoYXV0ZXVyIGh5cG90aMOpdGlxdWUgZGUgbCdpbWFnZSwgYmllbiBwbHVzIGdyYW5kZS4gVW5lIGhlaWdodFxuICAgICAgICAvLyBleHBsaWNpdGUgZml4ZSByw6llbGxlbWVudCBsYSBoYXV0ZXVyIGR1IGJsb2MuIDU2MHB4ID0gaGF1dGV1clxuICAgICAgICAvLyBuw6ljZXNzYWlyZSBwb3VyIHF1ZSBsZSB0ZXh0ZSBsZSBwbHVzIGxvbmcgcGFybWkgbGVzIHLDqXV0aWxpc2F0aW9uc1xuICAgICAgICAvLyBkZSBjZSBtw6ptZSBibG9jIChzZWN0aW9uIFwiQ29uc3VsdGF0aW9uXCIgZGUgdGVtcGxhdGUtcGFyZW50cy5waHAsXG4gICAgICAgIC8vIH41MzlweCkgdGllbm5lIHNhbnMgZMOpYm9yZGVyLCBhdmVjIHVuZSBwZXRpdGUgbWFyZ2UgOyBsJ2ltYWdlXG4gICAgICAgIC8vIHBhc3NlIGFpbnNpIGRlIH43OTJweCDDoCA1NjBweCwgcsOpZHVjdGlvbiBiaWVuIHZpc2libGUuIFLDqXBlcmN1dMOpXG4gICAgICAgIC8vIHN1ciB0b3VzIGxlcyBibG9jcyBkdSBtw6ptZSBnYWJhcml0IChjZi4gLnRyYW5zbWV0dHJlLCBhcHByb2NoZS5zY3NzKS5cbiAgICAgICAgaGVpZ2h0OiA1NjBweDtcbiAgICAgICAgLy8gU2V1aWwgYWxpZ27DqSBzdXIgbGUgZW1waWxlbWVudCByw6llbCBkZSBsYSBncmlsbGUgQm9vdHN0cmFwXG4gICAgICAgIC8vIChjb2wtbGctNiBwYXNzZSBlbiBwbGVpbmUgbGFyZ2V1ciBzb3VzIDk5MnB4KSBldCBub24gc3VyICRtb2JpbGVcbiAgICAgICAgLy8gKDEyMDBweCkgOiBzaW5vbiBlbnRyZSA5OTJweCBldCAxMjAwcHggbGVzIGNvbG9ubmVzIHJlc3RlbnRcbiAgICAgICAgLy8gY8O0dGUgw6AgY8O0dGUgbWFpcyBsYSBoYXV0ZXVyIHJlcGFzc2UgZW4gXCJhdXRvXCIsIGNlIHF1aSByw6lpbnRyb2R1aXRcbiAgICAgICAgLy8gbGUgYnVnIGQnw6l0aXJlbWVudCAobCdpbWFnZSByZXByZW5kIHNhIGhhdXRldXIgaW50cmluc8OocXVlKS5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYXBwcm9jaGUtdGV4dGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2F1Z2U7XG4gICAgICAgIGNvbG9yOiAkYmxhbmM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiA1NnB4IDBweDtcbiAgICAgICAgfVxuICAgICAgICAuYm91dG9uLmJsYW5jIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNhdWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYTpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuYXBwcm9jaGUtdGV4dGUtaW5uZXIge1xuICAgICAgICBwYWRkaW5nOiA0MHB4IDYwcHggNDBweCAwcHg7XG4gICAgICAgIG1heC13aWR0aDogNTIwcHg7XG4gICAgICAgIC8vIEFsaWduw6kgYXZlYyBsYSBncmlsbGUgZHUgc2l0ZSAobcOqbWUgb2Zmc2V0IGdhdWNoZSBxdWUgLmNvbnRhaW5lcikgOlxuICAgICAgICAvLyBsYSBzZWN0aW9uIC5hcHByb2NoZSBlc3QgZW4gcGxlaW5lIGxhcmdldXIgKHJvdyBnLTAsIGhvcnMgLmNvbnRhaW5lciksXG4gICAgICAgIC8vIGRvbmMgb24gcmVjYWxjdWxlIGljaSBsZSBtw6ptZSBkw6ljYWxhZ2UgcXVlIHByb2R1aXJhaXQgdW4gLmNvbnRhaW5lclxuICAgICAgICAvLyBCb290c3RyYXAgKHBhbGllcnMgeGwveHhsIDogMTE0MHB4IHB1aXMgMTMyMHB4KS5cbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gMTE0MHB4KSAvIDIpO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtIDEzMjBweCkgLyAyKTtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICBtYXJnaW46IDBweCBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMHB4IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhjZXB0aW9uIDogY2UgdGl0cmUgcmVzdGUgZW4gVmVpcmFuIFJlZ3VsYXIgKGRlbWFuZGUgZGUgTWFydGluIGR1XG4gICAgLy8gMjQvMDkvMjAyNikgLS0gcydhcHBsaXF1ZSBhdXNzaSDDoCBsYSBwYWdlIFBhcmVudHMgKC5hcHByb2NoZS5ib3JkZWF1eFxuICAgIC8vIHLDqXV0aWxpc2UgLmFwcHJvY2hlLXRleHRlIHRlbCBxdWVsKS5cbiAgICAuYXBwcm9jaGUtdGV4dGUgLnRpdHJlIGgyIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRncm90ZXNrO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogJGJsYW5jO1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuICAgIC5hcHByb2NoZS10ZXh0ZSAuY29udGVudSBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoJGJsYW5jLCAwLjkyKTtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICB9XG4gICAgLmFwcHJvY2hlLWltYWdlIHtcbiAgICAgICAgaW1nLCAuaW1nLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09IFRBUklGUyA9PT09PT09PT09PT0gKi9cbi8vIEJsb2MgcGFydGFnw6kgOiBhY2N1ZWlsLCBtb2TDqGxlIFBhcmVudHMgZXQgbW9kw6hsZSBDb250YWN0IChtw6ptZSBtYXJrdXAgdmlhXG4vLyBlbG9fc2V4b19zZWN0aW9uX3RhcmlmcygpIGRhbnMgaW5jL2hlbHBlcnMucGhwKS4gU3VyIGwnYWNjdWVpbCBldCBQYXJlbnRzLFxuLy8gbGEgc2VjdGlvbiBzdWl2YW50ZSAoLmZhcSkgcG9ydGUgZMOpasOgIGwnZXNwYWNlIGR1IGJhcy5cbi50YXJpZnMge1xuICAgIHBhZGRpbmc6IDU2cHggMHB4IDBweDtcbiAgICAudGFyaWZzLWxpc3RlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBnYXA6IDQycHg7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiA0OHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEJsb2MgXCJhY3RpZlwiIMOgIDEwMCUsIGxlcyBhdXRyZXMgw6AgNjAlIDogcGFyIGTDqWZhdXQgbGUgMWVyIGJsb2MgZXN0XG4gICAgLy8gYWN0aWYgOyBkw6hzIHF1J3VuIGJsb2MgZXN0IHN1cnZvbMOpLCBjJ2VzdCBsdWkgcXVpIGRldmllbnQgYWN0aWYgKGV0IGxlXG4gICAgLy8gMWVyIHJlcGFzc2Ugw6AgNjAlIHMnaWwgbidlc3QgcGFzIHN1cnZvbMOpKS4gOmhhcygpIHBvdXIgbmUgcGFzIHRvdXRcbiAgICAvLyBwYXNzZXIgw6AgNjAlIHF1YW5kIGxhIHNvdXJpcyBlc3QgZGFucyBsJ2VzcGFjZSBlbnRyZSBsZXMgZGV1eCBibG9jcy5cbiAgICAuY2FydGUtdGFyaWYge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgIH1cbiAgICAuY2FydGUtdGFyaWY6Zmlyc3QtY2hpbGQsXG4gICAgLmNhcnRlLXRhcmlmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgLnRhcmlmcy1saXN0ZTpoYXMoLmNhcnRlLXRhcmlmOmhvdmVyKSAuY2FydGUtdGFyaWY6bm90KDpob3Zlcikge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgfVxuXG4gICAgLy8gTGFyZ2V1cnMgWEQgOiA1NzZweCBwb3VyIHVuIGJsb2Mgw6AgMiBjb2xvbm5lcywgMzcwcHggcG91ciAxIGNvbG9ubmUuXG4gICAgLmNhcnRlLXRhcmlmIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4OiAwIDEgMzcwcHg7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICR0ZXJyYWNvdHRhO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiAzM3B4IDQwcHggMjVweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNTc2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAzM3B4IDI0cHggMjVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydGUtdGFyaWYuY29sb25uZXMtMiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDU3NnB4O1xuICAgICAgICAvLyBFbiBtb2JpbGUgbGEgbGlzdGUgcGFzc2UgZW4gY29sb25uZSA6IGZsZXgtYmFzaXMgcydhcHBsaXF1ZXJhaXRcbiAgICAgICAgLy8gYWxvcnMgw6AgbGEgaGF1dGV1ciAoNTc2cHggZGUgaGF1dCkgLS0gb24gbGUgbmV1dHJhbGlzZS5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYmFkZ2UtdGFyaWYge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICBtaW4td2lkdGg6IDE3NHB4O1xuICAgICAgICBwYWRkaW5nOiA1cHggMjBweCA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMxcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgICAgICBjb2xvcjogJGNyZW1lO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgIC5jYXJ0ZS10YXJpZi1lbnRldGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICAgICAgaDMge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRkbXNhbnM7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgfVxuICAgICAgICAuZHVyZWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydGUtdGFyaWYtY29sb25uZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNvbG9ubmUtdGFyaWYge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgcGFkZGluZzogMHB4IDIxcHg7XG4gICAgICAgIG1heC13aWR0aDogMjQ4cHg7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLWxlZnQ6IDBweDsgfVxuICAgICAgICAmOmxhc3QtY2hpbGQgeyBwYWRkaW5nLXJpZ2h0OiAwcHg7IH1cbiAgICAgICAgJiArIC5jb2xvbm5lLXRhcmlmIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHRlcnJhY290dGE7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICYgKyAuY29sb25uZS10YXJpZiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0ZXJyYWNvdHRhO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnRpdHJlLWNvbG9ubmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIH1cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMHB4OyB9XG4gICAgICAgIH1cbiAgICAgICAgLnByaXgge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgICAgICB9XG4gICAgICAgIC5saWJlbGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNvbnRlbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBCb3V0b24gY2VudHLDqSBldCBjYWzDqSBlbiBiYXMgOiBsZXMgZGV1eCBibG9jcyBvbnQgbGEgbcOqbWUgaGF1dGV1clxuICAgIC8vIChhbGlnbi1pdGVtczogc3RyZXRjaCksIGxlcyBib3V0b25zIHJlc3RlbnQgYWxpZ27DqXMuXG4gICAgLmJvdXRvbi5ib3JkZWF1eCB7XG4gICAgICAgIG1hcmdpbjogYXV0byBhdXRvIDBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDIzcHg7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyMjFweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRib3JkZWF1eC10YXJpZjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJvcmRlYXV4LXRhcmlmO1xuICAgICAgICAgICAgY29sb3I6ICRjcmVtZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjhweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjRweDtcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRib3JkZWF1eC10YXJpZjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09IEZBUSA9PT09PT09PT09PT0gKi9cbi5mYXEge1xuICAgIHBhZGRpbmc6IDEwMHB4IDBweDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgIHBhZGRpbmc6IDY0cHggMHB4O1xuICAgIH1cbiAgICAuZmFxLWludHJvIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZmFxLWludHJvIC5jb250ZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09IFRFTU9JR05BR0VTID09PT09PT09PT09PSAqL1xuLnRlbW9pZ25hZ2VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9yZGVhdXg7XG4gICAgY29sb3I6ICRibGFuYztcbiAgICBwYWRkaW5nOiA4OHB4IDBweCA1NnB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgcGFkZGluZzogNTZweCAwcHggNDBweDtcbiAgICB9XG4gICAgLnRlbW9pZ25hZ2VzLXRvcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogNDBweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIC8vIMOJY2FydCByw6lkdWl0ICjDqXRhaXQgMjhweCkgOiBzdXIgbW9iaWxlIC50ZW1vaWduYWdlcy1pbnRybyAodGl0cmUgK1xuICAgICAgICAgICAgLy8gYm91dG9uIGNvbnRhY3QpIGV0IC50ZW1vaWduYWdlcy1jYXJ0ZXMgKDHDqHJlIGNhcnRlIHTDqW1vaWduYWdlKSBzb250XG4gICAgICAgICAgICAvLyBlbXBpbMOpcyBwYXIgY2UgZ2FwLCBkZW1hbmRlIGRlIE1hcnRpbiBkZSByZXNzZXJyZXIgbCdlc3BhY2UgZW50cmVcbiAgICAgICAgICAgIC8vIGxlIGJvdXRvbiBldCBsYSBjYXJ0ZSBlbiBkZXNzb3VzLlxuICAgICAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC50ZW1vaWduYWdlcy1pbnRybyB7XG4gICAgICAgIC8vIGZsZXgtYmFzaXMgZml4ZSAoMzAwcHgpIHBlbnPDqSBwb3VyIGxhIGxhcmdldXIgZW4gZGVza3RvcCAocmFuZ8OpZVxuICAgICAgICAvLyAudGVtb2lnbmFnZXMtdG9wIGVuIHJvdykgOiBlbiBtb2JpbGUsIC50ZW1vaWduYWdlcy10b3AgcGFzc2UgZW5cbiAgICAgICAgLy8gZmxleC1kaXJlY3Rpb246Y29sdW1uLCBkb25jIGNlIG3Dqm1lIGZsZXgtYmFzaXMgc2UgcmV0cm91dmVcbiAgICAgICAgLy8gYXBwbGlxdcOpIMOgIGxhIEhBVVRFVVIgZHUgYmxvYyBwbHV0w7R0IHF1J8OgIHNhIGxhcmdldXIgLS0gMzAwcHggZGVcbiAgICAgICAgLy8gaGF1dCBhbG9ycyBxdWUgbGUgdGl0cmUgKyBib3V0b24gbmUgcmVtcGxpc3NlbnQgcXUndW5lIGZyYWN0aW9uIGRlXG4gICAgICAgIC8vIGNldCBlc3BhY2UsIGQnb8O5IGxlIGdyYW5kIHZpZGUgY29uc3RhdMOpIHBhciBNYXJ0aW4gZW50cmUgbGVcbiAgICAgICAgLy8gYm91dG9uIFwiQ29udGFjdFwiIGV0IGxhIDHDqHJlIGNhcnRlIHTDqW1vaWduYWdlIGp1c3RlIGVuIGRlc3NvdXMuXG4gICAgICAgIC8vIG1heC13aWR0aDogbm9uZSAtLSBuZXV0cmFsaXNlIGxlIG1heC13aWR0aCDDqXZlbnR1ZWwgaMOpcml0w6kgZGUgbGFcbiAgICAgICAgLy8gY2xhc3NlIEJvb3RzdHJhcCBcImNvbC1sZy00XCIuXG4gICAgICAgIGZsZXg6IDAgMCAzMDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlKSB7XG4gICAgICAgICAgICAvLyB3aWR0aDogMTAwJSAhaW1wb3J0YW50IC0tIGVuIGRlc2t0b3AgKHJvdyksIGxlIGZsZXgtYmFzaXMgZGVcbiAgICAgICAgICAgIC8vIDMwMHB4IGNpLWRlc3N1cyBsJ2VtcG9ydGUgc3VyIGxlIGB3aWR0aGAgZGUgQm9vdHN0cmFwLiBNYWlzXG4gICAgICAgICAgICAvLyBpY2kgLnRlbW9pZ25hZ2VzLXRvcCBwYXNzZSBlbiBmbGV4LWRpcmVjdGlvbjpjb2x1bW4gKG1vYmlsZVxuICAgICAgICAgICAgLy8gRVQgOTkyLTEyMDBweCwgb8O5IGxhIGNsYXNzZSBCb290c3RyYXAgXCJjb2wtbGctNFwiIGVzdCBlbmNvcmVcbiAgICAgICAgICAgIC8vIGFjdGl2ZSkgOiBkYW5zIHVuIGZsZXggY29sdW1uLCBjJ2VzdCBgd2lkdGhgIChwYXMgZmxleC1iYXNpcylcbiAgICAgICAgICAgIC8vIHF1aSBmaXhlIGxhIGxhcmdldXIsIGRvbmMgbGUgd2lkdGg6MzMuMzMzJSBkZSBCb290c3RyYXBcbiAgICAgICAgICAgIC8vIFwiY29sLWxnLTRcIiByZXByZW5kIGxhIG1haW4gZXQgY29pbmNlIGxlIGJsb2Mgw6AgMzMlIChzaWduYWzDqVxuICAgICAgICAgICAgLy8gcGFyIE1hcnRpbikuIEJvb3RzdHJhcCBjaGFyZ2VhbnQgYXByw6hzIGxlIHRow6htZSAoY2YuXG4gICAgICAgICAgICAvLyBlbnF1ZXVlLnBocCksIGlsIGZhdXQgIWltcG9ydGFudCBwb3VyIGdhZ25lciBsYSBjYXNjYWRlIMOgXG4gICAgICAgICAgICAvLyBzcMOpY2lmaWNpdMOpIMOpZ2FsZSAtLSBtw6ptZSBwb2ludCBkZSB2aWdpbGFuY2UgcXVlIGxlIHBhZGRpbmdcbiAgICAgICAgICAgIC8vIC5jb250YWluZXIgZXQgbGVzIHB1Y2VzIFN3aXBlciAoY2YuIGhvbWUtYWNjdWVpbC1idWlsZC5tZCkuXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLnRpdHJlIGgyIHsgY29sb3I6ICRibGFuYzsgZm9udC1zaXplOiAyOHB4OyB9XG4gICAgICAgIC5ib3V0b24geyBcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHg7IFxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJvcmRlYXV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC50ZW1vaWduYWdlcy1jYXJ0ZXMge1xuICAgICAgICAvLyBtYXgtd2lkdGg6IG5vbmUgLS0gbcOqbWUgY29ycmVjdGlvbiBxdWUgLnRlbW9pZ25hZ2VzLWludHJvLlxuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgICAgIC8vIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQgLS0gbcOqbWUgY29ycmVjdGlvbiBxdWVcbiAgICAgICAgICAgIC8vIC50ZW1vaWduYWdlcy1pbnRybyBjaS1kZXNzdXMsIHBvdXIgbGEgY2xhc3NlIEJvb3RzdHJhcFxuICAgICAgICAgICAgLy8gXCJjb2wtbGctOFwiICh3aWR0aDo2Ni42NjclKSBxdWkgcmVwcmVuZCBsYSBtYWluIGVuXG4gICAgICAgICAgICAvLyBmbGV4LWRpcmVjdGlvbjpjb2x1bW4gZW50cmUgOTkyIGV0IDEyMDBweC5cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gU2xpZGVyIFN3aXBlciAoY2YuIC5wZWMtc2xpZGVyKSA6IG92ZXJmbG93IGhpZGRlbiArIHJlc3BpcmF0aW9uIHNvdXNcbiAgICAvLyBsZXMgcHVjZXMgZGUgcGFnaW5hdGlvbi5cbiAgICAudGVtb2lnbmFnZXMtc2xpZGVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgICAgIC5zd2lwZXItcGFnaW5hdGlvbiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMTUsIDE5OCwgMjA2LCAwLjUpICFpbXBvcnRhbnQ7XG4gICAgICAgIH0gIFxuICAgICAgICAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDdDNkNFICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnN3aXBlci1zbGlkZSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgLmNhcnRlLXRlbW9pZ25hZ2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgcGFkZGluZzogMjhweCA0OHB4O1xuICAgICAgICBjb2xvcjogJGVuY3JlO1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxNXB4O1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydGUtdGVtb2lnbmFnZS5jcmVtZSB7IGJhY2tncm91bmQtY29sb3I6ICR0ZW1vaWduYWdlLWNyZW1lOyB9XG4gICAgLmNhcnRlLXRlbW9pZ25hZ2UubWF1dmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVtb2lnbmFnZS1tYXV2ZTsgfVxuICAgIC50ZW1vaWduYWdlcy1zbGlkZXIgLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIHAge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgICBtYXJnaW46IDBweCAwcHggMjRweCAwcHg7XG4gICAgfVxuICAgIC5hdXRldXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZG1zYW5zO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuXG4gICAgLmxvZ29zLXBhcnRlbmFpcmVzIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZy10b3A6IDMycHg7XG4gICAgfVxuICAgIC5sb2dvcy10cmFjayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNjRweDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICBhbmltYXRpb246IGxvZ29zLXNjcm9sbCAyNnMgbGluZWFyIGluZmluaXRlO1xuICAgIH1cbiAgICAubG9nby1wYXJ0ZW5haXJlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgxKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTA7XG4gICAgICAgIH1cbiAgICAgICAgLmltZy1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICB3aWR0aDogOTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIEwnYW5pbWF0aW9uIGF2YW5jZSBkJ3VuZSBzZXVsZSBcInBhc3NlXCIgKDEvNiBkZSBsYSBsYXJnZXVyIHRvdGFsZSBkdSBydWJhbixcbi8vIGNmLiBsYSBib3VjbGUgUEhQIMOgIDYgcGFzc2VzIGRhbnMgaG9tZS5waHApIDogbGUgcnViYW4gZXN0IGR1cGxpcXXDqSBiaWVuIHBsdXNcbi8vIGxhcmdlIHF1ZSBsZSBjb250ZW5ldXIgdmlzaWJsZSwgZG9uYyBsYSBib3VjbGUgbmUgbW9udHJlIGphbWFpcyBkZSBibGFuYy9jb3VwdXJlLFxuLy8gcXVlbGxlIHF1ZSBzb2l0IGxhIGxhcmdldXIgZCfDqWNyYW4gb3UgbGUgbm9tYnJlIGRlIGxvZ29zIGFqb3V0w6lzIHBhciBNYXJ0aW4uXG5Aa2V5ZnJhbWVzIGxvZ29zLXNjcm9sbCB7XG4gICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAgIHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLyA2KSk7IH1cbn1cblxuLyogPT09PT09PT09PT09IEFDVFVBTElURVMgPT09PT09PT09PT09ICovXG4uYWN0dWFsaXRlcyB7XG4gICAgcGFkZGluZzogMTAwcHggMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvbmQtYWN0dWFsaXRlLCAwLjE1KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICBwYWRkaW5nOiA2NHB4IDBweDtcbiAgICB9XG4gICAgLmFjdHVhbGl0ZXMtaW50cm8ge1xuICAgICAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgICAgICBtYXJnaW46IDBweCBhdXRvIDQ4cHg7XG4gICAgfVxuICAgIC5hY3R1YWxpdGVzLWxpc3RlIHtcbiAgICAgICAgcm93LWdhcDogMzZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgLy8gU3dpcGVyIG1vYmlsZSAoY2YuIC5tb2JpbGUvLmRlc2t0b3AgZGFucyBob21lLnBocCkgOiBtw6ptZSBwcmluY2lwZSBxdWVcbiAgICAvLyAucGVjLXNsaWRlciAocGFkZGluZy1ib3R0b20gcG91ciBsYSByZXNwaXJhdGlvbiBzb3VzIGxlcyBwdWNlcywgb3ZlcmZsb3dcbiAgICAvLyBoaWRkZW4gcG91ciBuZSBwYXMgbGFpc3NlciBkw6lwYXNzZXIgbGEgY2FydGUgc3VpdmFudGUgaG9ycyBkdSBjb250ZW5ldXIpLlxuICAgIC5hY3R1LXNsaWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAuc3dpcGVyLXBhZ2luYXRpb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydGUtYWN0dWFsaXRlLWltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiA0IC8gMztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgaW1nLCAuaW1nLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICAuaWNvbmUtZmxlY2hlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgICAgICBib3R0b206IDE4cHg7XG4gICAgICAgICAgICB3aWR0aDogMzhweDtcbiAgICAgICAgICAgIGhlaWdodDogMzhweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFuYztcbiAgICAgICAgICAgIGNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBMYSBmbMOoY2hlIHJlcHJlbmQgbGEgY291bGV1ciBkZSBsYSBjYXTDqWdvcmllIGRlIGwnYXJ0aWNsZSAoY2YuIC5jb3VsZXVyLVhcbiAgICAvLyBwb3PDqSBzdXIgLmNhcnRlLWFjdHVhbGl0ZSBkYW5zIGhvbWUucGhwLCBlbiBwbHVzIGRlIGNlbHVpIHN1ciAuY2F0ZWdvcmllKS5cbiAgICAuY2FydGUtYWN0dWFsaXRlLmNvdWxldXItb3JhbmdlIC5pY29uZS1mbGVjaGUgeyBjb2xvcjogJG9yYW5nZTsgfVxuICAgIC5jYXJ0ZS1hY3R1YWxpdGUuY291bGV1ci1ibGV1IC5pY29uZS1mbGVjaGUgeyBjb2xvcjogJGJsZXU7IH1cbiAgICAuY2FydGUtYWN0dWFsaXRlLmNvdWxldXItdGVycmFjb3R0YSAuaWNvbmUtZmxlY2hlIHsgY29sb3I6ICR0ZXJyYWNvdHRhOyB9XG4gICAgLy8gRm9uZCBibGFuYyBhdSBzdXJ2b2wgZGUgbGEgY2FydGUgKGxhIHNlY3Rpb24gYSB1biBmb25kIHZlcnQgw6AgMTUgJSkuXG4gICAgLy8gUGFkZGluZy9hcnJvbmRpIHBvc8OpcyBlbiBwZXJtYW5lbmNlIHBvdXIgcXVlIGxhIGNhcnRlIG5lIGJvdWdlIHBhc1xuICAgIC8vIGF1IHN1cnZvbCAtLSBzZXVsIGxlIGZvbmQgY2hhbmdlLlxuICAgIC5jYXJ0ZS1hY3R1YWxpdGUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTJweCAyMHB4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcbiAgICAgICAgLmNhcnRlLWFjdHVhbGl0ZS1tZXRhLFxuICAgICAgICBoMyxcbiAgICAgICAgLmNvbnRlbnUge1xuICAgICAgICAgICAgcGFkZGluZzogMHB4IDhweDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFuYztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydGUtYWN0dWFsaXRlLW1ldGEge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRlbmNyZSwgMC42KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cbiAgICAuY2F0ZWdvcmllIHsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIC5jYXRlZ29yaWUuY291bGV1ci1vcmFuZ2UgeyBjb2xvcjogJG9yYW5nZTsgfVxuICAgIC5jYXRlZ29yaWUuY291bGV1ci1ibGV1IHsgY29sb3I6ICRibGV1OyB9XG4gICAgLmNhdGVnb3JpZS5jb3VsZXVyLXRlcnJhY290dGEgeyBjb2xvcjogJHRlcnJhY290dGE7IH1cbiAgICBoMyB7XG4gICAgICAgIG1hcmdpbjogMHB4IDBweCA4cHggMHB4O1xuICAgICAgICBmb250LWZhbWlseTogJGRtc2FucztcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBhIHsgY29sb3I6ICRlbmNyZTsgfVxuICAgIH1cbiAgICAuY29udGVudSBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICAgICAgY29sb3I6IHJnYmEoJGVuY3JlLCAwLjcpO1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB9XG4gICAgLmFjdHVhbGl0ZXMtdmlkZSB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRlbmNyZSwgMC42KTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG4ucGFnZS1jb3JwcyB7XG4gICAgbWFyZ2luOiAxMDBweCAwcHg7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIHtcbiAgICAgICAgbWFyZ2luOiA4MHB4IDBweDtcbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgbWFyZ2luOiA2MHB4IDBweDtcbiAgICB9XG4gICAgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgfVxuICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgIH1cbiAgICBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgfVxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICR0ZXJyYWNvdHRhO1xuICAgIH1cbiAgICAud3AtYmxvY2stcXVvdGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCAxNDcsIDk2LCAwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgICAgICBwYWRkaW5nOiAzMHB4IDUwcHg7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgICAgICB9XG4gICAgICAgIHA6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC53cC1ibG9jay1xdW90ZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9zcmMvaW1nL3F1b3RlLW9yYW5nZS5zdmcpO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxN3B4O1xuICAgICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgfVxufSIsIi8vIFN0eWxlcyBzcMOpY2lmaXF1ZXMgYXUgbW9kw6hsZSBkZSBwYWdlIFwiUGFyZW50c1wiICh0ZW1wbGF0ZS1wYXJlbnRzLnBocCxcbi8vIHByZW1pw6hyZSBwYWdlIDogXCJTZXhvdGjDqXJhcGllXCIpLiBMZSBoZXJvIGV0IGxhIEZBUSByw6l1dGlsaXNlbnQgdGVscyBxdWVsc1xuLy8gbGVzIHN0eWxlcyBkZSBob21lLnNjc3MgKC5oZXJvIC8gLmZhcSkgOyBzZXVscyBsZXMgw6lsw6ltZW50cyBwcm9wcmVzIMOgIGNlXG4vLyBtb2TDqGxlIHNvbnQgZMOpZmluaXMgaWNpIDogbGEgc2VjdGlvbiBcIkNvbnN1bHRhdGlvblwiIChjb21tZSBcIk9iamVjdGlmc1wiL1xuLy8gQXBwcm9jaGUgbWFpcyBlbiBib3JkZWF1eCkgZXQgbGEgZ3JpbGxlIFwiUXVlc3Rpb25uZW1lbnRzXCIgKGNvbW1lIFwiUHJpc2UgZW5cbi8vIGNoYXJnZVwiIG1haXMgZW4gc3dpcGVyIGRlIHBhZ2VzIGRlIDkgY2FydGVzIC0tIDMgY29sb25uZXMgeCAzIGxpZ25lcyAtLVxuLy8gYXUgbGlldSBkJ3VuIGTDqWZpbGVtZW50IGNhcnRlIHBhciBjYXJ0ZSkuXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG4vKiA9PT09PT09PT09PT0gQ09OU1VMVEFUSU9OIChjb21tZSAuYXBwcm9jaGUsIGVuIGJvcmRlYXV4KSA9PT09PT09PT09PT0gKi9cbi5hcHByb2NoZS5ib3JkZWF1eCB7XG4gICAgLmFwcHJvY2hlLXRleHRlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJvcmRlYXV4O1xuICAgICAgICAuYm91dG9uLmJsYW5jIHtcbiAgICAgICAgICAgIGEgeyBjb2xvcjogJGJvcmRlYXV4OyB9XG4gICAgICAgICAgICBhOmhvdmVyIHsgY29sb3I6ICRibGFuYzsgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT0gUVVFU1RJT05ORU1FTlRTIChncmlsbGUgM3gzLCA5IGNhcnRlcyBwYXIgc2xpZGUpID09PT09PT09PT09PSAqL1xuLy8gUsOpdXRpbGlzZSAucHJpc2UtZW4tY2hhcmdlIChiYWRnZS90aXRyZS90ZXh0ZS8uY2FydGUtcGVjL2NvdWxldXJzL3N3aXBlci1cbi8vIHBhZ2luYXRpb24pIHRlbCBxdWVsIC0tIGNmLiBob21lLnNjc3MgLS0gZG9uYyByaWVuIMOgIHJlZMOpZmluaXIgcG91clxuLy8gbCdhcHBhcmVuY2UgZGVzIGNhcnRlcyBlbGxlcy1tw6ptZXMsIHVuaXF1ZW1lbnQgbGEgbWlzZSBlbiBwYWdlIGR1IGNvbnRlbnVcbi8vIGRlIGNoYXF1ZSBzbGlkZSAodW5lIGdyaWxsZSBkZSA5IGNhcnRlcyBwbHV0w7R0IHF1J3VuZSBjYXJ0ZSB1bmlxdWUpLlxuLnF1ZXN0LXNsaWRlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xdWVzdGlvbm5lbWVudHMtZ3JpbGxlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAyOHB4O1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUpIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG59XG4vLyBBbHRlcm5hbmNlIHRpdHJlIGVuIGhhdXQvZmzDqGNoZSBlbiBiYXMgKGNhcnRlcyBpbXBhaXJlcykgb3UgbCdpbnZlcnNlXG4vLyAoY2FydGVzIHBhaXJlcyksIGNvbW1lIHN1ciBsZSBzbGlkZXIgXCJQcmlzZSBlbiBjaGFyZ2VcIiAtLSBtYWlzIGNhbMOpZSBpY2lcbi8vIHN1ciBsYSBwb3NpdGlvbiBkZSBsYSBjYXJ0ZSBEQU5TIExBIEdSSUxMRSAoLmNhcnRlLXBlYzpudGgtY2hpbGQpLCBwYXMgc3VyXG4vLyAuc3dpcGVyLXNsaWRlIGNvbW1lIGRhbnMgaG9tZS5zY3NzIDogZGFucyBjZXR0ZSBncmlsbGUsIC5zd2lwZXItc2xpZGVcbi8vIGNvbnRpZW50IDkgY2FydGVzIChwYXMgMSBzZXVsZSksIGRvbmMgYydlc3QgLmNhcnRlLXBlYyBxdWkgZG9pdCBwb3J0ZXJcbi8vIGwnYWx0ZXJuYW5jZSBwb3VyIHF1ZSBjaGFxdWUgcGFnZSBkZSA5IHJlY29tbWVuY2UgcHJvcHJlbWVudCDDoCAxLlxuLy8gTGEgcGhvdG8gb2NjdXBlIHRvdXRlIGxhIGNhcnRlICgxMDAlIHggMTAwJSwgcGFzIHNldWxlbWVudCBsZSBjb2luIDYyJXg3OCVcbi8vIHBhciBkw6lmYXV0IGRlIC5waG90by1jYXJ0ZSkgcG91ciBxdWUgbGVzIGNvaW5zIGFycm9uZGlzIGRlIGxhIGTDqWNvdXBlXG4vLyBjb8OvbmNpZGVudCBhdmVjIGxlcyBjb2lucyBkZSBsYSBjYXJ0ZSBlbGxlLW3Dqm1lIC0tIG3Dqm1lIHByaW5jaXBlIHF1ZVxuLy8gLnN3aXBlci1zbGlkZTpudGgtY2hpbGQob2RkL2V2ZW4pIC5waG90by1jYXJ0ZSBkYW5zIGhvbWUuc2NzcywgY2YuIGxhIG5vdGVcbi8vIFwiRMOpY291cGUgZGVzIGNhcnRlcyBQcmlzZSBlbiBjaGFyZ2VcIiBkZSBob21lLWFjY3VlaWwtYnVpbGQubWQuXG4ucXVlc3Rpb25uZW1lbnRzLWdyaWxsZSAuY2FydGUtcGVjIC5waG90by1jYXJ0ZSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4vLyBFbnJvYmUgLnBob3RvLWNhcnRlIChjZi4gdGVtcGxhdGUtcGFyZW50cy5waHApIDogbmUgam91ZSBhdWN1biByw7RsZSBwYXJcbi8vIGTDqWZhdXQgKGRpc3BsYXk6Y29udGVudHMpLCBkb25jIGF1Y3VuIGNoYW5nZW1lbnQgcG91ciBsZXMgY2FydGVzIHBhaXJlcy5cbi8vIFLDqWFjdGl2w6kgdW5pcXVlbWVudCBwb3VyIGxlcyBjYXJ0ZXMgaW1wYWlyZXMgY2ktZGVzc291cyAtLSBtw6ptZSBwcmluY2lwZVxuLy8gcXVlIC5waG90by1jYXJ0ZS1jbGlwIGRhbnMgaG9tZS5zY3NzLlxuLnF1ZXN0aW9ubmVtZW50cy1ncmlsbGUgLmNhcnRlLXBlYyAucGhvdG8tY2FydGUtY2xpcCB7XG4gICAgZGlzcGxheTogY29udGVudHM7XG59XG4vLyBNw6ptZSBjb3JyZWN0aWYgcXVlIC5zd2lwZXItc2xpZGU6bnRoLWNoaWxkKG9kZCkgZGFucyBob21lLnNjc3MgKGRlbWFuZGVcbi8vIGRlIE1hcnRpbiwgMjIvMDkvMjAyNikgOiBsYSBwaG90byByZXBhc3NlIGVuIGZsdXggbm9ybWFsIChwbHVzIGRlXG4vLyBoZWlnaHQ6MTAwJSkgcG91ciBxdWUgc2EgaGF1dGV1ciByw6llbGxlIGTDqXRlcm1pbmUgY2VsbGUgZGUgbGEgY2FydGUsIGV0XG4vLyBhbGlnbi1zZWxmOnN0YXJ0IMOpdml0ZSBxdWUgbGEgZ3JpbGxlIChhbGlnbi1pdGVtczpzdHJldGNoIHBhciBkw6lmYXV0KVxuLy8gbmUgcsOpw6l0aXJlIHF1YW5kIG3Dqm1lIGxhIGNhcnRlIHN1ciBsYSBoYXV0ZXVyIGRlIHNlcyB2b2lzaW5lcyBkZSBsYVxuLy8gbcOqbWUgbGlnbmUgKGNhcnRlcyBwYWlyZXMsIHJlc3TDqWVzIMOgIDM0MHB4KS5cbi5xdWVzdGlvbm5lbWVudHMtZ3JpbGxlIC5jYXJ0ZS1wZWM6bnRoLWNoaWxkKG9kZCkge1xuICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwcHg7XG59XG4ucXVlc3Rpb25uZW1lbnRzLWdyaWxsZSAuY2FydGUtcGVjOm50aC1jaGlsZChvZGQpIC5waG90by1jYXJ0ZSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiB1cmwoI2NhcnRlLXBlYy1kZWNvdXBlKTtcbiAgICBjbGlwLXBhdGg6IHVybCgjY2FydGUtcGVjLWRlY291cGUpO1xufVxuLy8gTcOqbWUgY29ycmVjdGlmIHF1ZSBkYW5zIGhvbWUuc2NzcyAoMjIvMDkvMjAyNiwgbm90ZSBkw6l0YWlsbMOpZSBsw6AtYmFzKSA6XG4vLyBib3JkZXItcmFkaXVzIHN1ciAucGhvdG8tY2FydGUgbidhIGF1Y3VuIGVmZmV0IHVuZSBmb2lzIHVuIGNsaXAtcGF0aCBwb3PDqVxuLy8gc3VyIGNlIG3Dqm1lIMOpbMOpbWVudCAocmVtcGxhY2UsIG5lIHMnYWRkaXRpb25uZSBwYXMpIC0tIGxhIHBvaW50ZSBjYXJyw6llXG4vLyBkdSB0cmFjw6kgU1ZHIChjb2luIGhhdXQtZ2F1Y2hlIG5vdGFtbWVudCwgc2lnbmFsw6kgcGFyIE1hcnRpbikgbifDqXRhaXRcbi8vIGRvbmMgbWFzcXXDqWUgcXVlIHBhciBsZSBib3JkZXItcmFkaXVzIGRlIC5jYXJ0ZS1wZWMsIG1hcmdlIGluc3VmZmlzYW50ZVxuLy8gZMOocyBxdWUgbGEgY2FydGUgcyfDqWxhcmdpdC4gLnBob3RvLWNhcnRlLWNsaXAgc2VydCBkZSBzZWNvbmQgYW5jw6p0cmUtXG4vLyBjbGlwcGV1ciBhdmVjIHVuIHJheW9uIHZvbG9udGFpcmVtZW50IGJpZW4gcGx1cyBsYXJnZSAoamFtYWlzIGF0dGVpbnRcbi8vIHBhciBsYSBsYXJnZXVyIHLDqWVsbGUgZCd1bmUgY2FydGUgZGUgY2V0dGUgZ3JpbGxlKS5cbi5xdWVzdGlvbm5lbWVudHMtZ3JpbGxlIC5jYXJ0ZS1wZWM6bnRoLWNoaWxkKG9kZCkgLnBob3RvLWNhcnRlLWNsaXAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1czogMTYwcHggMTYwcHggMHB4IDE2MHB4O1xufVxuLy8gTcOqbWUgY29ycmVjdGlmIHF1ZSBjaS1kZXNzdXMsIGFwcGxpcXXDqSBhdXggY2FydGVzIHBhaXJlcyAoZGVtYW5kZSBkZVxuLy8gTWFydGluLCAyMy8wOS8yMDI2KSA6IGxhIHBob3RvIHBlcmQgZWxsZSBhdXNzaSBzb24gaGVpZ2h0OjEwMCUsIHBvdXIgcXVlXG4vLyBzYSBoYXV0ZXVyIHLDqWVsbGUgZMOpdGVybWluZSBjZWxsZSBkZSBsYSBjYXJ0ZSAtLSB0b3V0ZXMgbGVzIGNhcnRlcyBkZVxuLy8gbGEgZ3JpbGxlIHN1aXZlbnQgZMOpc29ybWFpcyBsZSBtw6ptZSBwcmluY2lwZSAoaW1wYWlyZXMgZXQgcGFpcmVzKS5cbi5xdWVzdGlvbm5lbWVudHMtZ3JpbGxlIC5jYXJ0ZS1wZWM6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMHB4O1xufVxuLnF1ZXN0aW9ubmVtZW50cy1ncmlsbGUgLmNhcnRlLXBlYzpudGgtY2hpbGQoZXZlbikgLnBob3RvLWNhcnRlIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4vLyBEZW1hbmRlIGRlIE1hcnRpbiAoMjMvMDkvMjAyNikgOiBtZW1lIHByaW5jaXBlIHF1ZSBkYW5zIGhvbWUuc2NzcyAtLSBsZVxuLy8gY2xpcC1wYXRoIGRlcyBjYXJ0ZXMgcGFpcmVzIGVzdCBwb3NlIHN1ciAucGhvdG8tY2FydGUtY2xpcCBwbHV0b3QgcXVlXG4vLyBkaXJlY3RlbWVudCBzdXIgLnBob3RvLWNhcnRlIChsJ2ltZykuXG4ucXVlc3Rpb25uZW1lbnRzLWdyaWxsZSAuY2FydGUtcGVjOm50aC1jaGlsZChldmVuKSAucGhvdG8tY2FydGUtY2xpcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IHVybCgjY2FydGUtcGVjLWRlY291cGUtaW52ZXJzZSk7XG4gICAgY2xpcC1wYXRoOiB1cmwoI2NhcnRlLXBlYy1kZWNvdXBlLWludmVyc2UpO1xufVxuLnF1ZXN0aW9ubmVtZW50cy1ncmlsbGUgLmNhcnRlLXBlYzpudGgtY2hpbGQoZXZlbikgLnRpdHJlLWNhcnRlIHsgdG9wOiBhdXRvOyBib3R0b206IDI2cHg7IH1cbi5xdWVzdGlvbm5lbWVudHMtZ3JpbGxlIC5jYXJ0ZS1wZWM6bnRoLWNoaWxkKGV2ZW4pIC5pY29uZS1mbGVjaGUgeyB0b3A6IDI2cHg7IGJvdHRvbTogYXV0bzsgfVxuXG4vLyBCb3V0b24gXCJUb3V0IG1vbnRyZXJcIiBzb3VzIGxlIHN3aXBlciAoY2YuIG1hcXVldHRlIFhEIFwiUGFnZSBQYXJlbnRzXCIpLlxuLnF1ZXN0LWJvdXRvbi10b3V0IHtcbiAgICBtYXJnaW46IDhweCBhdXRvIDA7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT0gUEFHRSBBUlRJQ0xFIChzaW5nbGUucGhwKSA9PT09PT09PT09PT09PT09PVxuLy8gZ3VscC1zYXNzIGNvbXBpbGUgY2hhcXVlIGZpY2hpZXIgLnNjc3MgaW5kw6lwZW5kYW1tZW50IChjZi4gZ3VscGZpbGUuanMpIDpcbi8vIGltcG9ydCBuw6ljZXNzYWlyZSBpY2kgYXVzc2ksIGNvbW1lIGRhbnMgbGVzIGF1dHJlcyBmaWNoaWVycyBkdSB0aMOobWUuXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG4vKiA9PT09PT09PT09PT0gSEVSTyAodGl0cmUgKyBjYXTDqWdvcmllcyArIHBob3RvKSA9PT09PT09PT09PT0gKi9cbi5oZXJvLWFydGljbGUge1xuICAgIHBhZGRpbmc6IDY0cHggMHB4IDgwcHg7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICBwYWRkaW5nOiA0MHB4IDBweCA0OHB4O1xuICAgIH1cbiAgICAuaGVyby1hcnRpY2xlLXRleHRlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMzJweDtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJG1vYmlsZSkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDYXTDqWdvcmllcyBjbGlxdWFibGVzIHNvdXMgbGUgdGl0cmUgLS0gcsOpdXRpbGlzZSAucGlsdWxlIChjb3VsZXVycyArXG4gICAgLy8gaG92ZXIgaW52ZXJzw6kpIGTDqWrDoCBkw6lmaW5pIGRhbnMgYWN0dWFsaXRlcy5zY3NzLCBqdXN0ZSBhbGlnbsOpZXMgw6BcbiAgICAvLyBnYXVjaGUgaWNpIChwYXMgY2VudHLDqWVzIGNvbW1lIC5waWx1bGVzLWNhdGVnb3JpZXMgZGUgbCdhcmNoaXZlKS5cbiAgICAuaGVyby1hcnRpY2xlLWNhdGVnb3JpZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICB9XG4gICAgLmhlcm8tYXJ0aWNsZS1pbnRybyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5oZXJvLWFydGljbGUtaW1hZ2Uge1xuICAgICAgICBpbWcsIC5pbWctcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDIgLyAxO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PSBDT1JQUyBERSBMJ0FSVElDTEUgPT09PT09PT09PT09ICovXG4vLyBNaXNlIGVuIHBhZ2UgcHJpc2UgZW4gY2hhcmdlIHBhciBNYXJ0aW4gLS0ganVzdGUgdW4gcGV1IGQnYWlyIGVuIGRlc3NvdXNcbi8vIGR1IGhlcm8gZXQgYXUtZGVzc3VzIGRlIFwiUGx1cyBkJ2FydGljbGVzXCIgcG91ciBsJ2luc3RhbnQuXG4uYXJ0aWNsZS1jb3JwcyB7XG4gICAgaDIge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAkb3JhbmdlO1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGNvbG9yOiAkdGVycmFjb3R0YTtcbiAgICB9XG4gICAgLndwLWJsb2NrLXF1b3RlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgMTQ3LCA5NiwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICAgICAgcGFkZGluZzogMzBweCA1MHB4O1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICBjb2xvcjogJG9yYW5nZTtcbiAgICAgICAgfVxuICAgICAgICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAud3AtYmxvY2stcXVvdGU6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vc3JjL2ltZy9xdW90ZS1vcmFuZ2Uuc3ZnKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgICB3aWR0aDogMTdweDtcbiAgICAgICAgaGVpZ2h0OiAyN3B4O1xuICAgIH1cbn1cbmlmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzNTBweDtcbn1cbi5hY3R1YWxpdGVzIHtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbn1cbiJdfQ== */
