@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Montserrat:wght@400;500;600&display=swap');

/* --- OVERFLOW FIXES --- */
html, body {
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
  position: relative;
}
/* ---------------------- */

h2{
  font-size:clamp(30px,4vw,54px);
  letter-spacing:2px;
}

@media(min-width:1025px){
  .side-numbers{
    position:absolute;
    top:190px;
    left:2.5vw;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:16px;
    color:var(--brown);
    font-family:Cinzel,serif;
    font-size:22px;
    line-height:1;
    text-align:center;
    z-index:12;
  }

  .side-numbers::before,
  .side-numbers::after{
    content:"";
    width:1px;
    height:110px;
    background:var(--brown2);
    display:block;
  }

  .hero-copy{
    position:relative;
    z-index:8;
    margin-left:20px;
    transform:translateY(-30px);
  }
}




/* Innovation Core - Hero Image Focus */

/* Platform Section */

/* Tablet */

/* Mobile */

/* Hero Ipad Pro */

/* Hero Ipad Air */

/* Hero Ipad Mini */


/* Hero Mobile */

/* Hero Mobile */


/* Hero Mobile 390px */


/* Premium Sepia Scrollbar */

/* RAYOS */

/* iPad Pro */

/* iPad Air */

/* iPad Mini */

/* Mobile */

/* Mobile Small */


/* BOTON BACK TO TOP */

/* ALINEACION TEXTOS FOOTER */



/* LEGACY SECTION */


/* ANCHOR SCROLL OFFSET */


/* Footer */

/* Tablet */

/* Mobile */

/* Mobile only - center section number and content */


/* Innovation features - always left aligned */


/* =========================================================
   EXPERIENCE SECTION
   FINAL LEFT ALIGN + 3-LINE TITLE + BIGGER IMAGE
========================================================= */

/* Tablet */

/* Mobile */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Montserrat:wght@400;500;600&display=swap');

:root{
  --paper:#e2dacb;
  --paper2:#d2c6b4;
  --ink:#21170f;
  --muted:#5d5043;
  --brown:#4b260b;
  --brown2:#7b4a17;
  --gold:#a36b1d;
  --line:rgba(75,38,11,.24);
  --soft:rgba(75,38,11,.08);
  --white-soft:rgba(255,255,255,.22);
  --shadow:0 24px 70px rgba(75,38,11,.16);
}

*{box-sizing:border-box}

body{
  margin:0;
  color:var(--ink);
  font-family:Montserrat,system-ui,sans-serif;
  background:
    radial-gradient(circle at 65% 20%, rgba(255,255,255,.38), transparent 30%),
    radial-gradient(circle at 20% 85%, rgba(75,38,11,.09), transparent 28%),
    linear-gradient(180deg,var(--paper),var(--paper2));
  overflow-x:hidden;
}

body.menu-open{overflow:hidden}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.22;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg,var(--line) 1px, transparent 1px);
  background-size:333px 333px;
  mask-image:linear-gradient(to bottom,black,transparent 90%);
}

img{max-width:100%;display:block}

a{color:inherit}

.site-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:50;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:24px 5vw;
  background:rgba(226,218,203,.78);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}

.brand{
  font-family:Cinzel,serif;
  text-decoration:none;
  color:var(--ink);
  font-size:24px;
  letter-spacing:8px;
  font-weight:500;
}

.brand span{
  display:block;
  font-family:Montserrat,sans-serif;
  font-size:10px;
  letter-spacing:3px;
  margin-top:4px;
  color:var(--brown);
}

.main-nav{
  display:flex;
  gap:26px;
  align-items:center;
}

.main-nav a{
  position:relative;
  text-decoration:none;
  color:var(--ink);
  font-size:13px;
  letter-spacing:2px;
  font-weight:500;
  padding:12px 4px;
}

.main-nav a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:4px;
  width:0;
  height:1px;
  background:var(--gold);
  transition:.35s ease;
}

.main-nav a:hover::after{width:100%}

.main-nav .nav-cta{
  border:1px solid var(--brown);
  padding:14px 22px;
  color:var(--brown);
  overflow:hidden;
}

.menu-toggle{
  display:none;
  width:54px;
  height:54px;
  border:1px solid rgba(75,38,11,.35);
  border-radius:50%;
  background:rgba(255,255,255,.18);
  color:var(--brown);
  position:relative;
  cursor:pointer;
  z-index:80;
  box-shadow:0 18px 45px rgba(75,38,11,.12);
}

.menu-toggle::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:50%;
  border:1px solid rgba(163,107,29,.25);
  animation:teslaRing 2.8s linear infinite;
}

.menu-toggle span{
  position:absolute;
  left:15px;
  width:22px;
  height:1.5px;
  background:var(--brown);
  transition:.35s ease;
}

.menu-toggle span:nth-child(1){top:19px}
.menu-toggle span:nth-child(2){top:27px}
.menu-toggle span:nth-child(3){top:35px}

.menu-toggle.active span:nth-child(1){top:27px;transform:rotate(45deg)}
.menu-toggle.active span:nth-child(2){opacity:0;transform:translateX(10px)}
.menu-toggle.active span:nth-child(3){top:27px;transform:rotate(-45deg)}

.mobile-energy{
  position:fixed;
  inset:0;
  z-index:45;
  pointer-events:none;
  opacity:0;
  background:
    radial-gradient(circle at 82% 18%, rgba(163,107,29,.24), transparent 26%),
    linear-gradient(90deg, transparent, rgba(75,38,11,.18));
  transition:.45s ease;
}

body.menu-open .mobile-energy{opacity:1}

.hero{
  position:relative;
  min-height:100vh;
  padding:150px 5vw 70px;
  display:grid;
  grid-template-columns:1fr 1.2fr;
  align-items:center;
  gap:40px;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}

.hero-copy{
  position:relative;
  z-index:8;
}

.eyebrow{
  color:var(--brown2);
  letter-spacing:4px;
  text-transform:uppercase;
  font-size:14px;
  font-weight:500;
}

h1,h2{
  font-family:Cinzel,serif;
  font-weight:500;
  line-height:.98;
  margin:0;
}

h1{
  font-size:clamp(58px,8vw,128px);
  letter-spacing:4px;
}

h2{
  font-size:clamp(30px,4vw,48px);
  letter-spacing:1.5px;
}

p{
  color:var(--muted);
  line-height:1.75;
  font-size:15px;
}

.lead{max-width:470px;margin:28px 0}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-decoration:none;
  background:var(--brown);
  color:#fff;
  padding:16px 24px;
  letter-spacing:2px;
  font-size:12px;
  font-weight:600;
  border:1px solid var(--brown);
  box-shadow:0 16px 40px rgba(75,38,11,.22);
  cursor:pointer;
  transition:.35s ease;
}

.btn:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 50px rgba(75,38,11,.26);
}

.btn-ghost{
  background:transparent;
  color:var(--brown);
  box-shadow:none;
}

.hero-visual{
  position:relative;
  min-height:700px;
  display:grid;
  place-items:end center;
}

.tesla-portrait{
  position:absolute;
  right:-7vw;
  top:-18px;
  width:min(760px,58vw);
  max-height:760px;
  object-fit:contain;
  filter:sepia(.25) contrast(1.04);
  opacity:.90;
  z-index:3;
}

.wardenclyffe-tower{
  position:absolute;
  bottom:-20px;
  left:14%;
  width:min(680px,50vw);
  transform:translateX(-50%);
  filter:sepia(.2) contrast(1.08);
  z-index:4;
}

.hero-lightning{
  display:none;
}

.tesla-quote{
  position:absolute;
  right:2vw;
  bottom:120px;
  z-index:5;
  max-width:270px;
  font-family:Cinzel,serif;
  font-style:italic;
  color:var(--brown);
  display: none;
}

.tesla-quote span{
  display:block;
  margin-top:18px;
}

.diagram{
  display:none;
}

.hero-bg-diagram{
  position:absolute;
  pointer-events:none;
  user-select:none;
  opacity:.24;
  filter:sepia(1) saturate(.75) contrast(.82) brightness(1.18);
  mix-blend-mode:multiply;
  z-index:1;
}

.hero-bg-diagram-01{
  width:min(300px,20vw);
  right:1vw;
  top:140px;
  opacity:.15;
}

.hero-bg-diagram-02{
  width:min(620px,42vw);
  left:15vw;
  top:100px;
  opacity:.15;
}

.diagram::before,
.diagram::after{
  content:"";
  position:absolute;
  border:1px solid rgba(123,74,23,.2);
  border-radius:50%;
}

.diagram::before{inset:28%}
.diagram::after{inset:44%}

.diagram-hero-01{width:190px;height:190px;right:8vw;top:130px}
.diagram-hero-02{width:140px;height:140px;left:-50px;top:460px}

.side-numbers{
  position:absolute;
  left:2.5vw;
  top:220px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  color:var(--brown);
  font-family:Cinzel,serif;
  font-size:22px;
  line-height:1;
  text-align:center;
}

.side-numbers::before,
.side-numbers::after{
  content:"";
  width:1px;
  height:110px;
  background:var(--brown2);
  display:block;
}

.content-section{
  position:relative;
  padding:72px 5vw;
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:110px 1.1fr 2.2fr;
  gap:44px;
  align-items:center;
}

.section-number{
  font-family:Cinzel,serif;
  font-size:52px;
  color:var(--brown2);
}

.section-number span{
  display:block;
  font-family:Montserrat,sans-serif;
  font-size:12px;
  color:var(--ink);
  letter-spacing:2px;
}

.section-intro p{max-width:520px}

.card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}

.info-card{
  border-left:1px solid var(--line);
  padding:22px;
  transition:.35s ease;
}

.info-card:hover{
  background:var(--soft);
  transform:translateY(-6px);
}

.icon-shell,
.mini-icon{
  border:none;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--brown);
}

.icon-shell{
  width:86px;
  height:86px;
  font-size:34px;
  margin-bottom:18px;
}

.mini-icon{
  width:52px;
  height:52px;
  font-size:22px;
  flex:0 0 auto;
}

h3{
  letter-spacing:2px;
  font-size:15px;
  margin:0 0 12px;
  color:var(--ink);
}


.innovation-grid{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:28px;
  align-items:center;
}




/* Innovation Core - Hero Image Focus */

#innovation .energy-core{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(500px, 38vw);
  aspect-ratio:1 / 1;
  border:none !important;
  outline:none !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible;
  isolation:isolate;
}

#innovation .energy-core,
#innovation .energy-core *{
  border-color:transparent !important;
}

#innovation .energy-core span{
  display:none !important;
}

#innovation .energy-core::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:50%;
  height:50%;
  transform:translate(-50%, -50%);
  border-radius:50%;
  z-index:1;
  pointer-events:none;
  background:radial-gradient(circle,
    rgba(255,255,255,.98) 0%,
    rgba(255,250,232,.82) 18%,
    rgba(255,232,170,.42) 42%,
    rgba(184,119,27,.16) 64%,
    transparent 82%
  );
  filter:blur(20px);
  mix-blend-mode:screen;
  animation:innovationAuraPulse 3.2s infinite ease-in-out;
}

#innovation .energy-core::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:70%;
  height:70%;
  transform:translate(-50%, -50%) rotate(0deg);
  border-radius:50%;
  z-index:2;
  pointer-events:none;
  background:conic-gradient(
    from 0deg,
    transparent 0deg,
    transparent 38deg,
    rgba(255,255,255,.50) 58deg, /* Modest increase to white */
    rgba(255,255,255,.95) 78deg, /* Modest increase to white */
    rgba(255,236,180,.36) 96deg, /* ORIGINAL yellow */
    transparent 132deg,
    transparent 360deg
  );
  filter:blur(12px);
  opacity:.78;
  mix-blend-mode:screen;
  animation:innovationEnergySweep 6.4s linear infinite;
}

#innovation .energy-core img{
  position:relative;
  z-index:3;
  width:98%;
  height:98%;
  object-fit:contain;
  border:none !important;
  outline:none !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:sepia(.12) contrast(1.1) brightness(1.03);
  pointer-events:none;
  user-select:none;
  animation:innovationCoreFloat 4.6s infinite ease-in-out;
}

#innovation .feature-item .mini-icon img{
  width:52px;
  height:52px;
  object-fit:contain;
  display:block;
}

@keyframes innovationAuraPulse{
  0%,100%{
    opacity:.38;
    transform:translate(-50%, -50%) scale(.78);
    filter:blur(18px);
  }

  42%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1.24);
    filter:blur(30px);
  }

  68%{
    opacity:.58;
    transform:translate(-50%, -50%) scale(.96);
    filter:blur(22px);
  }
}

@keyframes innovationEnergySweep{
  0%{
    transform:translate(-50%, -50%) rotate(0deg);
    opacity:.22;
  }

  22%{
    opacity:.9;
  }

  52%{
    opacity:.48;
  }

  100%{
    transform:translate(-50%, -50%) rotate(360deg);
    opacity:.22;
  }
}

@keyframes innovationCoreFloat{
  0%,100%{
    transform:translateY(0) scale(1);
  }

  50%{
    transform:translateY(-8px) scale(1.025);
  }
}

@media(max-width:1180px){
  #innovation .energy-core{
    width:min(460px, 42vw);
  }
}

@media(max-width:1440px){
  #innovation .energy-core{
    width:min(420px, 58vw);
    margin-inline:auto;
  }
}

@media(max-width:560px){
  #innovation .energy-core{
    width:min(340px, 88vw);
    margin-inline:auto;
  }

  #innovation .energy-core::before{
    width:54%;
    height:54%;
  }

  #innovation .energy-core::after{
    width:74%;
    height:74%;
  }

  #innovation .energy-core img{
    width:100%;
    height:100%;
  }
}





.feature-list{display:grid;gap:20px}

.feature-item{
  display:grid;
  grid-template-columns:60px 1fr;
  gap:18px;
  align-items:start;
}

/* Platform Section */

#platform .platform-area{
  align-self:center;
  width:100%;
}

#platform .platform-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:0;
  width:100%;
  border-left:1px solid rgba(75,38,11,.18);
  border-top:1px solid rgba(75,38,11,.18);
}

#platform .platform-grid article{
  position:relative;
  min-height:190px;
  padding:34px 26px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-right:1px solid rgba(75,38,11,.18);
  border-bottom:1px solid rgba(75,38,11,.18);
  overflow:hidden;
  transition:transform .35s ease;
}

#platform .platform-grid article::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.16);
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
}

#platform .platform-grid article:hover{
  transform:translateY(-6px);
}

#platform .platform-grid article:hover::before{
  opacity:1;
}

#platform .platform-grid .mini-icon,
#platform .platform-grid h3{
  position:relative;
  z-index:1;
}

#platform .platform-grid .mini-icon{
  width:52px;
  height:52px;
  margin-bottom:22px;
  border:none;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--brown);
  font-size:22px;
}

#platform .platform-grid h3{
  font-family:Montserrat, sans-serif;
  font-size:14px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:3px;
  color:var(--ink);
}

#platform .platform-tags{
  width:100%;
  margin-top:0;
  padding:22px 18px 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  flex-wrap:wrap;
}

#platform .platform-tags span{
  font-family:Montserrat, sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:7px;
  color:var(--brown);
}

#platform .platform-tags i{
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--brown);
  opacity:.8;
}

/* Tablet */
@media(max-width:1440px){
  #platform .platform-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  #platform .platform-grid article{
    min-height:180px;
    padding:32px 24px;
  }
}

/* Mobile */
@media(max-width:560px){
  #experience.content-section{
    grid-template-columns:1fr !important;
    text-align:center !important;
    padding:72px 6vw 86px !important;
    gap:34px !important;
    overflow:hidden !important;
  }

  #experience .section-number,
  #experience .section-intro{
    justify-self:center !important;
    text-align:center !important;
    margin-inline:auto !important;
    max-width:100% !important;
  }

  #experience .section-intro{
    padding-inline:8px !important;
  }

  #experience .section-intro .eyebrow{
    margin-bottom:16px !important;
  }

  #experience .section-intro h2,
  #experience .section-intro p{
    text-align:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
    max-width:100% !important;
  }

  #experience .section-intro p{
    margin-top:24px !important;
    padding-inline:10px !important;
  }

  #experience .experience-visual{
    --coil-x:41.6%;
    --coil-y:13.5%;
    width:min(500px, 108vw) !important;
    max-width:none !important;
    margin-top:18px !important;
    margin-inline:auto !important;
    transform:none !important;
    overflow:visible !important;
  }

  #experience .coil-glow{
    width:17% !important;
  }

  #experience .coil-ray{
    width:18% !important;
  }
}

.contact-form{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:16px;
}

.form-fields{display:grid;gap:12px}

input,
textarea{
  width:100%;
  padding:16px;
  background:var(--white-soft);
  border:1px solid var(--line);
  color:var(--ink);
  font-family:Montserrat,sans-serif;
  outline:none;
}

textarea{min-height:132px;resize:vertical}

.contact-form button{
  grid-column:2;
  justify-self:end;
}

.site-footer{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:26px 5vw;
  color:var(--muted);
  letter-spacing:3px;
  font-size:12px;
}

.section-reveal{
  opacity:0;
  transform:translateY(24px);
  transition:.8s ease;
}

.section-reveal.visible{
  opacity:1;
  transform:none;
}

@keyframes pulse{
  0%,100%{opacity:.45;transform:scale(1)}
  50%{opacity:1;transform:scale(1.08)}
}

@keyframes float{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-16px) rotate(8deg)}
}

@keyframes teslaRing{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

@media(max-width:1180px){
  .platform-grid{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:1440px){
  .site-header{padding:18px 5vw}
  .brand{font-size:18px;letter-spacing:5px}
  .brand span{font-size:8px;letter-spacing:2px}
  .menu-toggle{display:block}

  .main-nav{
    position:fixed;
    top:0;
    right:0;
    width:min(88vw,420px);
    height:100vh;
    padding:110px 34px 34px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:16px;
    background:
      radial-gradient(circle at 20% 20%, rgba(163,107,29,.18), transparent 28%),
      linear-gradient(145deg,rgba(232,225,211,.98),rgba(207,195,177,.96));
    border-left:1px solid rgba(75,38,11,.28);
    box-shadow:-40px 0 90px rgba(75,38,11,.22);
    transform:translateX(110%);
    transition:transform .65s cubic-bezier(.22,1,.36,1);
    overflow:hidden;
  }

  .main-nav::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.35;
    background:
      linear-gradient(90deg,transparent 0 32%,rgba(75,38,11,.14) 33%,transparent 34%),
      linear-gradient(0deg,transparent 0 32%,rgba(75,38,11,.10) 33%,transparent 34%);
    background-size:111px 111px;
  }

  .main-nav::after{
    content:"3  33  333";
    position:absolute;
    left:34px;
    bottom:32px;
    font-family:Cinzel,serif;
    letter-spacing:10px;
    color:rgba(75,38,11,.32);
  }

  .main-nav.active{transform:translateX(0)}

  .main-nav a{
    opacity:0;
    transform:translateX(36px);
    padding:18px 20px;
    border:1px solid rgba(75,38,11,.18);
    background:rgba(255,255,255,.18);
    color:var(--ink);
    box-shadow:0 14px 35px rgba(75,38,11,.08);
    transition:
      opacity .45s ease,
      transform .45s ease,
      background .35s ease,
      color .35s ease;
  }

  .main-nav.active a{
    opacity:1;
    transform:translateX(0);
  }

  .main-nav.active a:nth-child(1){transition-delay:.10s}
  .main-nav.active a:nth-child(2){transition-delay:.15s}
  .main-nav.active a:nth-child(3){transition-delay:.20s}
  .main-nav.active a:nth-child(4){transition-delay:.25s}
  .main-nav.active a:nth-child(5){transition-delay:.30s}
  .main-nav.active a:nth-child(6){transition-delay:.35s}

  .main-nav a:hover{
    background:var(--brown);
    color:white;
    transform:translateX(-8px);
  }

  .main-nav .nav-cta{
    margin-top:12px;
    text-align:center;
    background:var(--brown);
    color:white;
    border-color:var(--brown);
  }

  .hero{
    grid-template-columns:1fr;
    padding-top:130px;
  }

  .hero-visual{min-height:590px}

  .tesla-portrait{
    width:min(100%,680px);
    right:-8vw;
    top:0;
    opacity:.84;
  }

  .wardenclyffe-tower{
    width:min(640px,104vw);
    left:32%;
    bottom:0;
  }

  .hero-lightning{
    display:none;
  }

  .tesla-quote{display:none}

  .content-section,
  .experience{
    grid-template-columns:1fr;
    gap:28px;
  }

  .card-grid,
  .innovation-grid,
  .platform-grid,
  .contact-form{
    grid-template-columns:1fr;
  }

  .contact-form button{
    grid-column:auto;
    justify-self:start;
  }

  .side-numbers{display:none}

  .site-footer{
    flex-direction:column;
  }
}

/* Hero Ipad Pro */

@media(min-width: 768px) and (max-width: 1440px){
  .hero{
    grid-template-columns: 0.9fr 1.1fr !important;
    min-height: 710px !important;
    padding: 125px 4vw 120px !important;
    gap: 0 !important;
    align-items:start !important;
    overflow:hidden !important;
  }

  .hero-copy{
    z-index: 10 !important;
    transform:translateY(120px) !important;
  }

  .hero-visual{
    min-height: 585px !important;
    transform:translateY(65px) !important;
    overflow:visible !important;
  }

  .tesla-portrait{
    right: -12vw !important;
    top: -15px !important;
    width: min(580px, 62vw) !important;
    max-height: 580px !important;
    opacity: .88 !important;
  }

  .wardenclyffe-tower{
    left: 18% !important;
    bottom: 25px !important;
    width: min(450px, 43vw) !important;
    transform:translateX(-50%) !important;
  }

  .hero-bg-diagram-01{
    width: min(220px, 22vw) !important;
    right: -2vw !important;
    top: 75px !important;
    opacity: .10 !important;
  }

  .hero-bg-diagram-02{
    width: min(500px, 48vw) !important;
    left: 20vw !important;
    top: 20px !important;
    opacity: .12 !important;
  }

  .side-numbers,
  .tesla-quote{
    display:none !important;
  }
}

/* Hero Ipad Air */

@media (min-width: 800px) and (max-width: 900px){
  .site-header{
    padding: 18px 4vw !important;
  }

  .brand{
    font-size: 17px !important;
    letter-spacing: 5px !important;
  }

  .brand span{
    font-size: 7px !important;
    letter-spacing: 2px !important;
  }

  .hero{
    grid-template-columns: 0.86fr 1.14fr !important;
    min-height: 660px !important;
    padding: 95px 4vw 75px !important;
    gap: 0 !important;
    align-items:start !important;
    overflow:hidden !important;
  }

  .hero-copy{
    z-index: 10 !important;
    transform:translateY(95px) !important;
  }

  h1{
    font-size: clamp(54px, 8vw, 78px) !important;
    letter-spacing: 3px !important;
  }

  .eyebrow{
    font-size: 11px !important;
    letter-spacing: 3px !important;
  }

  .lead{
    max-width: 300px !important;
    margin: 18px 0 20px !important;
  }

  .lead p,
  p{
    font-size: 12px !important;
    line-height: 1.65 !important;
  }

  .hero-actions{
    gap: 10px !important;
  }

  .btn{
    padding: 13px 18px !important;
    font-size: 10px !important;
    letter-spacing: 1.5px !important;
  }

  .hero-visual{
    min-height: 535px !important;
    transform:translateY(58px) !important;
    overflow:visible !important;
  }

  .tesla-portrait{
    right: -15vw !important;
    top: -5px !important;
    width: min(560px, 68vw) !important;
    max-height: 560px !important;
    opacity: .88 !important;
  }

  .wardenclyffe-tower{
    left: calc(16% + 40px) !important;
    bottom: 30px !important;
    width: min(410px, 45vw) !important;
    transform:translateX(-50%) !important;
  }

  .hero-bg-diagram-01{
    width: min(190px, 22vw) !important;
    right: -2vw !important;
    top: 75px !important;
    opacity: .08 !important;
  }

  .hero-bg-diagram-02{
    width: min(430px, 50vw) !important;
    left: 18vw !important;
    top: 20px !important;
    opacity: .10 !important;
  }

  .side-numbers,
  .tesla-quote{
    display:none !important;
  }
}

/* Hero Ipad Mini */
@media (min-width: 768px) and (max-width: 799px){
  .hero{
    grid-template-columns: 0.84fr 1.16fr !important;
    min-height: 690px !important;
    padding: 122px 4vw 95px !important;
    gap: 0 !important;
    align-items:start !important;
    overflow:hidden !important;
  }

  .hero-copy{
    z-index: 10 !important;
    transform:translateY(88px) !important;
  }

  .hero-visual{
    min-height: 500px !important;
    transform:translateY(50px) !important;
    overflow:visible !important;
  }

  .tesla-portrait{
    right: -19vw !important;
    top: -25px !important;
    width: min(540px, 72vw) !important;
    max-height: 540px !important;
    opacity: .88 !important;
  }

  .wardenclyffe-tower{
    left: calc(16% + 70px) !important;
    bottom: 5px !important;
    width: min(385px, 46vw) !important;
    transform:translateX(-50%) !important;
  }

  .hero-bg-diagram-01{
    width: min(170px, 22vw) !important;
    right: -2vw !important;
    top: 75px !important;
    opacity: .08 !important;
  }

  .hero-bg-diagram-02{
    width: min(390px, 50vw) !important;
    left: 18vw !important;
    top: 20px !important;
    opacity: .10 !important;
  }

  .side-numbers,
  .tesla-quote{
    display:none !important;
  }
}


/* Hero Mobile */

/* Hero Mobile */

@media(max-width:560px){
  .hero{
    grid-template-columns:1fr !important;
    min-height:auto !important;
    padding:125px 5vw 88px !important;
    gap:0 !important;
    overflow:hidden !important;
  }

  .hero-copy{
    z-index:10 !important;
    transform:none !important;
  }

  h1{
    font-size:clamp(52px,18vw,76px) !important;
    line-height:.95 !important;
  }

  .lead{
    max-width:100% !important;
    margin:22px 0 20px !important;
  }

  .hero-actions{
    display:grid !important;
    gap:12px !important;
  }

  .btn{
    width:100% !important;
  }

  .hero-visual{
    min-height:430px !important;
    margin-top:28px !important;
    transform:none !important;
    overflow:visible !important;
  }

  .hero-bg-diagram-01{
    display:block !important;
    position:absolute !important;
    width:min(420px,112vw) !important;
    left:-25vw !important;
    right:auto !important;
    top:260px !important;
    bottom:auto !important;
    opacity:.18 !important;
    filter:sepia(1) saturate(.75) contrast(.9) brightness(1.08) !important;
    mix-blend-mode:multiply !important;
    pointer-events:none !important;
    user-select:none !important;
    z-index:1 !important;
  }

  .tesla-portrait{
    right:-26vw !important;
    top:20px !important;
    width:min(510px,116vw) !important;
    max-height:510px !important;
    z-index:2 !important;
  }

  .wardenclyffe-tower{
    left:30% !important;
    bottom:-72px !important;
    width:min(380px,94vw) !important;
    transform:translateX(-50%) !important;
    z-index:3 !important;
  }

  .hero-bg-diagram-02,
  .side-numbers,
  .tesla-quote{
    display:none !important;
  }

  .content-section{
    padding:58px 5vw !important;
  }
}


/* Hero Mobile 390px */

@media(max-width:390px){
  .hero{
    padding-top:140px !important;
  }

  h1{
    font-size:clamp(48px,17vw,64px) !important;
    letter-spacing:2px !important;
  }

  .lead{
    margin:18px 0 18px !important;
  }

  .btn{
    padding:14px 18px !important;
    font-size:10px !important;
  }

  .hero-visual{
    min-height:400px !important;
    margin-top:22px !important;
  }

  .hero-bg-diagram-01{
    width:min(390px,118vw) !important;
    left:-35vw !important;
    top:260px !important;
    opacity:.16 !important;
  }

  .tesla-portrait{
    right:-30vw !important;
    top:18px !important;
    width:min(480px,124vw) !important;
    max-height:480px !important;
  }

  .wardenclyffe-tower{
    left:31% !important;
    bottom:-48px !important;
    width:min(350px,92vw) !important;
  }
}


/* Premium Sepia Scrollbar */
html{
  scrollbar-width:thin;
  scrollbar-color:rgba(75,38,11,.72) rgba(226,218,203,.78);
}

::-webkit-scrollbar{
  width:12px;
  height:12px;
}

::-webkit-scrollbar-track{
  background:
    linear-gradient(180deg, rgba(226,218,203,.95), rgba(210,198,180,.95));
  border-left:1px solid rgba(75,38,11,.16);
}

::-webkit-scrollbar-thumb{
  background:
    linear-gradient(180deg, rgba(163,107,29,.92), rgba(75,38,11,.88));
  border:3px solid rgba(226,218,203,.95);
  border-radius:999px;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.22),
    0 0 18px rgba(163,107,29,.22);
}

::-webkit-scrollbar-thumb:hover{
  background:
    linear-gradient(180deg, rgba(181,126,43,.98), rgba(75,38,11,.98));
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.28),
    0 0 22px rgba(163,107,29,.32);
}

::-webkit-scrollbar-corner{
  background:var(--paper2);
}

/* RAYOS */

.tower-lightning-overlay{
  position:absolute;
  left:14%;
  bottom:180px;
  width:620px !important;
  transform:translateX(-50%);
  z-index:6;
  pointer-events:none;
  user-select:none;
  mix-blend-mode:multiply;
  filter:sepia(1) saturate(.9) contrast(1.15) brightness(1.1);
}

.lightning-a{
  opacity:.45;
  animation:lightningPulseA 2.8s infinite ease-in-out;
}

.lightning-b{
  opacity:0;
  transform:translateX(-50%) scale(1.04) rotate(2deg);
  animation:lightningPulseB 3.4s infinite ease-in-out;
  filter:sepia(1) saturate(.55) contrast(.85) brightness(1.45);
  mix-blend-mode:screen;
}

@keyframes lightningPulseA{
  0%,100%{opacity:.12}
  8%{opacity:.65}
  12%{opacity:.22}
  18%{opacity:.78}
  24%{opacity:.18}
  55%{opacity:.35}
}

@keyframes lightningPulseB{
  0%,100%{opacity:0}
  15%{opacity:.28}
  18%{opacity:.04}
  22%{opacity:.38}
  28%{opacity:.06}
  62%{opacity:.16}
}

/* iPad Pro */
@media(min-width: 768px) and (max-width: 1440px){
  .tower-lightning-overlay{
    left: 18% !important;
    bottom:160px !important;
    width:470px !important;
  }
}

/* iPad Air */
@media (min-width:800px) and (max-width:900px){
  .tower-lightning-overlay{
    left:calc(16% + 40px) !important;
    bottom:90px !important;
    width:430px !important;
  }
}

/* iPad Mini */
@media (min-width:768px) and (max-width:799px){
  .tower-lightning-overlay{
    left:calc(16% + 70px) !important;
    bottom:70px !important;
    width:400px !important;
  }
}

/* Mobile */
@media(max-width:560px){
  .tower-lightning-overlay{
    left:30% !important;
    bottom:18px !important;
    width:420px !important;
  }
}

/* Mobile Small */
@media(max-width:390px){
  .tower-lightning-overlay{
    left:31% !important;
    bottom:35px !important;
    width:420px !important;
  }
}


/* BOTON BACK TO TOP */

.back-to-top{
  position:fixed;
  right:28px;
  bottom:28px;
  width:58px;
  height:58px;
  border-radius:50%;
  border:1px solid rgba(75,38,11,.38);
  background:rgba(226,218,203,.72);
  backdrop-filter:blur(16px);
  color:var(--brown);
  font-family:Cinzel,serif;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  z-index:90;
  box-shadow:0 18px 45px rgba(75,38,11,.18);
  opacity:0;
  visibility:hidden;
  transform:translateY(18px);
  transition:.35s ease;
}

.back-to-top::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:50%;
  border:1px solid rgba(163,107,29,.25);
  animation:teslaRing 2.8s linear infinite;
}

.back-to-top.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.back-to-top:hover{
  background:var(--brown);
  color:#fff;
  transform:translateY(-4px);
}

@media(max-width:560px){
  .back-to-top{
    right:18px;
    bottom:18px;
    width:52px;
    height:52px;
    font-size:23px;
  }
}

/* ALINEACION TEXTOS FOOTER */

@media(max-width:560px){
  .site-footer{
    text-align:center !important;
    align-items:center !important;
    justify-content:center !important;
  }

  .site-footer *{
    text-align:center !important;
  }
}



/* LEGACY SECTION */

#legacy.content-section{
  grid-template-columns:150px 1.15fr 2.2fr;
  align-items:center;
  padding:72px 5vw;
  overflow:visible;
}

#legacy .legacy-side{
  position:relative !important;
  isolation:isolate !important;
  overflow:visible !important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
}

#legacy .legacy-side .section-number{
  position:relative;
  z-index:4;
  text-align:center;
}

#legacy .legacy-artifact{
  position:relative !important;
  z-index:5 !important;
  width:300px !important;
  max-width:none !important;
  margin-top:4px;
  transform:translateX(-4px);
  opacity:.96;
  filter:sepia(.18) contrast(1.08);
  pointer-events:none;
  user-select:none;
}

#legacy .legacy-side::before{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:calc(63% - 60px) !important;
  width:125px !important;
  height:125px !important;
  transform:translate(-50%, -50%) !important;
  border-radius:50% !important;
  z-index:8 !important;
  pointer-events:none !important;
  background:radial-gradient(circle,
    rgba(255,248,205,.88) 0%,
    rgba(255,224,135,.55) 18%,
    rgba(218,151,48,.28) 42%,
    rgba(163,107,29,.14) 64%,
    transparent 82%
  ) !important;
  filter:blur(12px) !important;
  mix-blend-mode:screen !important;
  animation:legacyBulbLight 2.8s infinite ease-in-out !important;
}

#legacy .legacy-side::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:calc(63% - 60px) !important;
  width:40px !important;
  height:40px !important;
  transform:translate(-50%, -50%) !important;
  border-radius:50% !important;
  z-index:9 !important;
  pointer-events:none !important;
  background:radial-gradient(circle,
    rgba(255,255,235,.95) 0%,
    rgba(255,232,150,.72) 36%,
    rgba(218,151,48,.26) 64%,
    transparent 84%
  ) !important;
  filter:blur(5px) !important;
  mix-blend-mode:screen !important;
  animation:legacyBulbSpark 1.9s infinite steps(1) !important;
}

#legacy .legacy-intro{
  max-width:560px;
}

#legacy .legacy-intro h2{
  max-width:560px;
}

#legacy .legacy-intro p{
  max-width:430px;
  margin:24px 0 28px;
}

#legacy .legacy-card-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  align-self:stretch;
  border-left:1px solid rgba(75,38,11,.18);
}

#legacy .legacy-card{
  position:relative;
  min-height:400px;
  padding:22px 30px 34px;
  border-right:1px solid rgba(75,38,11,.18);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  overflow:hidden;
  transition:transform .35s ease;
}

#legacy .legacy-card::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  left:-2px;
  z-index:0;
  background:rgba(255,255,255,.16);
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
}

#legacy .legacy-card:hover{
  transform:translateY(-6px);
}

#legacy .legacy-card:hover::before{
  opacity:1;
}

#legacy .legacy-card-image,
#legacy .legacy-card-content,
#legacy .legacy-card h3,
#legacy .legacy-card p{
  position:relative;
  z-index:1;
}

#legacy .legacy-card-image{
  height:230px;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
  padding-inline:10px;
  box-sizing:border-box;
}

#legacy .legacy-card-image img{
  width:100%;
  max-width:350px;
  height:100%;
  object-fit:contain;
  opacity:.94;
  filter:sepia(.25) contrast(1.08);
  transform:scale(1.04);
  transition:transform .35s ease, opacity .35s ease;
}

#legacy .legacy-card:hover .legacy-card-image img{
  transform:scale(1.09);
  opacity:1;
}

#legacy .legacy-card h3{
  font-family:Montserrat, sans-serif;
  font-size:14px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:3px;
  color:var(--ink);
  margin-bottom:18px;
}

#legacy .legacy-card p{
  font-size:15px;
  line-height:1.75;
  color:var(--muted);
  max-width:250px;
}

@keyframes legacyBulbLight{
  0%,100%{
    opacity:.30;
    width:80px;
    height:80px;
    filter:blur(10px);
  }

  38%{
    opacity:.72;
    width:135px;
    height:135px;
    filter:blur(14px);
  }

  58%{
    opacity:.42;
    width:170px;
    height:170px;
    filter:blur(18px);
  }

  78%{
    opacity:.62;
    width:105px;
    height:105px;
    filter:blur(12px);
  }
}

@keyframes legacyBulbSpark{
  0%,100%{
    opacity:.22;
    transform:translate(-50%, -50%) scale(.78);
  }

  18%{
    opacity:.78;
    transform:translate(-50%, -50%) scale(.96);
  }

  22%{
    opacity:.28;
  }

  45%{
    opacity:.88;
    transform:translate(-50%, -50%) scale(1.08);
  }

  49%{
    opacity:.24;
  }

  76%{
    opacity:.64;
  }
}

@media(max-width:1180px){
  #legacy.content-section{
    grid-template-columns:140px 1fr;
    gap:46px;
  }

  #legacy .legacy-card-grid{
    grid-column:1 / -1;
  }

  #legacy .legacy-artifact{
    width:290px !important;
  }

  #legacy .legacy-side::before,
  #legacy .legacy-side::after{
    top:calc(63% - 45px) !important;
  }

  #legacy .legacy-card{
    min-height:420px;
  }

  #legacy .legacy-card-image{
    height:260px;
    padding-inline:10px;
  }

  #legacy .legacy-card-image img{
    max-width:430px;
    transform:scale(1.08);
  }

  #legacy .legacy-card:hover .legacy-card-image img{
    transform:scale(1.13);
  }
}

@media(max-width:1440px){
  #legacy.content-section{
    grid-template-columns:120px 1fr;
    gap:34px;
    padding:64px 5vw;
  }

  #legacy .legacy-side{
    align-items:center;
  }

  #legacy .legacy-artifact{
    width:270px !important;
  }

  #legacy .legacy-side::before,
  #legacy .legacy-side::after{
    top:calc(64% - 45px) !important;
  }

  #legacy .legacy-card{
    min-height:420px;
    padding:22px 30px 32px;
  }

  #legacy .legacy-card-image{
    height:260px;
    padding-inline:10px;
  }

  #legacy .legacy-card-image img{
    max-width:420px;
    transform:scale(1.08);
  }

  #legacy .legacy-card:hover .legacy-card-image img{
    transform:scale(1.13);
  }

  #legacy .legacy-card h3{
    font-size:13px;
    letter-spacing:2.5px;
  }

  #legacy .legacy-card p{
    font-size:14px;
  }
}

@media(max-width:760px){
  #legacy .legacy-card-grid{
    grid-template-columns:1fr;
    border-left:none;
    border-top:1px solid rgba(75,38,11,.18);
  }

  #legacy .legacy-card{
    min-height:auto;
    border-right:none;
    border-bottom:1px solid rgba(75,38,11,.18);
    text-align:center;
    align-items:center;
    padding:34px 30px 38px;
  }

  #legacy .legacy-card::before{
    left:0;
  }

  #legacy .legacy-card-image{
    height:320px;
    padding-inline:10px;
    margin-bottom:14px;
  }

  #legacy .legacy-card-image img{
    max-width:520px;
    transform:scale(1.10);
  }

  #legacy .legacy-card:hover .legacy-card-image img{
    transform:scale(1.15);
  }

  #legacy .legacy-card p{
    max-width:360px;
  }
}

@media(max-width:560px){
  #legacy.content-section{
    grid-template-columns:1fr;
    text-align:center;
    gap:28px;
    padding:58px 5vw !important;
  }

  #legacy .legacy-side{
    align-items:center;
    gap:14px;
  }

  #legacy .legacy-side .section-number{
    text-align:center;
  }

  #legacy .legacy-artifact{
    width:240px !important;
    transform:none;
    margin-top:0;
  }

  #legacy .legacy-side::before{
    top:calc(64% - 45px) !important;
    width:115px !important;
    height:115px !important;
  }

  #legacy .legacy-side::after{
    top:calc(64% - 45px) !important;
    width:38px !important;
    height:38px !important;
  }

  #legacy .legacy-intro{
    max-width:100%;
  }

  #legacy .legacy-intro h2,
  #legacy .legacy-intro p{
    max-width:100%;
  }

  #legacy .legacy-intro .btn{
    margin-inline:auto;
  }

  #legacy .legacy-card{
    padding:34px 30px 38px;
  }

  #legacy .legacy-card-image{
    height:300px;
    padding-inline:10px;
    margin-bottom:14px;
  }

  #legacy .legacy-card-image img{
    max-width:500px;
    transform:scale(1.12);
  }

  #legacy .legacy-card:hover .legacy-card-image img{
    transform:scale(1.17);
  }

  #legacy .legacy-card h3{
    font-size:13px;
    letter-spacing:2.4px;
  }

  #legacy .legacy-card p{
    font-size:14.5px;
    line-height:1.75;
  }
}


/* ANCHOR SCROLL OFFSET */

html{
  scroll-behavior:smooth;
  scroll-padding-top: 60px;
}

section[id],
[id].content-section{
  scroll-margin-top: 60px;
}

@media(max-width:1440px){
  html{
    scroll-padding-top: 55px;
  }

  section[id],
  [id].content-section{
    scroll-margin-top: 55px;
  }
}

@media(max-width:560px){
  html{
    scroll-padding-top: 45px;
  }

  section[id],
  [id].content-section{
    scroll-margin-top: 45px;
  }
}


/* Footer */

.site-footer{
  width:100%;
  padding:24px 5vw;
  border-top:0px;
  display:grid;
  grid-template-columns:1fr 2fr 1fr;
  align-items:center;
  gap:24px;
  background:rgba(226,218,203,.72);
}

.footer-brand,
.footer-copy{
  font-family:Montserrat, sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:4px;
  color:var(--ink);
}

.footer-brand{
  text-align:left;
}

.footer-copy{
  text-align:right;
}

.footer-quote{
  text-align:center;
  font-size:16.5px;
  font-weight:400;
  line-height:1.6;
  letter-spacing:3px;
  color:var(--muted);
}

.footer-quote span{
  display:inline-block;
  margin-left:8px;
  font-size:16.5px;
  font-weight:400;
  letter-spacing:3px;
}

/* Tablet */
@media(max-width:1440px){
  .site-footer{
    grid-template-columns:1fr;
    text-align:center;
    gap:14px;
    padding:28px 5vw;
  }

  .footer-brand,
  .footer-copy{
    text-align:center;
  }

  .footer-quote{
    max-width:720px;
    margin:0 auto;
  }
}

/* Mobile */
@media(max-width:560px){
  .site-footer{
    padding:30px 6vw;
    gap:16px;
  }

  .footer-brand,
  .footer-copy{
    font-size:12px;
    letter-spacing:3px;
  }

  .footer-quote,
  .footer-quote span{
    font-size:15px;
    letter-spacing:1.8px;
  }

  .footer-quote span{
    display:block;
    margin-left:0;
    margin-top:6px;
  }
}

/* Mobile only - center section number and content */

@media(max-width:560px){
  .content-section{
    text-align:center;
  }

  .section-number{
    text-align:center;
    margin-inline:auto;
  }

  .section-intro{
    text-align:center;
    margin-inline:auto;
  }

  .section-intro h2,
  .section-intro p{
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }

  .section-intro .btn{
    margin-inline:auto;
  }
}


/* Innovation features - always left aligned */

#innovation .feature-list{
  text-align:left !important;
}

#innovation .feature-item{
  text-align:left !important;
  align-items:flex-start !important;
}

#innovation .feature-item > div:last-child{
  text-align:left !important;
}

#innovation .feature-item h3,
#innovation .feature-item p{
  text-align:left !important;
  margin-left:0 !important;
  margin-right:0 !important;
}


/* =========================================================
   EXPERIENCE SECTION
========================================================= */

#experience,
#experience *{
  box-sizing:border-box !important;
}

#experience.content-section{
  display:grid !important;
  grid-template-columns:150px minmax(0, 1.35fr) minmax(420px, 1fr) !important;
  align-items:center !important;
  column-gap:20px !important;
  row-gap:28px !important;
  padding:72px 5vw !important;
  min-height:500px !important;
  width:100% !important;
  max-width:100% !important;
  overflow:hidden !important;
}

#experience .section-number{
  justify-self:start !important;
  align-self:center !important;
  text-align:left !important;
  margin:0 !important;
  transform:none !important;
  max-width:100% !important;
  min-width:0 !important;
}

#experience .section-intro{
  justify-self:start !important;
  align-self:center !important;
  width:100% !important;
  max-width:880px !important;
  min-width:0 !important;
  margin:0 !important;
  text-align:left !important;
  overflow-wrap:break-word !important;
}

#experience .section-intro .eyebrow{
  display:block !important;
  margin-bottom:14px !important;
}

#experience .section-intro h2{
  width:100% !important;
  max-width:880px !important;
  min-width:0 !important;
  text-align:left !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}

#experience .section-intro p{
  width:100% !important;
  max-width:640px !important;
  min-width:0 !important;
  margin:26px 0 0 !important;
  text-align:left !important;
  overflow-wrap:break-word !important;
}

#experience .experience-visual{
  --coil-x:41.6%;
  --coil-y:13.5%;

  position:relative !important;
  justify-self:end !important;
  align-self:center !important;
  width:min(970px, 60vw) !important;
  max-width:100% !important;
  min-width:0 !important;
  aspect-ratio:1.45 / 1 !important;
  margin:0 !important;
  transform:translateX(10px) !important;
  border:none !important;
  background:transparent !important;
  overflow:hidden !important;
  isolation:isolate !important;
}

#experience .experience-visual::before,
#experience .experience-visual::after{
  display:none !important;
}

#experience .experience-visual img{
  position:relative !important;
  z-index:3 !important;
  width:100% !important;
  max-width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  display:block !important;
  opacity:.88 !important;
  filter:sepia(.18) contrast(1.08) !important;
  pointer-events:none !important;
  user-select:none !important;
}

#experience .coil-glow{
  position:absolute !important;
  left:var(--coil-x) !important;
  top:var(--coil-y) !important;
  width:14% !important;
  aspect-ratio:1 / 1 !important;
  transform:translate(-50%, -50%) !important;
  border-radius:50% !important;
  z-index:2 !important;
  pointer-events:none !important;
  background:radial-gradient(circle,
    rgba(255,255,255,1) 0%,
    rgba(255,248,220,.78) 18%,
    rgba(255,224,145,.42) 42%,
    rgba(184,119,27,.16) 64%,
    transparent 82%
  ) !important;
  filter:blur(10px) !important;
  mix-blend-mode:screen !important;
  animation:experienceCoilGlow 2.6s infinite ease-in-out !important;
}

#experience .coil-glow::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:28%;
  height:28%;
  transform:translate(-50%, -50%);
  border-radius:50%;
  background:rgba(255,255,255,.95);
  filter:blur(2px);
  animation:experienceSparkCore 1.35s infinite steps(1,end);
}

#experience .coil-ray{
  position:absolute !important;
  left:var(--coil-x) !important;
  top:var(--coil-y) !important;
  width:18% !important;
  height:2px !important;
  transform-origin:left center !important;
  z-index:4 !important;
  pointer-events:none !important;
  opacity:0 !important;
  background:linear-gradient(90deg,
    rgba(255,255,255,1),
    rgba(255,248,215,.95),
    rgba(255,220,130,.45),
    transparent
  ) !important;
  filter:drop-shadow(0 0 8px rgba(255,255,255,.85)) drop-shadow(0 0 12px rgba(255,225,150,.45)) !important;
  clip-path:polygon(
    0 46%, 8% 18%, 16% 58%, 27% 24%,
    39% 72%, 52% 30%, 66% 66%, 82% 36%,
    100% 50%, 100% 62%, 82% 78%, 66% 48%,
    52% 88%, 39% 42%, 27% 76%, 16% 36%,
    8% 72%, 0 58%
  ) !important;
  animation:experienceRayBurst 3.6s infinite steps(1,end) !important;
}

#experience .ray-1{
  transform:rotate(-46deg) !important;
  animation-delay:.15s !important;
}

#experience .ray-2{
  width:16% !important;
  transform:rotate(16deg) !important;
  animation-delay:1.15s !important;
}

#experience .ray-3{
  width:14% !important;
  transform:rotate(-96deg) !important;
  animation-delay:2.05s !important;
}

@keyframes experienceCoilGlow{
  0%,100%{
    opacity:.26;
    transform:translate(-50%, -50%) scale(.72);
    filter:blur(9px);
  }

  38%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1.28);
    filter:blur(15px);
  }

  62%{
    opacity:.48;
    transform:translate(-50%, -50%) scale(.92);
    filter:blur(11px);
  }
}

@keyframes experienceSparkCore{
  0%, 58%, 100%{
    opacity:.25;
    transform:translate(-50%, -50%) scale(.65);
  }

  60%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1.35);
  }

  63%{
    opacity:.35;
    transform:translate(-50%, -50%) scale(.85);
  }

  66%{
    opacity:.95;
    transform:translate(-50%, -50%) scale(1.15);
  }
}

@keyframes experienceRayBurst{
  0%, 64%, 100%{
    opacity:0;
  }

  66%{
    opacity:.95;
  }

  68%{
    opacity:.18;
  }

  70%{
    opacity:1;
  }

  72%{
    opacity:.25;
  }

  74%{
    opacity:.85;
  }

  77%{
    opacity:0;
  }
}

/* Tablet */
@media(max-width:1180px){
  #experience.content-section{
    grid-template-columns:150px minmax(0, 1fr) !important;
    column-gap:20px !important;
    row-gap:34px !important;
    padding:72px clamp(20px, 5vw, 56px) !important;
    min-height:auto !important;
  }

  #experience .section-number{
    justify-self:start !important;
    text-align:left !important;
  }

  #experience .section-intro{
    max-width:880px !important;
    text-align:left !important;
  }

  #experience .section-intro h2,
  #experience .section-intro p{
    text-align:left !important;
  }

  #experience .experience-visual{
    grid-column:1 / -1 !important;
    justify-self:center !important;
    width:min(870px, 94vw) !important;
    max-width:100% !important;
    transform:none !important;
    overflow:hidden !important;
  }
}

/* Mobile */
@media(max-width:560px){
  #experience.content-section{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) !important;
    gap:32px !important;
    width:100% !important;
    max-width:100% !important;
    padding:72px 22px 82px !important;
    text-align:center !important;
    overflow:hidden !important;
  }

  #experience .section-number{
    justify-self:center !important;
    text-align:center !important;
    margin:0 auto !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  #experience .section-intro{
    justify-self:center !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    padding-inline:0 !important;
    margin:0 auto !important;
    text-align:center !important;
    overflow-wrap:anywhere !important;
  }

  #experience .section-intro .eyebrow{
    text-align:center !important;
    margin-bottom:16px !important;
  }

  #experience .section-intro h2,
  #experience .section-intro p{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
    overflow-wrap:anywhere !important;
  }

  #experience .section-intro p{
    margin-top:24px !important;
  }

  #experience .experience-visual{
    --coil-x:41.6%;
    --coil-y:13.5%;

    grid-column:auto !important;
    justify-self:center !important;
    width:min(610px, 100%) !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:4px auto 0 !important;
    transform:none !important;
    overflow:hidden !important;
  }

  #experience .experience-visual img{
    width:100% !important;
    max-width:100% !important;
    height:100% !important;
    object-fit:contain !important;
  }

  #experience .coil-glow{
    width:17% !important;
  }

  #experience .coil-ray{
    width:15% !important;
  }
}

@media(max-width:380px){
  #experience.content-section{
    padding-left:18px !important;
    padding-right:18px !important;
  }
}



/* =========================================================
   GLOBAL TYPOGRAPHY SCALE - FINAL CLEAN
========================================================= */

/* DESCRIPCIONES PRINCIPALES */
p,
.lead,
.lead p,
.section-intro p,
.info-card p,
.feature-item p,
.legacy-card p,
#legacy .legacy-card p,
#experience .section-intro p,
#innovation .section-intro p,
#platform .section-intro p,
#contact .section-intro p{
  font-size:16px !important;
  line-height:1.75 !important;
  font-weight:400 !important;
}

/* TEXTOS PEQUEÑOS SUPERIORES */
.eyebrow{
  font-size:14.5px !important;
  line-height:1.4 !important;
  font-weight:500 !important;
}

/* TÍTULOS SECUNDARIOS / CARDS */
h3,
.info-card h3,
.feature-item h3,
.legacy-card h3,
#legacy .legacy-card h3{
  font-size:15.5px !important;
  line-height:1.35 !important;
  font-weight:600 !important;
}

/* PLATFORM CARDS */
#platform .platform-grid h3{
  font-size:14.5px !important;
  line-height:1.35 !important;
  font-weight:600 !important;
}

/* TAGS / LABELS PEQUEÑOS */
.section-number span,
#platform .platform-tags span{
  font-size:12.5px !important;
  line-height:1.4 !important;
  font-weight:500 !important;
}

/* BOTONES PRINCIPALES - NO TOCA BACK TO TOP */
.btn,
.contact-form button[type="submit"],
.hero-actions button,
.hero-actions a{
  font-size:12.5px !important;
  line-height:1.2 !important;
  font-weight:600 !important;
}

/* FORMULARIOS */
input,
textarea,
select{
  font-size:14.5px !important;
  line-height:1.5 !important;
  font-weight:400 !important;
}

/* FOOTER */
.footer-quote,
.footer-quote span{
  font-size:16px !important;
  line-height:1.7 !important;
  font-weight:400 !important;
}

.footer-brand,
.footer-copy{
  font-size:13px !important;
  line-height:1.5 !important;
  font-weight:600 !important;
}

/* TABLET */
@media(max-width:1180px){
  p,
  .lead,
  .lead p,
  .section-intro p,
  .info-card p,
  .feature-item p,
  .legacy-card p,
  #legacy .legacy-card p,
  #experience .section-intro p,
  #innovation .section-intro p,
  #platform .section-intro p,
  #contact .section-intro p{
    font-size:16px !important;
    line-height:1.75 !important;
    font-weight:400 !important;
  }

  h3,
  .info-card h3,
  .feature-item h3,
  .legacy-card h3,
  #legacy .legacy-card h3{
    font-size:15.5px !important;
    line-height:1.35 !important;
  }

  #platform .platform-grid h3{
    font-size:14.5px !important;
  }

  .eyebrow{
    font-size:14.5px !important;
  }

  .btn,
  .contact-form button[type="submit"],
  .hero-actions button,
  .hero-actions a{
    font-size:12.5px !important;
  }

  input,
  textarea,
  select{
    font-size:14.5px !important;
  }

  .footer-quote,
  .footer-quote span{
    font-size:16px !important;
  }

  .footer-brand,
  .footer-copy{
    font-size:13px !important;
  }
}

/* MOBILE */
@media(max-width:560px){
  p,
  .lead,
  .lead p,
  .section-intro p,
  .info-card p,
  .feature-item p,
  .legacy-card p,
  #legacy .legacy-card p,
  #experience .section-intro p,
  #innovation .section-intro p,
  #platform .section-intro p,
  #contact .section-intro p{
    font-size:16px !important;
    line-height:1.75 !important;
    font-weight:400 !important;
  }

  h3,
  .info-card h3,
  .feature-item h3,
  .legacy-card h3,
  #legacy .legacy-card h3{
    font-size:15px !important;
    line-height:1.35 !important;
  }

  #platform .platform-grid h3{
    font-size:14.5px !important;
  }

  .eyebrow{
    font-size:14px !important;
  }

  .section-number span,
  #platform .platform-tags span{
    font-size:12.5px !important;
  }

  .btn,
  .contact-form button[type="submit"],
  .hero-actions button,
  .hero-actions a{
    font-size:12.5px !important;
  }

  input,
  textarea,
  select{
    font-size:14.5px !important;
  }

  .footer-quote,
  .footer-quote span{
    font-size:16px !important;
  }

  .footer-brand,
  .footer-copy{
    font-size:13px !important;
  }
}
/*# sourceMappingURL=data:application/json;base64,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O0VBRUUseUJBQXlCO0VBQ3pCLDBCQUEwQjtFQUMxQiwwQkFBMEI7QUFDNUI7O0FBRUEsV0FBVztBQUNYO0VBQ0U7Ozs7Ozs7Ozs7OztJQVlFLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsMEJBQTBCO0VBQzVCOztFQUVBOzs7OztJQUtFLDJCQUEyQjtJQUMzQiwyQkFBMkI7RUFDN0I7O0VBRUE7SUFDRSwyQkFBMkI7RUFDN0I7O0VBRUE7SUFDRSwyQkFBMkI7RUFDN0I7O0VBRUE7Ozs7SUFJRSwyQkFBMkI7RUFDN0I7O0VBRUE7OztJQUdFLDJCQUEyQjtFQUM3Qjs7RUFFQTs7SUFFRSx5QkFBeUI7RUFDM0I7O0VBRUE7O0lBRUUseUJBQXlCO0VBQzNCO0FBQ0Y7O0FBRUEsV0FBVztBQUNYO0VBQ0U7Ozs7Ozs7Ozs7OztJQVlFLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IsMEJBQTBCO0VBQzVCOztFQUVBOzs7OztJQUtFLHlCQUF5QjtJQUN6QiwyQkFBMkI7RUFDN0I7O0VBRUE7SUFDRSwyQkFBMkI7RUFDN0I7O0VBRUE7SUFDRSx5QkFBeUI7RUFDM0I7O0VBRUE7O0lBRUUsMkJBQTJCO0VBQzdCOztFQUVBOzs7O0lBSUUsMkJBQTJCO0VBQzdCOztFQUVBOzs7SUFHRSwyQkFBMkI7RUFDN0I7O0VBRUE7O0lBRUUseUJBQXlCO0VBQzNCOztFQUVBOztJQUVFLHlCQUF5QjtFQUMzQjtBQUNGIiwiZmlsZSI6InN0eWxlc19jbGVhbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1DaW56ZWw6d2dodEA0MDA7NTAwOzYwMCZmYW1pbHk9TW9udHNlcnJhdDp3Z2h0QDQwMDs1MDA7NjAwJmRpc3BsYXk9c3dhcCcpO1xuXG46cm9vdHtcbiAgLS1wYXBlcjojZTJkYWNiO1xuICAtLXBhcGVyMjojZDJjNmI0O1xuICAtLWluazojMjExNzBmO1xuICAtLW11dGVkOiM1ZDUwNDM7XG4gIC0tYnJvd246IzRiMjYwYjtcbiAgLS1icm93bjI6IzdiNGExNztcbiAgLS1nb2xkOiNhMzZiMWQ7XG4gIC0tbGluZTpyZ2JhKDc1LDM4LDExLC4yNCk7XG4gIC0tc29mdDpyZ2JhKDc1LDM4LDExLC4wOCk7XG4gIC0td2hpdGUtc29mdDpyZ2JhKDI1NSwyNTUsMjU1LC4yMik7XG4gIC0tc2hhZG93OjAgMjRweCA3MHB4IHJnYmEoNzUsMzgsMTEsLjE2KTtcbn1cblxuKntib3gtc2l6aW5nOmJvcmRlci1ib3h9XG5cbmh0bWx7c2Nyb2xsLWJlaGF2aW9yOnNtb290aH1cblxuYm9keXtcbiAgbWFyZ2luOjA7XG4gIGNvbG9yOnZhcigtLWluayk7XG4gIGZvbnQtZmFtaWx5Ok1vbnRzZXJyYXQsc3lzdGVtLXVpLHNhbnMtc2VyaWY7XG4gIGJhY2tncm91bmQ6XG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA2NSUgMjAlLCByZ2JhKDI1NSwyNTUsMjU1LC4zOCksIHRyYW5zcGFyZW50IDMwJSksXG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgODUlLCByZ2JhKDc1LDM4LDExLC4wOSksIHRyYW5zcGFyZW50IDI4JSksXG4gICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1wYXBlciksdmFyKC0tcGFwZXIyKSk7XG4gIG92ZXJmbG93LXg6aGlkZGVuO1xufVxuXG5ib2R5Lm1lbnUtb3BlbntvdmVyZmxvdzpoaWRkZW59XG5cbmJvZHk6OmJlZm9yZXtcbiAgY29udGVudDpcIlwiO1xuICBwb3NpdGlvbjpmaXhlZDtcbiAgaW5zZXQ6MDtcbiAgei1pbmRleDotMTtcbiAgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgb3BhY2l0eTouMjI7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KHZhcigtLWxpbmUpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsdmFyKC0tbGluZSkgMXB4LCB0cmFuc3BhcmVudCAxcHgpO1xuICBiYWNrZ3JvdW5kLXNpemU6MzMzcHggMzMzcHg7XG4gIG1hc2staW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSxibGFjayx0cmFuc3BhcmVudCA5MCUpO1xufVxuXG5pbWd7bWF4LXdpZHRoOjEwMCU7ZGlzcGxheTpibG9ja31cblxuYXtjb2xvcjppbmhlcml0fVxuXG4uc2l0ZS1oZWFkZXJ7XG4gIHBvc2l0aW9uOmZpeGVkO1xuICBpbnNldDowIDAgYXV0byAwO1xuICB6LWluZGV4OjUwO1xuICBkaXNwbGF5OmZsZXg7XG4gIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gIHBhZGRpbmc6MjRweCA1dnc7XG4gIGJhY2tncm91bmQ6cmdiYSgyMjYsMjE4LDIwMywuNzgpO1xuICBiYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KTtcbiAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7XG59XG5cbi5icmFuZHtcbiAgZm9udC1mYW1pbHk6Q2luemVsLHNlcmlmO1xuICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbiAgY29sb3I6dmFyKC0taW5rKTtcbiAgZm9udC1zaXplOjI0cHg7XG4gIGxldHRlci1zcGFjaW5nOjhweDtcbiAgZm9udC13ZWlnaHQ6NTAwO1xufVxuXG4uYnJhbmQgc3BhbntcbiAgZGlzcGxheTpibG9jaztcbiAgZm9udC1mYW1pbHk6TW9udHNlcnJhdCxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6MTBweDtcbiAgbGV0dGVyLXNwYWNpbmc6M3B4O1xuICBtYXJnaW4tdG9wOjRweDtcbiAgY29sb3I6dmFyKC0tYnJvd24pO1xufVxuXG4ubWFpbi1uYXZ7XG4gIGRpc3BsYXk6ZmxleDtcbiAgZ2FwOjI2cHg7XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbn1cblxuLm1haW4tbmF2IGF7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbiAgY29sb3I6dmFyKC0taW5rKTtcbiAgZm9udC1zaXplOjEzcHg7XG4gIGxldHRlci1zcGFjaW5nOjJweDtcbiAgZm9udC13ZWlnaHQ6NTAwO1xuICBwYWRkaW5nOjEycHggNHB4O1xufVxuXG4ubWFpbi1uYXYgYTo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIGxlZnQ6MDtcbiAgYm90dG9tOjRweDtcbiAgd2lkdGg6MDtcbiAgaGVpZ2h0OjFweDtcbiAgYmFja2dyb3VuZDp2YXIoLS1nb2xkKTtcbiAgdHJhbnNpdGlvbjouMzVzIGVhc2U7XG59XG5cbi5tYWluLW5hdiBhOmhvdmVyOjphZnRlcnt3aWR0aDoxMDAlfVxuXG4ubWFpbi1uYXYgLm5hdi1jdGF7XG4gIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYnJvd24pO1xuICBwYWRkaW5nOjE0cHggMjJweDtcbiAgY29sb3I6dmFyKC0tYnJvd24pO1xuICBvdmVyZmxvdzpoaWRkZW47XG59XG5cbi5tZW51LXRvZ2dsZXtcbiAgZGlzcGxheTpub25lO1xuICB3aWR0aDo1NHB4O1xuICBoZWlnaHQ6NTRweDtcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4zNSk7XG4gIGJvcmRlci1yYWRpdXM6NTAlO1xuICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjE4KTtcbiAgY29sb3I6dmFyKC0tYnJvd24pO1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgY3Vyc29yOnBvaW50ZXI7XG4gIHotaW5kZXg6ODA7XG4gIGJveC1zaGFkb3c6MCAxOHB4IDQ1cHggcmdiYSg3NSwzOCwxMSwuMTIpO1xufVxuXG4ubWVudS10b2dnbGU6OmJlZm9yZXtcbiAgY29udGVudDpcIlwiO1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgaW5zZXQ6LThweDtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgxNjMsMTA3LDI5LC4yNSk7XG4gIGFuaW1hdGlvbjp0ZXNsYVJpbmcgMi44cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5tZW51LXRvZ2dsZSBzcGFue1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgbGVmdDoxNXB4O1xuICB3aWR0aDoyMnB4O1xuICBoZWlnaHQ6MS41cHg7XG4gIGJhY2tncm91bmQ6dmFyKC0tYnJvd24pO1xuICB0cmFuc2l0aW9uOi4zNXMgZWFzZTtcbn1cblxuLm1lbnUtdG9nZ2xlIHNwYW46bnRoLWNoaWxkKDEpe3RvcDoxOXB4fVxuLm1lbnUtdG9nZ2xlIHNwYW46bnRoLWNoaWxkKDIpe3RvcDoyN3B4fVxuLm1lbnUtdG9nZ2xlIHNwYW46bnRoLWNoaWxkKDMpe3RvcDozNXB4fVxuXG4ubWVudS10b2dnbGUuYWN0aXZlIHNwYW46bnRoLWNoaWxkKDEpe3RvcDoyN3B4O3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfVxuLm1lbnUtdG9nZ2xlLmFjdGl2ZSBzcGFuOm50aC1jaGlsZCgyKXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9XG4ubWVudS10b2dnbGUuYWN0aXZlIHNwYW46bnRoLWNoaWxkKDMpe3RvcDoyN3B4O3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX1cblxuLm1vYmlsZS1lbmVyZ3l7XG4gIHBvc2l0aW9uOmZpeGVkO1xuICBpbnNldDowO1xuICB6LWluZGV4OjQ1O1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICBvcGFjaXR5OjA7XG4gIGJhY2tncm91bmQ6XG4gICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4MiUgMTglLCByZ2JhKDE2MywxMDcsMjksLjI0KSwgdHJhbnNwYXJlbnQgMjYlKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDc1LDM4LDExLC4xOCkpO1xuICB0cmFuc2l0aW9uOi40NXMgZWFzZTtcbn1cblxuYm9keS5tZW51LW9wZW4gLm1vYmlsZS1lbmVyZ3l7b3BhY2l0eToxfVxuXG4uaGVyb3tcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6MTAwdmg7XG4gIHBhZGRpbmc6MTUwcHggNXZ3IDcwcHg7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxLjJmcjtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBnYXA6NDBweDtcbiAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7XG4gIG92ZXJmbG93OmhpZGRlbjtcbn1cblxuLmV5ZWJyb3d7XG4gIGNvbG9yOnZhcigtLWJyb3duMik7XG4gIGxldHRlci1zcGFjaW5nOjRweDtcbiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICBmb250LXNpemU6MTRweDtcbiAgZm9udC13ZWlnaHQ6NTAwO1xufVxuXG5oMSxoMntcbiAgZm9udC1mYW1pbHk6Q2luemVsLHNlcmlmO1xuICBmb250LXdlaWdodDo1MDA7XG4gIGxpbmUtaGVpZ2h0Oi45ODtcbiAgbWFyZ2luOjA7XG59XG5cbmgxe1xuICBmb250LXNpemU6Y2xhbXAoNThweCw4dncsMTI4cHgpO1xuICBsZXR0ZXItc3BhY2luZzo0cHg7XG59XG5cbmgye1xuICBmb250LXNpemU6Y2xhbXAoMzBweCw0dncsNTRweCk7XG4gIGxldHRlci1zcGFjaW5nOjJweDtcbn1cblxucHtcbiAgY29sb3I6dmFyKC0tbXV0ZWQpO1xuICBsaW5lLWhlaWdodDoxLjc1O1xuICBmb250LXNpemU6MTVweDtcbn1cblxuLmxlYWR7bWF4LXdpZHRoOjQ3MHB4O21hcmdpbjoyOHB4IDB9XG5cbi5oZXJvLWFjdGlvbnN7XG4gIGRpc3BsYXk6ZmxleDtcbiAgZmxleC13cmFwOndyYXA7XG4gIGdhcDoxNHB4O1xufVxuXG4uYnRue1xuICBkaXNwbGF5OmlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDpjZW50ZXI7XG4gIGdhcDoxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbiAgYmFja2dyb3VuZDp2YXIoLS1icm93bik7XG4gIGNvbG9yOiNmZmY7XG4gIHBhZGRpbmc6MTZweCAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzoycHg7XG4gIGZvbnQtc2l6ZToxMnB4O1xuICBmb250LXdlaWdodDo2MDA7XG4gIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYnJvd24pO1xuICBib3gtc2hhZG93OjAgMTZweCA0MHB4IHJnYmEoNzUsMzgsMTEsLjIyKTtcbiAgY3Vyc29yOnBvaW50ZXI7XG4gIHRyYW5zaXRpb246LjM1cyBlYXNlO1xufVxuXG4uYnRuOmhvdmVye1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KTtcbiAgYm94LXNoYWRvdzowIDIycHggNTBweCByZ2JhKDc1LDM4LDExLC4yNik7XG59XG5cbi5idG4tZ2hvc3R7XG4gIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbiAgYm94LXNoYWRvdzpub25lO1xufVxuXG4uaGVyby12aXN1YWx7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OjcwMHB4O1xuICBkaXNwbGF5OmdyaWQ7XG4gIHBsYWNlLWl0ZW1zOmVuZCBjZW50ZXI7XG59XG5cbi50ZXNsYS1wb3J0cmFpdHtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIHJpZ2h0Oi03dnc7XG4gIHRvcDotMThweDtcbiAgd2lkdGg6bWluKDc2MHB4LDU4dncpO1xuICBtYXgtaGVpZ2h0Ojc2MHB4O1xuICBvYmplY3QtZml0OmNvbnRhaW47XG4gIGZpbHRlcjpzZXBpYSguMjUpIGNvbnRyYXN0KDEuMDQpO1xuICBvcGFjaXR5Oi45MDtcbiAgei1pbmRleDozO1xufVxuXG4ud2FyZGVuY2x5ZmZlLXRvd2Vye1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgYm90dG9tOi02MHB4O1xuICBsZWZ0OjE0JTtcbiAgd2lkdGg6bWluKDY4MHB4LDUwdncpO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtcbiAgZmlsdGVyOnNlcGlhKC4yKSBjb250cmFzdCgxLjA4KTtcbiAgei1pbmRleDo0O1xufVxuXG4uaGVyby1saWdodG5pbmd7XG4gIGRpc3BsYXk6bm9uZTtcbn1cblxuLnRlc2xhLXF1b3Rle1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgcmlnaHQ6MnZ3O1xuICBib3R0b206MTIwcHg7XG4gIHotaW5kZXg6NTtcbiAgbWF4LXdpZHRoOjI3MHB4O1xuICBmb250LWZhbWlseTpDaW56ZWwsc2VyaWY7XG4gIGZvbnQtc3R5bGU6aXRhbGljO1xuICBjb2xvcjp2YXIoLS1icm93bik7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50ZXNsYS1xdW90ZSBzcGFue1xuICBkaXNwbGF5OmJsb2NrO1xuICBtYXJnaW4tdG9wOjE4cHg7XG59XG5cbi5kaWFncmFte1xuICBkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWFncmFte1xuICBkaXNwbGF5Om5vbmU7XG59XG5cbi5oZXJvLWJnLWRpYWdyYW17XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB1c2VyLXNlbGVjdDpub25lO1xuICBvcGFjaXR5Oi4yNDtcbiAgZmlsdGVyOnNlcGlhKDEpIHNhdHVyYXRlKC43NSkgY29udHJhc3QoLjgyKSBicmlnaHRuZXNzKDEuMTgpO1xuICBtaXgtYmxlbmQtbW9kZTptdWx0aXBseTtcbiAgei1pbmRleDoxO1xufVxuXG4uaGVyby1iZy1kaWFncmFtLTAxe1xuICB3aWR0aDptaW4oMzAwcHgsMjB2dyk7XG4gIHJpZ2h0OjF2dztcbiAgdG9wOjE0MHB4O1xuICBvcGFjaXR5Oi4xNTtcbn1cblxuLmhlcm8tYmctZGlhZ3JhbS0wMntcbiAgd2lkdGg6bWluKDYyMHB4LDQydncpO1xuICBsZWZ0OjE1dnc7XG4gIHRvcDoxMDBweDtcbiAgb3BhY2l0eTouMTU7XG59XG5cbi5kaWFncmFtOjpiZWZvcmUsXG4uZGlhZ3JhbTo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgxMjMsNzQsMjMsLjIpO1xuICBib3JkZXItcmFkaXVzOjUwJTtcbn1cblxuLmRpYWdyYW06OmJlZm9yZXtpbnNldDoyOCV9XG4uZGlhZ3JhbTo6YWZ0ZXJ7aW5zZXQ6NDQlfVxuXG4uZGlhZ3JhbS1oZXJvLTAxe3dpZHRoOjE5MHB4O2hlaWdodDoxOTBweDtyaWdodDo4dnc7dG9wOjEzMHB4fVxuLmRpYWdyYW0taGVyby0wMnt3aWR0aDoxNDBweDtoZWlnaHQ6MTQwcHg7bGVmdDotNTBweDt0b3A6NDYwcHh9XG5cbkBtZWRpYShtaW4td2lkdGg6MTAyNXB4KXtcbiAgLnNpZGUtbnVtYmVyc3tcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MTkwcHg7XG4gICAgbGVmdDoyLjV2dztcbiAgICBkaXNwbGF5OmZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgICBnYXA6MTZweDtcbiAgICBjb2xvcjp2YXIoLS1icm93bik7XG4gICAgZm9udC1mYW1pbHk6Q2luemVsLHNlcmlmO1xuICAgIGZvbnQtc2l6ZToyMnB4O1xuICAgIGxpbmUtaGVpZ2h0OjE7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgei1pbmRleDoxMjtcbiAgfVxuXG4gIC5zaWRlLW51bWJlcnM6OmJlZm9yZSxcbiAgLnNpZGUtbnVtYmVyczo6YWZ0ZXJ7XG4gICAgY29udGVudDpcIlwiO1xuICAgIHdpZHRoOjFweDtcbiAgICBoZWlnaHQ6MTEwcHg7XG4gICAgYmFja2dyb3VuZDp2YXIoLS1icm93bjIpO1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gIH1cblxuICAuaGVyby1jb3B5e1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHotaW5kZXg6ODtcbiAgICBtYXJnaW4tbGVmdDoyMHB4O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0zMHB4KTtcbiAgfVxufVxuXG4uY29udGVudC1zZWN0aW9ue1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgcGFkZGluZzo3MnB4IDV2dztcbiAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDEuMWZyIDIuMmZyO1xuICBnYXA6NDRweDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xufVxuXG4uc2VjdGlvbi1udW1iZXJ7XG4gIGZvbnQtZmFtaWx5OkNpbnplbCxzZXJpZjtcbiAgZm9udC1zaXplOjUycHg7XG4gIGNvbG9yOnZhcigtLWJyb3duMik7XG59XG5cbi5zZWN0aW9uLW51bWJlciBzcGFue1xuICBkaXNwbGF5OmJsb2NrO1xuICBmb250LWZhbWlseTpNb250c2VycmF0LHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZToxMnB4O1xuICBjb2xvcjp2YXIoLS1pbmspO1xuICBsZXR0ZXItc3BhY2luZzoycHg7XG59XG5cbi5zZWN0aW9uLWludHJvIHB7bWF4LXdpZHRoOjUyMHB4fVxuXG4uY2FyZC1ncmlke1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpO1xuICBnYXA6MjhweDtcbn1cblxuLmluZm8tY2FyZHtcbiAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWxpbmUpO1xuICBwYWRkaW5nOjIycHg7XG4gIHRyYW5zaXRpb246LjM1cyBlYXNlO1xufVxuXG4uaW5mby1jYXJkOmhvdmVye1xuICBiYWNrZ3JvdW5kOnZhcigtLXNvZnQpO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNnB4KTtcbn1cblxuLmljb24tc2hlbGwsXG4ubWluaS1pY29ue1xuICBib3JkZXI6bm9uZTtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgcGxhY2UtaXRlbXM6Y2VudGVyO1xuICBjb2xvcjp2YXIoLS1icm93bik7XG59XG5cbi5pY29uLXNoZWxse1xuICB3aWR0aDo4NnB4O1xuICBoZWlnaHQ6ODZweDtcbiAgZm9udC1zaXplOjM0cHg7XG4gIG1hcmdpbi1ib3R0b206MThweDtcbn1cblxuLm1pbmktaWNvbntcbiAgd2lkdGg6NTJweDtcbiAgaGVpZ2h0OjUycHg7XG4gIGZvbnQtc2l6ZToyMnB4O1xuICBmbGV4OjAgMCBhdXRvO1xufVxuXG5oM3tcbiAgbGV0dGVyLXNwYWNpbmc6MnB4O1xuICBmb250LXNpemU6MTVweDtcbiAgbWFyZ2luOjAgMCAxMnB4O1xuICBjb2xvcjp2YXIoLS1pbmspO1xufVxuXG4uaW5ub3ZhdGlvbi1ncmlke1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMS4yZnI7XG4gIGdhcDoyOHB4O1xuICBhbGlnbi1pdGVtczpjZW50ZXI7XG59XG5cblxuLmlubm92YXRpb24tZ3JpZHtcbiAgZGlzcGxheTpncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDEuMmZyO1xuICBnYXA6MjhweDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xufVxuXG5cblxuXG4vKiBJbm5vdmF0aW9uIENvcmUgLSBIZXJvIEltYWdlIEZvY3VzICovXG5cbiNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZXtcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICB3aWR0aDptaW4oNTAwcHgsIDM4dncpO1xuICBhc3BlY3QtcmF0aW86MSAvIDE7XG4gIGJvcmRlcjpub25lICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6bm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzp2aXNpYmxlO1xuICBpc29sYXRpb246aXNvbGF0ZTtcbn1cblxuI2lubm92YXRpb24gLmVuZXJneS1jb3JlLFxuI2lubm92YXRpb24gLmVuZXJneS1jb3JlICp7XG4gIGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4jaW5ub3ZhdGlvbiAuZW5lcmd5LWNvcmUgc3BhbntcbiAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbiNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZTo6YmVmb3Jle1xuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBsZWZ0OjUwJTtcbiAgdG9wOjUwJTtcbiAgd2lkdGg6NTAlO1xuICBoZWlnaHQ6NTAlO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBib3JkZXItcmFkaXVzOjUwJTtcbiAgei1pbmRleDoxO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsXG4gICAgcmdiYSgyNTUsMjU1LDI1NSwuOTgpIDAlLFxuICAgIHJnYmEoMjU1LDI1MCwyMzIsLjgyKSAxOCUsXG4gICAgcmdiYSgyNTUsMjMyLDE3MCwuNDIpIDQyJSxcbiAgICByZ2JhKDE4NCwxMTksMjcsLjE2KSA2NCUsXG4gICAgdHJhbnNwYXJlbnQgODIlXG4gICk7XG4gIGZpbHRlcjpibHVyKDIwcHgpO1xuICBtaXgtYmxlbmQtbW9kZTpzY3JlZW47XG4gIGFuaW1hdGlvbjppbm5vdmF0aW9uQXVyYVB1bHNlIDMuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG5cbiNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZTo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIGxlZnQ6NTAlO1xuICB0b3A6NTAlO1xuICB3aWR0aDo3MCU7XG4gIGhlaWdodDo3MCU7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDBkZWcpO1xuICBib3JkZXItcmFkaXVzOjUwJTtcbiAgei1pbmRleDoyO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICBiYWNrZ3JvdW5kOmNvbmljLWdyYWRpZW50KFxuICAgIGZyb20gMGRlZyxcbiAgICB0cmFuc3BhcmVudCAwZGVnLFxuICAgIHRyYW5zcGFyZW50IDM4ZGVnLFxuICAgIHJnYmEoMjU1LDI1NSwyNTUsLjE4KSA1OGRlZyxcbiAgICByZ2JhKDI1NSwyNTUsMjU1LC42MikgNzhkZWcsXG4gICAgcmdiYSgyNTUsMjM2LDE4MCwuMzYpIDk2ZGVnLFxuICAgIHRyYW5zcGFyZW50IDEzMmRlZyxcbiAgICB0cmFuc3BhcmVudCAzNjBkZWdcbiAgKTtcbiAgZmlsdGVyOmJsdXIoMTJweCk7XG4gIG9wYWNpdHk6Ljc4O1xuICBtaXgtYmxlbmQtbW9kZTpzY3JlZW47XG4gIGFuaW1hdGlvbjppbm5vdmF0aW9uRW5lcmd5U3dlZXAgNi40cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbiNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZSBpbWd7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB6LWluZGV4OjM7XG4gIHdpZHRoOjk4JTtcbiAgaGVpZ2h0Ojk4JTtcbiAgb2JqZWN0LWZpdDpjb250YWluO1xuICBib3JkZXI6bm9uZSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOm5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDtcbiAgZmlsdGVyOnNlcGlhKC4xMikgY29udHJhc3QoMS4xKSBicmlnaHRuZXNzKDEuMDMpO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB1c2VyLXNlbGVjdDpub25lO1xuICBhbmltYXRpb246aW5ub3ZhdGlvbkNvcmVGbG9hdCA0LjZzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xufVxuXG4jaW5ub3ZhdGlvbiAuZmVhdHVyZS1pdGVtIC5taW5pLWljb24gaW1ne1xuICB3aWR0aDo1MnB4O1xuICBoZWlnaHQ6NTJweDtcbiAgb2JqZWN0LWZpdDpjb250YWluO1xuICBkaXNwbGF5OmJsb2NrO1xufVxuXG5Aa2V5ZnJhbWVzIGlubm92YXRpb25BdXJhUHVsc2V7XG4gIDAlLDEwMCV7XG4gICAgb3BhY2l0eTouMzg7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguNzgpO1xuICAgIGZpbHRlcjpibHVyKDE4cHgpO1xuICB9XG5cbiAgNDIle1xuICAgIG9wYWNpdHk6MTtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuMjQpO1xuICAgIGZpbHRlcjpibHVyKDMwcHgpO1xuICB9XG5cbiAgNjgle1xuICAgIG9wYWNpdHk6LjU4O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoLjk2KTtcbiAgICBmaWx0ZXI6Ymx1cigyMnB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGlubm92YXRpb25FbmVyZ3lTd2VlcHtcbiAgMCV7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoMGRlZyk7XG4gICAgb3BhY2l0eTouMjI7XG4gIH1cblxuICAyMiV7XG4gICAgb3BhY2l0eTouOTtcbiAgfVxuXG4gIDUyJXtcbiAgICBvcGFjaXR5Oi40ODtcbiAgfVxuXG4gIDEwMCV7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoMzYwZGVnKTtcbiAgICBvcGFjaXR5Oi4yMjtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGlubm92YXRpb25Db3JlRmxvYXR7XG4gIDAlLDEwMCV7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gIH1cblxuICA1MCV7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMS4wMjUpO1xuICB9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6MTE4MHB4KXtcbiAgI2lubm92YXRpb24gLmVuZXJneS1jb3Jle1xuICAgIHdpZHRoOm1pbig0NjBweCwgNDJ2dyk7XG4gIH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDo5ODBweCl7XG4gICNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZXtcbiAgICB3aWR0aDptaW4oNDIwcHgsIDU4dncpO1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXtcbiAgI2lubm92YXRpb24gLmVuZXJneS1jb3Jle1xuICAgIHdpZHRoOm1pbigzNDBweCwgODh2dyk7XG4gICAgbWFyZ2luLWlubGluZTphdXRvO1xuICB9XG5cbiAgI2lubm92YXRpb24gLmVuZXJneS1jb3JlOjpiZWZvcmV7XG4gICAgd2lkdGg6NTQlO1xuICAgIGhlaWdodDo1NCU7XG4gIH1cblxuICAjaW5ub3ZhdGlvbiAuZW5lcmd5LWNvcmU6OmFmdGVye1xuICAgIHdpZHRoOjc0JTtcbiAgICBoZWlnaHQ6NzQlO1xuICB9XG5cbiAgI2lubm92YXRpb24gLmVuZXJneS1jb3JlIGltZ3tcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlO1xuICB9XG59XG5cblxuXG5cblxuLmZlYXR1cmUtbGlzdHtkaXNwbGF5OmdyaWQ7Z2FwOjIwcHh9XG5cbi5mZWF0dXJlLWl0ZW17XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjYwcHggMWZyO1xuICBnYXA6MThweDtcbiAgYWxpZ24taXRlbXM6c3RhcnQ7XG59XG5cbi8qIFBsYXRmb3JtIFNlY3Rpb24gKi9cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS1hcmVhe1xuICBhbGlnbi1zZWxmOmNlbnRlcjtcbiAgd2lkdGg6MTAwJTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlke1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywgMWZyKTtcbiAgZ2FwOjA7XG4gIHdpZHRoOjEwMCU7XG4gIGJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG4gIGJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjE4KTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlkIGFydGljbGV7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OjE5MHB4O1xuICBwYWRkaW5nOjM0cHggMjZweDtcbiAgZGlzcGxheTpmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OmNlbnRlcjtcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gIGJvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSg3NSwzOCwxMSwuMTgpO1xuICBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG4gIG92ZXJmbG93OmhpZGRlbjtcbiAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBlYXNlO1xufVxuXG4jcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWQgYXJ0aWNsZTo6YmVmb3Jle1xuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBpbnNldDowO1xuICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjE2KTtcbiAgb3BhY2l0eTowO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyBlYXNlO1xufVxuXG4jcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWQgYXJ0aWNsZTpob3ZlcntcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTZweCk7XG59XG5cbiNwbGF0Zm9ybSAucGxhdGZvcm0tZ3JpZCBhcnRpY2xlOmhvdmVyOjpiZWZvcmV7XG4gIG9wYWNpdHk6MTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlkIC5taW5pLWljb24sXG4jcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWQgaDN7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB6LWluZGV4OjE7XG59XG5cbiNwbGF0Zm9ybSAucGxhdGZvcm0tZ3JpZCAubWluaS1pY29ue1xuICB3aWR0aDo1MnB4O1xuICBoZWlnaHQ6NTJweDtcbiAgbWFyZ2luLWJvdHRvbToyMnB4O1xuICBib3JkZXI6bm9uZTtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICBjb2xvcjp2YXIoLS1icm93bik7XG4gIGZvbnQtc2l6ZToyMnB4O1xufVxuXG4jcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWQgaDN7XG4gIGZvbnQtZmFtaWx5Ok1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZToxNHB4O1xuICBmb250LXdlaWdodDo2MDA7XG4gIGxpbmUtaGVpZ2h0OjEuMzU7XG4gIGxldHRlci1zcGFjaW5nOjNweDtcbiAgY29sb3I6dmFyKC0taW5rKTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS10YWdze1xuICB3aWR0aDoxMDAlO1xuICBtYXJnaW4tdG9wOjA7XG4gIHBhZGRpbmc6MjJweCAxOHB4IDA7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICBnYXA6MjRweDtcbiAgZmxleC13cmFwOndyYXA7XG59XG5cbiNwbGF0Zm9ybSAucGxhdGZvcm0tdGFncyBzcGFue1xuICBmb250LWZhbWlseTpNb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6MTJweDtcbiAgZm9udC13ZWlnaHQ6NjAwO1xuICBsZXR0ZXItc3BhY2luZzo3cHg7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS10YWdzIGl7XG4gIHdpZHRoOjVweDtcbiAgaGVpZ2h0OjVweDtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGJhY2tncm91bmQ6dmFyKC0tYnJvd24pO1xuICBvcGFjaXR5Oi44O1xufVxuXG4vKiBUYWJsZXQgKi9cbkBtZWRpYShtYXgtd2lkdGg6OTgwcHgpe1xuICAjcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWR7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLCAxZnIpO1xuICB9XG5cbiAgI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlkIGFydGljbGV7XG4gICAgbWluLWhlaWdodDoxODBweDtcbiAgICBwYWRkaW5nOjMycHggMjRweDtcbiAgfVxufVxuXG4vKiBNb2JpbGUgKi9cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAjZXhwZXJpZW5jZS5jb250ZW50LXNlY3Rpb257XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzo3MnB4IDZ2dyA4NnB4ICFpbXBvcnRhbnQ7XG4gICAgZ2FwOjM0cHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLW51bWJlcixcbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm97XG4gICAganVzdGlmeS1zZWxmOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWlubGluZTphdXRvICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLWludHJve1xuICAgIHBhZGRpbmctaW5saW5lOjhweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gLmV5ZWJyb3d7XG4gICAgbWFyZ2luLWJvdHRvbToxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBoMixcbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gcHtcbiAgICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OmF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6YXV0byAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBwe1xuICAgIG1hcmdpbi10b3A6MjRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctaW5saW5lOjEwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5leHBlcmllbmNlLXZpc3VhbHtcbiAgICAtLWNvaWwteDo0MS42JTtcbiAgICAtLWNvaWwteToxMy41JTtcbiAgICB3aWR0aDptaW4oNTAwcHgsIDEwOHZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDoxOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWlubGluZTphdXRvICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOm5vbmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuY29pbC1nbG93e1xuICAgIHdpZHRoOjE3JSAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLmNvaWwtcmF5e1xuICAgIHdpZHRoOjE4JSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5jb250YWN0LWZvcm17XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxLjRmcjtcbiAgZ2FwOjE2cHg7XG59XG5cbi5mb3JtLWZpZWxkc3tkaXNwbGF5OmdyaWQ7Z2FwOjEycHh9XG5cbmlucHV0LFxudGV4dGFyZWF7XG4gIHdpZHRoOjEwMCU7XG4gIHBhZGRpbmc6MTZweDtcbiAgYmFja2dyb3VuZDp2YXIoLS13aGl0ZS1zb2Z0KTtcbiAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtcbiAgY29sb3I6dmFyKC0taW5rKTtcbiAgZm9udC1mYW1pbHk6TW9udHNlcnJhdCxzYW5zLXNlcmlmO1xuICBvdXRsaW5lOm5vbmU7XG59XG5cbnRleHRhcmVhe21pbi1oZWlnaHQ6MTMycHg7cmVzaXplOnZlcnRpY2FsfVxuXG4uY29udGFjdC1mb3JtIGJ1dHRvbntcbiAgZ3JpZC1jb2x1bW46MjtcbiAganVzdGlmeS1zZWxmOmVuZDtcbn1cblxuLnNpdGUtZm9vdGVye1xuICBkaXNwbGF5OmZsZXg7XG4gIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO1xuICBnYXA6MThweDtcbiAgcGFkZGluZzoyNnB4IDV2dztcbiAgY29sb3I6dmFyKC0tbXV0ZWQpO1xuICBsZXR0ZXItc3BhY2luZzozcHg7XG4gIGZvbnQtc2l6ZToxMnB4O1xufVxuXG4uc2VjdGlvbi1yZXZlYWx7XG4gIG9wYWNpdHk6MDtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjRweCk7XG4gIHRyYW5zaXRpb246LjhzIGVhc2U7XG59XG5cbi5zZWN0aW9uLXJldmVhbC52aXNpYmxle1xuICBvcGFjaXR5OjE7XG4gIHRyYW5zZm9ybTpub25lO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNle1xuICAwJSwxMDAle29wYWNpdHk6LjQ1O3RyYW5zZm9ybTpzY2FsZSgxKX1cbiAgNTAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMS4wOCl9XG59XG5cbkBrZXlmcmFtZXMgZmxvYXR7XG4gIDAlLDEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgcm90YXRlKDApfVxuICA1MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE2cHgpIHJvdGF0ZSg4ZGVnKX1cbn1cblxuQGtleWZyYW1lcyB0ZXNsYVJpbmd7XG4gIGZyb217dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX1cbiAgdG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjExODBweCl7XG4gIC5wbGF0Zm9ybS1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjk4MHB4KXtcbiAgLnNpdGUtaGVhZGVye3BhZGRpbmc6MThweCA1dnd9XG4gIC5icmFuZHtmb250LXNpemU6MThweDtsZXR0ZXItc3BhY2luZzo1cHh9XG4gIC5icmFuZCBzcGFue2ZvbnQtc2l6ZTo4cHg7bGV0dGVyLXNwYWNpbmc6MnB4fVxuICAubWVudS10b2dnbGV7ZGlzcGxheTpibG9ja31cblxuICAubWFpbi1uYXZ7XG4gICAgcG9zaXRpb246Zml4ZWQ7XG4gICAgdG9wOjA7XG4gICAgcmlnaHQ6MDtcbiAgICB3aWR0aDptaW4oODh2dyw0MjBweCk7XG4gICAgaGVpZ2h0OjEwMHZoO1xuICAgIHBhZGRpbmc6MTEwcHggMzRweCAzNHB4O1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6c3RyZXRjaDtcbiAgICBnYXA6MTZweDtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMjAlLCByZ2JhKDE2MywxMDcsMjksLjE4KSwgdHJhbnNwYXJlbnQgMjglKSxcbiAgICAgIGxpbmVhci1ncmFkaWVudCgxNDVkZWcscmdiYSgyMzIsMjI1LDIxMSwuOTgpLHJnYmEoMjA3LDE5NSwxNzcsLjk2KSk7XG4gICAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjI4KTtcbiAgICBib3gtc2hhZG93Oi00MHB4IDAgOTBweCByZ2JhKDc1LDM4LDExLC4yMik7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTEwJSk7XG4gICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjY1cyBjdWJpYy1iZXppZXIoLjIyLDEsLjM2LDEpO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgfVxuXG4gIC5tYWluLW5hdjo6YmVmb3Jle1xuICAgIGNvbnRlbnQ6XCJcIjtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICBpbnNldDowO1xuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gICAgb3BhY2l0eTouMzU7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCAwIDMyJSxyZ2JhKDc1LDM4LDExLC4xNCkgMzMlLHRyYW5zcGFyZW50IDM0JSksXG4gICAgICBsaW5lYXItZ3JhZGllbnQoMGRlZyx0cmFuc3BhcmVudCAwIDMyJSxyZ2JhKDc1LDM4LDExLC4xMCkgMzMlLHRyYW5zcGFyZW50IDM0JSk7XG4gICAgYmFja2dyb3VuZC1zaXplOjExMXB4IDExMXB4O1xuICB9XG5cbiAgLm1haW4tbmF2OjphZnRlcntcbiAgICBjb250ZW50OlwiMyAgMzMgIDMzM1wiO1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIGxlZnQ6MzRweDtcbiAgICBib3R0b206MzJweDtcbiAgICBmb250LWZhbWlseTpDaW56ZWwsc2VyaWY7XG4gICAgbGV0dGVyLXNwYWNpbmc6MTBweDtcbiAgICBjb2xvcjpyZ2JhKDc1LDM4LDExLC4zMik7XG4gIH1cblxuICAubWFpbi1uYXYuYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfVxuXG4gIC5tYWluLW5hdiBhe1xuICAgIG9wYWNpdHk6MDtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgzNnB4KTtcbiAgICBwYWRkaW5nOjE4cHggMjBweDtcbiAgICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjE4KTtcbiAgICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjE4KTtcbiAgICBjb2xvcjp2YXIoLS1pbmspO1xuICAgIGJveC1zaGFkb3c6MCAxNHB4IDM1cHggcmdiYSg3NSwzOCwxMSwuMDgpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICBvcGFjaXR5IC40NXMgZWFzZSxcbiAgICAgIHRyYW5zZm9ybSAuNDVzIGVhc2UsXG4gICAgICBiYWNrZ3JvdW5kIC4zNXMgZWFzZSxcbiAgICAgIGNvbG9yIC4zNXMgZWFzZTtcbiAgfVxuXG4gIC5tYWluLW5hdi5hY3RpdmUgYXtcbiAgICBvcGFjaXR5OjE7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAubWFpbi1uYXYuYWN0aXZlIGE6bnRoLWNoaWxkKDEpe3RyYW5zaXRpb24tZGVsYXk6LjEwc31cbiAgLm1haW4tbmF2LmFjdGl2ZSBhOm50aC1jaGlsZCgyKXt0cmFuc2l0aW9uLWRlbGF5Oi4xNXN9XG4gIC5tYWluLW5hdi5hY3RpdmUgYTpudGgtY2hpbGQoMyl7dHJhbnNpdGlvbi1kZWxheTouMjBzfVxuICAubWFpbi1uYXYuYWN0aXZlIGE6bnRoLWNoaWxkKDQpe3RyYW5zaXRpb24tZGVsYXk6LjI1c31cbiAgLm1haW4tbmF2LmFjdGl2ZSBhOm50aC1jaGlsZCg1KXt0cmFuc2l0aW9uLWRlbGF5Oi4zMHN9XG4gIC5tYWluLW5hdi5hY3RpdmUgYTpudGgtY2hpbGQoNil7dHJhbnNpdGlvbi1kZWxheTouMzVzfVxuXG4gIC5tYWluLW5hdiBhOmhvdmVye1xuICAgIGJhY2tncm91bmQ6dmFyKC0tYnJvd24pO1xuICAgIGNvbG9yOndoaXRlO1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC04cHgpO1xuICB9XG5cbiAgLm1haW4tbmF2IC5uYXYtY3Rhe1xuICAgIG1hcmdpbi10b3A6MTJweDtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOnZhcigtLWJyb3duKTtcbiAgICBjb2xvcjp3aGl0ZTtcbiAgICBib3JkZXItY29sb3I6dmFyKC0tYnJvd24pO1xuICB9XG5cbiAgLmhlcm97XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtcbiAgICBwYWRkaW5nLXRvcDoxMzBweDtcbiAgfVxuXG4gIC5oZXJvLXZpc3VhbHttaW4taGVpZ2h0OjU5MHB4fVxuXG4gIC50ZXNsYS1wb3J0cmFpdHtcbiAgICB3aWR0aDptaW4oMTAwJSw2ODBweCk7XG4gICAgcmlnaHQ6LTh2dztcbiAgICB0b3A6MDtcbiAgICBvcGFjaXR5Oi44NDtcbiAgfVxuXG4gIC53YXJkZW5jbHlmZmUtdG93ZXJ7XG4gICAgd2lkdGg6bWluKDY0MHB4LDEwNHZ3KTtcbiAgICBsZWZ0OjMyJTtcbiAgICBib3R0b206MDtcbiAgfVxuXG4gIC5oZXJvLWxpZ2h0bmluZ3tcbiAgICBkaXNwbGF5Om5vbmU7XG4gIH1cblxuICAudGVzbGEtcXVvdGV7ZGlzcGxheTpub25lfVxuXG4gIC5jb250ZW50LXNlY3Rpb24sXG4gIC5leHBlcmllbmNle1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7XG4gICAgZ2FwOjI4cHg7XG4gIH1cblxuICAuY2FyZC1ncmlkLFxuICAuaW5ub3ZhdGlvbi1ncmlkLFxuICAucGxhdGZvcm0tZ3JpZCxcbiAgLmNvbnRhY3QtZm9ybXtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO1xuICB9XG5cbiAgLmNvbnRhY3QtZm9ybSBidXR0b257XG4gICAgZ3JpZC1jb2x1bW46YXV0bztcbiAgICBqdXN0aWZ5LXNlbGY6c3RhcnQ7XG4gIH1cblxuICAuc2lkZS1udW1iZXJze2Rpc3BsYXk6bm9uZX1cblxuICAuc2l0ZS1mb290ZXJ7XG4gICAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuICB9XG59XG5cbi8qIEhlcm8gSXBhZCBQcm8gKi9cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KXtcbiAgLmhlcm97XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwLjlmciAxLjFmciAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDcxMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTI1cHggNHZ3IDEyMHB4ICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6c3RhcnQgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWNvcHl7XG4gICAgei1pbmRleDogMTAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMjBweCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLXZpc3VhbHtcbiAgICBtaW4taGVpZ2h0OiA1ODVweCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDY1cHgpICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnRlc2xhLXBvcnRyYWl0e1xuICAgIHJpZ2h0OiAtMTJ2dyAhaW1wb3J0YW50O1xuICAgIHRvcDogLTE1cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogbWluKDU4MHB4LCA2MnZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDU4MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjg4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAud2FyZGVuY2x5ZmZlLXRvd2Vye1xuICAgIGxlZnQ6IDE4JSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogMjVweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBtaW4oNDUwcHgsIDQzdncpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWJnLWRpYWdyYW0tMDF7XG4gICAgd2lkdGg6IG1pbigyMjBweCwgMjJ2dykgIWltcG9ydGFudDtcbiAgICByaWdodDogLTJ2dyAhaW1wb3J0YW50O1xuICAgIHRvcDogNzVweCAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IC4xMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tYmctZGlhZ3JhbS0wMntcbiAgICB3aWR0aDogbWluKDUwMHB4LCA0OHZ3KSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDIwdncgIWltcG9ydGFudDtcbiAgICB0b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAuMTIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5zaWRlLW51bWJlcnMsXG4gIC50ZXNsYS1xdW90ZXtcbiAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBIZXJvIElwYWQgQWlyICovXG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChtYXgtd2lkdGg6IDkwMHB4KXtcbiAgLnNpdGUtaGVhZGVye1xuICAgIHBhZGRpbmc6IDE4cHggNHZ3ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYnJhbmR7XG4gICAgZm9udC1zaXplOiAxN3B4ICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDVweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmJyYW5kIHNwYW57XG4gICAgZm9udC1zaXplOiA3cHggIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyb3tcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDAuODZmciAxLjE0ZnIgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiA2NjBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDk1cHggNHZ3IDc1cHggIWltcG9ydGFudDtcbiAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczpzdGFydCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tY29weXtcbiAgICB6LWluZGV4OiAxMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDk1cHgpICFpbXBvcnRhbnQ7XG4gIH1cblxuICBoMXtcbiAgICBmb250LXNpemU6IGNsYW1wKDU0cHgsIDh2dywgNzhweCkgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZXllYnJvd3tcbiAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubGVhZHtcbiAgICBtYXgtd2lkdGg6IDMwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxOHB4IDAgMjBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmxlYWQgcCxcbiAgcHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS42NSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tYWN0aW9uc3tcbiAgICBnYXA6IDEwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5idG57XG4gICAgcGFkZGluZzogMTNweCAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby12aXN1YWx7XG4gICAgbWluLWhlaWdodDogNTM1cHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSg1OHB4KSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OnZpc2libGUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC50ZXNsYS1wb3J0cmFpdHtcbiAgICByaWdodDogLTE1dncgIWltcG9ydGFudDtcbiAgICB0b3A6IC01cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogbWluKDU2MHB4LCA2OHZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDU2MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjg4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAud2FyZGVuY2x5ZmZlLXRvd2Vye1xuICAgIGxlZnQ6IGNhbGMoMTYlICsgNDBweCkgIWltcG9ydGFudDtcbiAgICBib3R0b206IDMwcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogbWluKDQxMHB4LCA0NXZ3KSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1iZy1kaWFncmFtLTAxe1xuICAgIHdpZHRoOiBtaW4oMTkwcHgsIDIydncpICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IC0ydncgIWltcG9ydGFudDtcbiAgICB0b3A6IDc1cHggIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAuMDggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWJnLWRpYWdyYW0tMDJ7XG4gICAgd2lkdGg6IG1pbig0MzBweCwgNTB2dykgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAxOHZ3ICFpbXBvcnRhbnQ7XG4gICAgdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjEwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuc2lkZS1udW1iZXJzLFxuICAudGVzbGEtcXVvdGV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogSGVybyBJcGFkIE1pbmkgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDc5OXB4KXtcbiAgLmhlcm97XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwLjg0ZnIgMS4xNmZyICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNjkwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxMjJweCA0dncgOTVweCAhaW1wb3J0YW50O1xuICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOnN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1jb3B5e1xuICAgIHotaW5kZXg6IDEwICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoODhweCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLXZpc3VhbHtcbiAgICBtaW4taGVpZ2h0OiA1MDBweCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDUwcHgpICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnRlc2xhLXBvcnRyYWl0e1xuICAgIHJpZ2h0OiAtMTl2dyAhaW1wb3J0YW50O1xuICAgIHRvcDogLTI1cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogbWluKDU0MHB4LCA3MnZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDU0MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjg4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAud2FyZGVuY2x5ZmZlLXRvd2Vye1xuICAgIGxlZnQ6IGNhbGMoMTYlICsgNzBweCkgIWltcG9ydGFudDtcbiAgICBib3R0b206IDVweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBtaW4oMzg1cHgsIDQ2dncpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWJnLWRpYWdyYW0tMDF7XG4gICAgd2lkdGg6IG1pbigxNzBweCwgMjJ2dykgIWltcG9ydGFudDtcbiAgICByaWdodDogLTJ2dyAhaW1wb3J0YW50O1xuICAgIHRvcDogNzVweCAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IC4wOCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tYmctZGlhZ3JhbS0wMntcbiAgICB3aWR0aDogbWluKDM5MHB4LCA1MHZ3KSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDE4dncgIWltcG9ydGFudDtcbiAgICB0b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAuMTAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5zaWRlLW51bWJlcnMsXG4gIC50ZXNsYS1xdW90ZXtcbiAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qIEhlcm8gTW9iaWxlICovXG5cbi8qIEhlcm8gTW9iaWxlICovXG5cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAuaGVyb3tcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDphdXRvICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzoxMjVweCA1dncgODhweCAhaW1wb3J0YW50O1xuICAgIGdhcDowICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1jb3B5e1xuICAgIHotaW5kZXg6MTAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgaDF7XG4gICAgZm9udC1zaXplOmNsYW1wKDUycHgsMTh2dyw3NnB4KSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0Oi45NSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmxlYWR7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46MjJweCAwIDIwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWFjdGlvbnN7XG4gICAgZGlzcGxheTpncmlkICFpbXBvcnRhbnQ7XG4gICAgZ2FwOjEycHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5idG57XG4gICAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tdmlzdWFse1xuICAgIG1pbi1oZWlnaHQ6NDMwcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOjI4cHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OnZpc2libGUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWJnLWRpYWdyYW0tMDF7XG4gICAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6bWluKDQyMHB4LDExMnZ3KSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6LTI1dncgIWltcG9ydGFudDtcbiAgICByaWdodDphdXRvICFpbXBvcnRhbnQ7XG4gICAgdG9wOjI2MHB4ICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOmF1dG8gIWltcG9ydGFudDtcbiAgICBvcGFjaXR5Oi4xOCAhaW1wb3J0YW50O1xuICAgIGZpbHRlcjpzZXBpYSgxKSBzYXR1cmF0ZSguNzUpIGNvbnRyYXN0KC45KSBicmlnaHRuZXNzKDEuMDgpICFpbXBvcnRhbnQ7XG4gICAgbWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkgIWltcG9ydGFudDtcbiAgICBwb2ludGVyLWV2ZW50czpub25lICFpbXBvcnRhbnQ7XG4gICAgdXNlci1zZWxlY3Q6bm9uZSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6MSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnRlc2xhLXBvcnRyYWl0e1xuICAgIHJpZ2h0Oi0yNnZ3ICFpbXBvcnRhbnQ7XG4gICAgdG9wOjIwcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDptaW4oNTEwcHgsMTE2dncpICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDo1MTBweCAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6MiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLndhcmRlbmNseWZmZS10b3dlcntcbiAgICBsZWZ0OjMwJSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTotNzJweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOm1pbigzODBweCw5NHZ3KSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDozICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1iZy1kaWFncmFtLTAyLFxuICAuc2lkZS1udW1iZXJzLFxuICAudGVzbGEtcXVvdGV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuY29udGVudC1zZWN0aW9ue1xuICAgIHBhZGRpbmc6NThweCA1dncgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qIEhlcm8gTW9iaWxlIDM5MHB4ICovXG5cbkBtZWRpYShtYXgtd2lkdGg6MzkwcHgpe1xuICAuaGVyb3tcbiAgICBwYWRkaW5nLXRvcDoxNDBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgaDF7XG4gICAgZm9udC1zaXplOmNsYW1wKDQ4cHgsMTd2dyw2NHB4KSAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOjJweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmxlYWR7XG4gICAgbWFyZ2luOjE4cHggMCAxOHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYnRue1xuICAgIHBhZGRpbmc6MTRweCAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOjEwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLXZpc3VhbHtcbiAgICBtaW4taGVpZ2h0OjQwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDoyMnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1iZy1kaWFncmFtLTAxe1xuICAgIHdpZHRoOm1pbigzOTBweCwxMTh2dykgIWltcG9ydGFudDtcbiAgICBsZWZ0Oi0zNXZ3ICFpbXBvcnRhbnQ7XG4gICAgdG9wOjI2MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTouMTYgIWltcG9ydGFudDtcbiAgfVxuXG4gIC50ZXNsYS1wb3J0cmFpdHtcbiAgICByaWdodDotMzB2dyAhaW1wb3J0YW50O1xuICAgIHRvcDoxOHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6bWluKDQ4MHB4LDEyNHZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6NDgwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC53YXJkZW5jbHlmZmUtdG93ZXJ7XG4gICAgbGVmdDozMSUgIWltcG9ydGFudDtcbiAgICBib3R0b206LTQ4cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDptaW4oMzUwcHgsOTJ2dykgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qIFByZW1pdW0gU2VwaWEgU2Nyb2xsYmFyICovXG5odG1se1xuICBzY3JvbGxiYXItd2lkdGg6dGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOnJnYmEoNzUsMzgsMTEsLjcyKSByZ2JhKDIyNiwyMTgsMjAzLC43OCk7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXJ7XG4gIHdpZHRoOjEycHg7XG4gIGhlaWdodDoxMnB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjI2LDIxOCwyMDMsLjk1KSwgcmdiYSgyMTAsMTk4LDE4MCwuOTUpKTtcbiAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjE2KTtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE2MywxMDcsMjksLjkyKSwgcmdiYSg3NSwzOCwxMSwuODgpKTtcbiAgYm9yZGVyOjNweCBzb2xpZCByZ2JhKDIyNiwyMTgsMjAzLC45NSk7XG4gIGJvcmRlci1yYWRpdXM6OTk5cHg7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjIyKSxcbiAgICAwIDAgMThweCByZ2JhKDE2MywxMDcsMjksLjIyKTtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE4MSwxMjYsNDMsLjk4KSwgcmdiYSg3NSwzOCwxMSwuOTgpKTtcbiAgYm94LXNoYWRvdzpcbiAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMjgpLFxuICAgIDAgMCAyMnB4IHJnYmEoMTYzLDEwNywyOSwuMzIpO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntcbiAgYmFja2dyb3VuZDp2YXIoLS1wYXBlcjIpO1xufVxuXG4vKiBSQVlPUyAqL1xuXG4udG93ZXItbGlnaHRuaW5nLW92ZXJsYXl7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBsZWZ0OjE0JTtcbiAgYm90dG9tOjE0MHB4O1xuICB3aWR0aDo2MjBweCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtcbiAgei1pbmRleDo2O1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB1c2VyLXNlbGVjdDpub25lO1xuICBtaXgtYmxlbmQtbW9kZTptdWx0aXBseTtcbiAgZmlsdGVyOnNlcGlhKDEpIHNhdHVyYXRlKC45KSBjb250cmFzdCgxLjE1KSBicmlnaHRuZXNzKDEuMSk7XG59XG5cbi5saWdodG5pbmctYXtcbiAgb3BhY2l0eTouNDU7XG4gIGFuaW1hdGlvbjpsaWdodG5pbmdQdWxzZUEgMi44cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbn1cblxuLmxpZ2h0bmluZy1ie1xuICBvcGFjaXR5OjA7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDEuMDQpIHJvdGF0ZSgyZGVnKTtcbiAgYW5pbWF0aW9uOmxpZ2h0bmluZ1B1bHNlQiAzLjRzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICBmaWx0ZXI6c2VwaWEoMSkgc2F0dXJhdGUoLjU1KSBjb250cmFzdCguODUpIGJyaWdodG5lc3MoMS40NSk7XG4gIG1peC1ibGVuZC1tb2RlOnNjcmVlbjtcbn1cblxuQGtleWZyYW1lcyBsaWdodG5pbmdQdWxzZUF7XG4gIDAlLDEwMCV7b3BhY2l0eTouMTJ9XG4gIDgle29wYWNpdHk6LjY1fVxuICAxMiV7b3BhY2l0eTouMjJ9XG4gIDE4JXtvcGFjaXR5Oi43OH1cbiAgMjQle29wYWNpdHk6LjE4fVxuICA1NSV7b3BhY2l0eTouMzV9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRuaW5nUHVsc2VCe1xuICAwJSwxMDAle29wYWNpdHk6MH1cbiAgMTUle29wYWNpdHk6LjI4fVxuICAxOCV7b3BhY2l0eTouMDR9XG4gIDIyJXtvcGFjaXR5Oi4zOH1cbiAgMjgle29wYWNpdHk6LjA2fVxuICA2MiV7b3BhY2l0eTouMTZ9XG59XG5cbi8qIGlQYWQgUHJvICovXG5AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6MTAyNHB4KXtcbiAgLnRvd2VyLWxpZ2h0bmluZy1vdmVybGF5e1xuICAgIGxlZnQ6MTglICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOjEyMHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6NDcwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBpUGFkIEFpciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ODAwcHgpIGFuZCAobWF4LXdpZHRoOjkwMHB4KXtcbiAgLnRvd2VyLWxpZ2h0bmluZy1vdmVybGF5e1xuICAgIGxlZnQ6Y2FsYygxNiUgKyA0MHB4KSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTo5MHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6NDMwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBpUGFkIE1pbmkgKi9cbkBtZWRpYSAobWluLXdpZHRoOjc2OHB4KSBhbmQgKG1heC13aWR0aDo3OTlweCl7XG4gIC50b3dlci1saWdodG5pbmctb3ZlcmxheXtcbiAgICBsZWZ0OmNhbGMoMTYlICsgNzBweCkgIWltcG9ydGFudDtcbiAgICBib3R0b206NzBweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOjQwMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXtcbiAgLnRvd2VyLWxpZ2h0bmluZy1vdmVybGF5e1xuICAgIGxlZnQ6MzAlICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOjE4cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDo0MjBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIE1vYmlsZSBTbWFsbCAqL1xuQG1lZGlhKG1heC13aWR0aDozOTBweCl7XG4gIC50b3dlci1saWdodG5pbmctb3ZlcmxheXtcbiAgICBsZWZ0OjMxJSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTozNXB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6NDIwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qIEJPVE9OIEJBQ0sgVE8gVE9QICovXG5cbi5iYWNrLXRvLXRvcHtcbiAgcG9zaXRpb246Zml4ZWQ7XG4gIHJpZ2h0OjI4cHg7XG4gIGJvdHRvbToyOHB4O1xuICB3aWR0aDo1OHB4O1xuICBoZWlnaHQ6NThweDtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSg3NSwzOCwxMSwuMzgpO1xuICBiYWNrZ3JvdW5kOnJnYmEoMjI2LDIxOCwyMDMsLjcyKTtcbiAgYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbiAgZm9udC1mYW1pbHk6Q2luemVsLHNlcmlmO1xuICBmb250LXNpemU6MjZweDtcbiAgbGluZS1oZWlnaHQ6MTtcbiAgY3Vyc29yOnBvaW50ZXI7XG4gIHotaW5kZXg6OTA7XG4gIGJveC1zaGFkb3c6MCAxOHB4IDQ1cHggcmdiYSg3NSwzOCwxMSwuMTgpO1xuICBvcGFjaXR5OjA7XG4gIHZpc2liaWxpdHk6aGlkZGVuO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgxOHB4KTtcbiAgdHJhbnNpdGlvbjouMzVzIGVhc2U7XG59XG5cbi5iYWNrLXRvLXRvcDo6YmVmb3Jle1xuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBpbnNldDotOHB4O1xuICBib3JkZXItcmFkaXVzOjUwJTtcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDE2MywxMDcsMjksLjI1KTtcbiAgYW5pbWF0aW9uOnRlc2xhUmluZyAyLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLmJhY2stdG8tdG9wLnNob3d7XG4gIG9wYWNpdHk6MTtcbiAgdmlzaWJpbGl0eTp2aXNpYmxlO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcbn1cblxuLmJhY2stdG8tdG9wOmhvdmVye1xuICBiYWNrZ3JvdW5kOnZhcigtLWJyb3duKTtcbiAgY29sb3I6I2ZmZjtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCk7XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAuYmFjay10by10b3B7XG4gICAgcmlnaHQ6MThweDtcbiAgICBib3R0b206MThweDtcbiAgICB3aWR0aDo1MnB4O1xuICAgIGhlaWdodDo1MnB4O1xuICAgIGZvbnQtc2l6ZToyM3B4O1xuICB9XG59XG5cbi8qIEFMSU5FQUNJT04gVEVYVE9TIEZPT1RFUiAqL1xuXG5AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXtcbiAgLnNpdGUtZm9vdGVye1xuICAgIHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OmNlbnRlciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnNpdGUtZm9vdGVyICp7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cblxuLyogTEVHQUNZIFNFQ1RJT04gKi9cblxuI2xlZ2FjeS5jb250ZW50LXNlY3Rpb257XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxNTBweCAxLjE1ZnIgMi4yZnI7XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgcGFkZGluZzo3MnB4IDV2dztcbiAgb3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LXNpZGV7XG4gIHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIGlzb2xhdGlvbjppc29sYXRlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OnZpc2libGUgIWltcG9ydGFudDtcbiAgZGlzcGxheTpmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OmNlbnRlcjtcbiAgZ2FwOjE4cHg7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1zaWRlIC5zZWN0aW9uLW51bWJlcntcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIHotaW5kZXg6NDtcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1hcnRpZmFjdHtcbiAgcG9zaXRpb246cmVsYXRpdmUgIWltcG9ydGFudDtcbiAgei1pbmRleDo1ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOjMwMHB4ICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6NHB4O1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNHB4KTtcbiAgb3BhY2l0eTouOTY7XG4gIGZpbHRlcjpzZXBpYSguMTgpIGNvbnRyYXN0KDEuMDgpO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB1c2VyLXNlbGVjdDpub25lO1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktc2lkZTo6YmVmb3Jle1xuICBjb250ZW50OlwiXCIgIWltcG9ydGFudDtcbiAgcG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDo1MCUgIWltcG9ydGFudDtcbiAgdG9wOmNhbGMoNjMlIC0gNjBweCkgIWltcG9ydGFudDtcbiAgd2lkdGg6MTI1cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OjEyNXB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czo1MCUgIWltcG9ydGFudDtcbiAgei1pbmRleDo4ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLFxuICAgIHJnYmEoMjU1LDI0OCwyMDUsLjg4KSAwJSxcbiAgICByZ2JhKDI1NSwyMjQsMTM1LC41NSkgMTglLFxuICAgIHJnYmEoMjE4LDE1MSw0OCwuMjgpIDQyJSxcbiAgICByZ2JhKDE2MywxMDcsMjksLjE0KSA2NCUsXG4gICAgdHJhbnNwYXJlbnQgODIlXG4gICkgIWltcG9ydGFudDtcbiAgZmlsdGVyOmJsdXIoMTJweCkgIWltcG9ydGFudDtcbiAgbWl4LWJsZW5kLW1vZGU6c2NyZWVuICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbjpsZWdhY3lCdWxiTGlnaHQgMi44cyBpbmZpbml0ZSBlYXNlLWluLW91dCAhaW1wb3J0YW50O1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktc2lkZTo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6XCJcIiAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OjUwJSAhaW1wb3J0YW50O1xuICB0b3A6Y2FsYyg2MyUgLSA2MHB4KSAhaW1wb3J0YW50O1xuICB3aWR0aDo0MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDo0MHB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czo1MCUgIWltcG9ydGFudDtcbiAgei1pbmRleDo5ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLFxuICAgIHJnYmEoMjU1LDI1NSwyMzUsLjk1KSAwJSxcbiAgICByZ2JhKDI1NSwyMzIsMTUwLC43MikgMzYlLFxuICAgIHJnYmEoMjE4LDE1MSw0OCwuMjYpIDY0JSxcbiAgICB0cmFuc3BhcmVudCA4NCVcbiAgKSAhaW1wb3J0YW50O1xuICBmaWx0ZXI6Ymx1cig1cHgpICFpbXBvcnRhbnQ7XG4gIG1peC1ibGVuZC1tb2RlOnNjcmVlbiAhaW1wb3J0YW50O1xuICBhbmltYXRpb246bGVnYWN5QnVsYlNwYXJrIDEuOXMgaW5maW5pdGUgc3RlcHMoMSkgIWltcG9ydGFudDtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LWludHJve1xuICBtYXgtd2lkdGg6NTYwcHg7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1pbnRybyBoMntcbiAgbWF4LXdpZHRoOjU2MHB4O1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktaW50cm8gcHtcbiAgbWF4LXdpZHRoOjQzMHB4O1xuICBtYXJnaW46MjRweCAwIDI4cHg7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJkLWdyaWR7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLCAxZnIpO1xuICBhbGlnbi1zZWxmOnN0cmV0Y2g7XG4gIGJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJke1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgbWluLWhlaWdodDo0MDBweDtcbiAgcGFkZGluZzoyMnB4IDMwcHggMzRweDtcbiAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG4gIGRpc3BsYXk6ZmxleDtcbiAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtcbiAgb3ZlcmZsb3c6aGlkZGVuO1xuICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2U7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJkOjpiZWZvcmV7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIHRvcDowO1xuICByaWdodDowO1xuICBib3R0b206MDtcbiAgbGVmdDotMnB4O1xuICB6LWluZGV4OjA7XG4gIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xuICBvcGFjaXR5OjA7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gIHRyYW5zaXRpb246b3BhY2l0eSAuMzVzIGVhc2U7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJkOmhvdmVye1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNnB4KTtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LWNhcmQ6aG92ZXI6OmJlZm9yZXtcbiAgb3BhY2l0eToxO1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZSxcbiNsZWdhY3kgLmxlZ2FjeS1jYXJkLWNvbnRlbnQsXG4jbGVnYWN5IC5sZWdhY3ktY2FyZCBoMyxcbiNsZWdhY3kgLmxlZ2FjeS1jYXJkIHB7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB6LWluZGV4OjE7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdle1xuICBoZWlnaHQ6MjMwcHg7XG4gIHdpZHRoOjEwMCU7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICBtYXJnaW4tYm90dG9tOjE4cHg7XG4gIHBhZGRpbmctaW5saW5lOjEwcHg7XG4gIGJveC1zaXppbmc6Ym9yZGVyLWJveDtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LWNhcmQtaW1hZ2UgaW1ne1xuICB3aWR0aDoxMDAlO1xuICBtYXgtd2lkdGg6MzUwcHg7XG4gIGhlaWdodDoxMDAlO1xuICBvYmplY3QtZml0OmNvbnRhaW47XG4gIG9wYWNpdHk6Ljk0O1xuICBmaWx0ZXI6c2VwaWEoLjI1KSBjb250cmFzdCgxLjA4KTtcbiAgdHJhbnNmb3JtOnNjYWxlKDEuMDQpO1xuICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjM1cyBlYXNlO1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktY2FyZDpob3ZlciAubGVnYWN5LWNhcmQtaW1hZ2UgaW1ne1xuICB0cmFuc2Zvcm06c2NhbGUoMS4wOSk7XG4gIG9wYWNpdHk6MTtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LWNhcmQgaDN7XG4gIGZvbnQtZmFtaWx5Ok1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZToxNHB4O1xuICBmb250LXdlaWdodDo2MDA7XG4gIGxpbmUtaGVpZ2h0OjEuMzU7XG4gIGxldHRlci1zcGFjaW5nOjNweDtcbiAgY29sb3I6dmFyKC0taW5rKTtcbiAgbWFyZ2luLWJvdHRvbToxOHB4O1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktY2FyZCBwe1xuICBmb250LXNpemU6MTVweDtcbiAgbGluZS1oZWlnaHQ6MS43NTtcbiAgY29sb3I6dmFyKC0tbXV0ZWQpO1xuICBtYXgtd2lkdGg6MjUwcHg7XG59XG5cbkBrZXlmcmFtZXMgbGVnYWN5QnVsYkxpZ2h0e1xuICAwJSwxMDAle1xuICAgIG9wYWNpdHk6LjMwO1xuICAgIHdpZHRoOjgwcHg7XG4gICAgaGVpZ2h0OjgwcHg7XG4gICAgZmlsdGVyOmJsdXIoMTBweCk7XG4gIH1cblxuICAzOCV7XG4gICAgb3BhY2l0eTouNzI7XG4gICAgd2lkdGg6MTM1cHg7XG4gICAgaGVpZ2h0OjEzNXB4O1xuICAgIGZpbHRlcjpibHVyKDE0cHgpO1xuICB9XG5cbiAgNTgle1xuICAgIG9wYWNpdHk6LjQyO1xuICAgIHdpZHRoOjE3MHB4O1xuICAgIGhlaWdodDoxNzBweDtcbiAgICBmaWx0ZXI6Ymx1cigxOHB4KTtcbiAgfVxuXG4gIDc4JXtcbiAgICBvcGFjaXR5Oi42MjtcbiAgICB3aWR0aDoxMDVweDtcbiAgICBoZWlnaHQ6MTA1cHg7XG4gICAgZmlsdGVyOmJsdXIoMTJweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBsZWdhY3lCdWxiU3Bhcmt7XG4gIDAlLDEwMCV7XG4gICAgb3BhY2l0eTouMjI7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguNzgpO1xuICB9XG5cbiAgMTgle1xuICAgIG9wYWNpdHk6Ljc4O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoLjk2KTtcbiAgfVxuXG4gIDIyJXtcbiAgICBvcGFjaXR5Oi4yODtcbiAgfVxuXG4gIDQ1JXtcbiAgICBvcGFjaXR5Oi44ODtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuMDgpO1xuICB9XG5cbiAgNDkle1xuICAgIG9wYWNpdHk6LjI0O1xuICB9XG5cbiAgNzYle1xuICAgIG9wYWNpdHk6LjY0O1xuICB9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6MTE4MHB4KXtcbiAgI2xlZ2FjeS5jb250ZW50LXNlY3Rpb257XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjE0MHB4IDFmcjtcbiAgICBnYXA6NDZweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWdyaWR7XG4gICAgZ3JpZC1jb2x1bW46MSAvIC0xO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWFydGlmYWN0e1xuICAgIHdpZHRoOjI5MHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZTo6YmVmb3JlLFxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZTo6YWZ0ZXJ7XG4gICAgdG9wOmNhbGMoNjMlIC0gNDVweCkgIWltcG9ydGFudDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJke1xuICAgIG1pbi1oZWlnaHQ6NDIwcHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZXtcbiAgICBoZWlnaHQ6MjYwcHg7XG4gICAgcGFkZGluZy1pbmxpbmU6MTBweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICBtYXgtd2lkdGg6NDMwcHg7XG4gICAgdHJhbnNmb3JtOnNjYWxlKDEuMDgpO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQ6aG92ZXIgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICB0cmFuc2Zvcm06c2NhbGUoMS4xMyk7XG4gIH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDo5ODBweCl7XG4gICNsZWdhY3kuY29udGVudC1zZWN0aW9ue1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxMjBweCAxZnI7XG4gICAgZ2FwOjM0cHg7XG4gICAgcGFkZGluZzo2NHB4IDV2dztcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1zaWRle1xuICAgIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1hcnRpZmFjdHtcbiAgICB3aWR0aDoyNzBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LXNpZGU6OmJlZm9yZSxcbiAgI2xlZ2FjeSAubGVnYWN5LXNpZGU6OmFmdGVye1xuICAgIHRvcDpjYWxjKDY0JSAtIDQ1cHgpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZHtcbiAgICBtaW4taGVpZ2h0OjQyMHB4O1xuICAgIHBhZGRpbmc6MjJweCAzMHB4IDMycHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZXtcbiAgICBoZWlnaHQ6MjYwcHg7XG4gICAgcGFkZGluZy1pbmxpbmU6MTBweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICBtYXgtd2lkdGg6NDIwcHg7XG4gICAgdHJhbnNmb3JtOnNjYWxlKDEuMDgpO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQ6aG92ZXIgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICB0cmFuc2Zvcm06c2NhbGUoMS4xMyk7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZCBoM3tcbiAgICBmb250LXNpemU6MTNweDtcbiAgICBsZXR0ZXItc3BhY2luZzoyLjVweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkIHB7XG4gICAgZm9udC1zaXplOjE0cHg7XG4gIH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDo3NjBweCl7XG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWdyaWR7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtcbiAgICBib3JkZXItbGVmdDpub25lO1xuICAgIGJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjE4KTtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJke1xuICAgIG1pbi1oZWlnaHQ6YXV0bztcbiAgICBib3JkZXItcmlnaHQ6bm9uZTtcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICAgIHBhZGRpbmc6MzRweCAzMHB4IDM4cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZDo6YmVmb3Jle1xuICAgIGxlZnQ6MDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdle1xuICAgIGhlaWdodDozMjBweDtcbiAgICBwYWRkaW5nLWlubGluZToxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206MTRweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICBtYXgtd2lkdGg6NTIwcHg7XG4gICAgdHJhbnNmb3JtOnNjYWxlKDEuMTApO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQ6aG92ZXIgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICB0cmFuc2Zvcm06c2NhbGUoMS4xNSk7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZCBwe1xuICAgIG1heC13aWR0aDozNjBweDtcbiAgfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXtcbiAgI2xlZ2FjeS5jb250ZW50LXNlY3Rpb257XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBnYXA6MjhweDtcbiAgICBwYWRkaW5nOjU4cHggNXZ3ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZXtcbiAgICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgZ2FwOjE0cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZSAuc2VjdGlvbi1udW1iZXJ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktYXJ0aWZhY3R7XG4gICAgd2lkdGg6MjQwcHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06bm9uZTtcbiAgICBtYXJnaW4tdG9wOjA7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZTo6YmVmb3Jle1xuICAgIHRvcDpjYWxjKDY0JSAtIDQ1cHgpICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6MTE1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6MTE1cHggIWltcG9ydGFudDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1zaWRlOjphZnRlcntcbiAgICB0b3A6Y2FsYyg2NCUgLSA0NXB4KSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOjM4cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6MzhweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWludHJve1xuICAgIG1heC13aWR0aDoxMDAlO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWludHJvIGgyLFxuICAjbGVnYWN5IC5sZWdhY3ktaW50cm8gcHtcbiAgICBtYXgtd2lkdGg6MTAwJTtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1pbnRybyAuYnRue1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJke1xuICAgIHBhZGRpbmc6MzRweCAzMHB4IDM4cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZXtcbiAgICBoZWlnaHQ6MzAwcHg7XG4gICAgcGFkZGluZy1pbmxpbmU6MTBweDtcbiAgICBtYXJnaW4tYm90dG9tOjE0cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZSBpbWd7XG4gICAgbWF4LXdpZHRoOjUwMHB4O1xuICAgIHRyYW5zZm9ybTpzY2FsZSgxLjEyKTtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkOmhvdmVyIC5sZWdhY3ktY2FyZC1pbWFnZSBpbWd7XG4gICAgdHJhbnNmb3JtOnNjYWxlKDEuMTcpO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQgaDN7XG4gICAgZm9udC1zaXplOjEzcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6Mi40cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZCBwe1xuICAgIGZvbnQtc2l6ZToxNC41cHg7XG4gICAgbGluZS1oZWlnaHQ6MS43NTtcbiAgfVxufVxuXG5cbi8qIEFOQ0hPUiBTQ1JPTEwgT0ZGU0VUICovXG5cbmh0bWx7XG4gIHNjcm9sbC1iZWhhdmlvcjpzbW9vdGg7XG4gIHNjcm9sbC1wYWRkaW5nLXRvcDo5MHB4O1xufVxuXG5zZWN0aW9uW2lkXSxcbltpZF0uY29udGVudC1zZWN0aW9ue1xuICBzY3JvbGwtbWFyZ2luLXRvcDo5MHB4O1xufVxuXG5AbWVkaWEobWF4LXdpZHRoOjk4MHB4KXtcbiAgaHRtbHtcbiAgICBzY3JvbGwtcGFkZGluZy10b3A6ODVweDtcbiAgfVxuXG4gIHNlY3Rpb25baWRdLFxuICBbaWRdLmNvbnRlbnQtc2VjdGlvbntcbiAgICBzY3JvbGwtbWFyZ2luLXRvcDo4NXB4O1xuICB9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICBodG1se1xuICAgIHNjcm9sbC1wYWRkaW5nLXRvcDo3NXB4O1xuICB9XG5cbiAgc2VjdGlvbltpZF0sXG4gIFtpZF0uY29udGVudC1zZWN0aW9ue1xuICAgIHNjcm9sbC1tYXJnaW4tdG9wOjc1cHg7XG4gIH1cbn1cblxuXG4vKiBGb290ZXIgKi9cblxuLnNpdGUtZm9vdGVye1xuICB3aWR0aDoxMDAlO1xuICBwYWRkaW5nOjI0cHggNXZ3O1xuICBib3JkZXItdG9wOjBweDtcbiAgZGlzcGxheTpncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDJmciAxZnI7XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgZ2FwOjI0cHg7XG4gIGJhY2tncm91bmQ6cmdiYSgyMjYsMjE4LDIwMywuNzIpO1xufVxuXG4uZm9vdGVyLWJyYW5kLFxuLmZvb3Rlci1jb3B5e1xuICBmb250LWZhbWlseTpNb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6MTNweDtcbiAgZm9udC13ZWlnaHQ6NjAwO1xuICBsZXR0ZXItc3BhY2luZzo0cHg7XG4gIGNvbG9yOnZhcigtLWluayk7XG59XG5cbi5mb290ZXItYnJhbmR7XG4gIHRleHQtYWxpZ246bGVmdDtcbn1cblxuLmZvb3Rlci1jb3B5e1xuICB0ZXh0LWFsaWduOnJpZ2h0O1xufVxuXG4uZm9vdGVyLXF1b3Rle1xuICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgZm9udC1zaXplOjE2LjVweDtcbiAgZm9udC13ZWlnaHQ6NDAwO1xuICBsaW5lLWhlaWdodDoxLjY7XG4gIGxldHRlci1zcGFjaW5nOjNweDtcbiAgY29sb3I6dmFyKC0tbXV0ZWQpO1xufVxuXG4uZm9vdGVyLXF1b3RlIHNwYW57XG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDo4cHg7XG4gIGZvbnQtc2l6ZToxNi41cHg7XG4gIGZvbnQtd2VpZ2h0OjQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6M3B4O1xufVxuXG4vKiBUYWJsZXQgKi9cbkBtZWRpYShtYXgtd2lkdGg6OTgwcHgpe1xuICAuc2l0ZS1mb290ZXJ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBnYXA6MTRweDtcbiAgICBwYWRkaW5nOjI4cHggNXZ3O1xuICB9XG5cbiAgLmZvb3Rlci1icmFuZCxcbiAgLmZvb3Rlci1jb3B5e1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICB9XG5cbiAgLmZvb3Rlci1xdW90ZXtcbiAgICBtYXgtd2lkdGg6NzIwcHg7XG4gICAgbWFyZ2luOjAgYXV0bztcbiAgfVxufVxuXG4vKiBNb2JpbGUgKi9cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAuc2l0ZS1mb290ZXJ7XG4gICAgcGFkZGluZzozMHB4IDZ2dztcbiAgICBnYXA6MTZweDtcbiAgfVxuXG4gIC5mb290ZXItYnJhbmQsXG4gIC5mb290ZXItY29weXtcbiAgICBmb250LXNpemU6MTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzozcHg7XG4gIH1cblxuICAuZm9vdGVyLXF1b3RlLFxuICAuZm9vdGVyLXF1b3RlIHNwYW57XG4gICAgZm9udC1zaXplOjE1cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6MS44cHg7XG4gIH1cblxuICAuZm9vdGVyLXF1b3RlIHNwYW57XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBtYXJnaW4tbGVmdDowO1xuICAgIG1hcmdpbi10b3A6NnB4O1xuICB9XG59XG5cbi8qIE1vYmlsZSBvbmx5IC0gY2VudGVyIHNlY3Rpb24gbnVtYmVyIGFuZCBjb250ZW50ICovXG5cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAuY29udGVudC1zZWN0aW9ue1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICB9XG5cbiAgLnNlY3Rpb24tbnVtYmVye1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxuXG4gIC5zZWN0aW9uLWludHJve1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxuXG4gIC5zZWN0aW9uLWludHJvIGgyLFxuICAuc2VjdGlvbi1pbnRybyBwe1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OmF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OmF1dG87XG4gIH1cblxuICAuc2VjdGlvbi1pbnRybyAuYnRue1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxufVxuXG5cbi8qIElubm92YXRpb24gZmVhdHVyZXMgLSBhbHdheXMgbGVmdCBhbGlnbmVkICovXG5cbiNpbm5vdmF0aW9uIC5mZWF0dXJlLWxpc3R7XG4gIHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50O1xufVxuXG4jaW5ub3ZhdGlvbiAuZmVhdHVyZS1pdGVte1xuICB0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6ZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4jaW5ub3ZhdGlvbiAuZmVhdHVyZS1pdGVtID4gZGl2Omxhc3QtY2hpbGR7XG4gIHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50O1xufVxuXG4jaW5ub3ZhdGlvbiAuZmVhdHVyZS1pdGVtIGgzLFxuI2lubm92YXRpb24gLmZlYXR1cmUtaXRlbSBwe1xuICB0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6MCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6MCAhaW1wb3J0YW50O1xufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRVhQRVJJRU5DRSBTRUNUSU9OXG4gICBGSU5BTCBMRUZUIEFMSUdOICsgMy1MSU5FIFRJVExFICsgQklHR0VSIElNQUdFXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuI2V4cGVyaWVuY2UsXG4jZXhwZXJpZW5jZSAqe1xuICBib3gtc2l6aW5nOmJvcmRlci1ib3ggIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UuY29udGVudC1zZWN0aW9ue1xuICBkaXNwbGF5OmdyaWQgIWltcG9ydGFudDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjE1MHB4IG1pbm1heCgwLCAxLjM1ZnIpIG1pbm1heCg0MjBweCwgMWZyKSAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczpjZW50ZXIgIWltcG9ydGFudDtcbiAgY29sdW1uLWdhcDoyMHB4ICFpbXBvcnRhbnQ7XG4gIHJvdy1nYXA6MjhweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOjcycHggNXZ3ICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6NTAwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UgLnNlY3Rpb24tbnVtYmVye1xuICBqdXN0aWZ5LXNlbGY6c3RhcnQgIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjpjZW50ZXIgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjowICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTpub25lICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDowICFpbXBvcnRhbnQ7XG59XG5cbiNleHBlcmllbmNlIC5zZWN0aW9uLWludHJve1xuICBqdXN0aWZ5LXNlbGY6c3RhcnQgIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjpjZW50ZXIgIWltcG9ydGFudDtcbiAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6ODgwcHggIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOjAgIWltcG9ydGFudDtcbiAgbWFyZ2luOjAgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXdyYXA6YnJlYWstd29yZCAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyAuZXllYnJvd3tcbiAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOjE0cHggIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gaDJ7XG4gIHdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOjg4MHB4ICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDowICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy13cmFwOm5vcm1hbCAhaW1wb3J0YW50O1xuICB3b3JkLWJyZWFrOm5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBwe1xuICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDo2NDBweCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6MCAhaW1wb3J0YW50O1xuICBtYXJnaW46MjZweCAwIDAgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXdyYXA6YnJlYWstd29yZCAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuZXhwZXJpZW5jZS12aXN1YWx7XG4gIC0tY29pbC14OjQxLjYlO1xuICAtLWNvaWwteToxMy41JTtcblxuICBwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LXNlbGY6ZW5kICFpbXBvcnRhbnQ7XG4gIGFsaWduLXNlbGY6Y2VudGVyICFpbXBvcnRhbnQ7XG4gIHdpZHRoOm1pbig5NzBweCwgNjB2dykgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOjAgIWltcG9ydGFudDtcbiAgYXNwZWN0LXJhdGlvOjEuNDUgLyAxICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjowICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwcHgpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjpub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7XG4gIGlzb2xhdGlvbjppc29sYXRlICFpbXBvcnRhbnQ7XG59XG5cbiNleHBlcmllbmNlIC5leHBlcmllbmNlLXZpc3VhbDo6YmVmb3JlLFxuI2V4cGVyaWVuY2UgLmV4cGVyaWVuY2UtdmlzdWFsOjphZnRlcntcbiAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbiNleHBlcmllbmNlIC5leHBlcmllbmNlLXZpc3VhbCBpbWd7XG4gIHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6MyAhaW1wb3J0YW50O1xuICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDoxMDAlICFpbXBvcnRhbnQ7XG4gIG9iamVjdC1maXQ6Y29udGFpbiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6Ljg4ICFpbXBvcnRhbnQ7XG4gIGZpbHRlcjpzZXBpYSguMTgpIGNvbnRyYXN0KDEuMDgpICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudDtcbiAgdXNlci1zZWxlY3Q6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuY29pbC1nbG93e1xuICBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OnZhcigtLWNvaWwteCkgIWltcG9ydGFudDtcbiAgdG9wOnZhcigtLWNvaWwteSkgIWltcG9ydGFudDtcbiAgd2lkdGg6MTQlICFpbXBvcnRhbnQ7XG4gIGFzcGVjdC1yYXRpbzoxIC8gMSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6NTAlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6MiAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czpub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSxcbiAgICByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLFxuICAgIHJnYmEoMjU1LDI0OCwyMjAsLjc4KSAxOCUsXG4gICAgcmdiYSgyNTUsMjI0LDE0NSwuNDIpIDQyJSxcbiAgICByZ2JhKDE4NCwxMTksMjcsLjE2KSA2NCUsXG4gICAgdHJhbnNwYXJlbnQgODIlXG4gICkgIWltcG9ydGFudDtcbiAgZmlsdGVyOmJsdXIoMTBweCkgIWltcG9ydGFudDtcbiAgbWl4LWJsZW5kLW1vZGU6c2NyZWVuICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbjpleHBlcmllbmNlQ29pbEdsb3cgMi42cyBpbmZpbml0ZSBlYXNlLWluLW91dCAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuY29pbC1nbG93OjphZnRlcntcbiAgY29udGVudDpcIlwiO1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgbGVmdDo1MCU7XG4gIHRvcDo1MCU7XG4gIHdpZHRoOjI4JTtcbiAgaGVpZ2h0OjI4JTtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOTUpO1xuICBmaWx0ZXI6Ymx1cigycHgpO1xuICBhbmltYXRpb246ZXhwZXJpZW5jZVNwYXJrQ29yZSAxLjM1cyBpbmZpbml0ZSBzdGVwcygxLGVuZCk7XG59XG5cbiNleHBlcmllbmNlIC5jb2lsLXJheXtcbiAgcG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDp2YXIoLS1jb2lsLXgpICFpbXBvcnRhbnQ7XG4gIHRvcDp2YXIoLS1jb2lsLXkpICFpbXBvcnRhbnQ7XG4gIHdpZHRoOjE4JSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6MnB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46bGVmdCBjZW50ZXIgIWltcG9ydGFudDtcbiAgei1pbmRleDo0ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTowICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLFxuICAgIHJnYmEoMjU1LDI1NSwyNTUsMSksXG4gICAgcmdiYSgyNTUsMjQ4LDIxNSwuOTUpLFxuICAgIHJnYmEoMjU1LDIyMCwxMzAsLjQ1KSxcbiAgICB0cmFuc3BhcmVudFxuICApICFpbXBvcnRhbnQ7XG4gIGZpbHRlcjpkcm9wLXNoYWRvdygwIDAgOHB4IHJnYmEoMjU1LDI1NSwyNTUsLjg1KSkgZHJvcC1zaGFkb3coMCAwIDEycHggcmdiYSgyNTUsMjI1LDE1MCwuNDUpKSAhaW1wb3J0YW50O1xuICBjbGlwLXBhdGg6cG9seWdvbihcbiAgICAwIDQ2JSwgOCUgMTglLCAxNiUgNTglLCAyNyUgMjQlLFxuICAgIDM5JSA3MiUsIDUyJSAzMCUsIDY2JSA2NiUsIDgyJSAzNiUsXG4gICAgMTAwJSA1MCUsIDEwMCUgNjIlLCA4MiUgNzglLCA2NiUgNDglLFxuICAgIDUyJSA4OCUsIDM5JSA0MiUsIDI3JSA3NiUsIDE2JSAzNiUsXG4gICAgOCUgNzIlLCAwIDU4JVxuICApICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbjpleHBlcmllbmNlUmF5QnVyc3QgMy42cyBpbmZpbml0ZSBzdGVwcygxLGVuZCkgIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UgLnJheS0xe1xuICB0cmFuc2Zvcm06cm90YXRlKC00NmRlZykgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLWRlbGF5Oi4xNXMgIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UgLnJheS0ye1xuICB3aWR0aDoxNiUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOnJvdGF0ZSgxNmRlZykgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLWRlbGF5OjEuMTVzICFpbXBvcnRhbnQ7XG59XG5cbiNleHBlcmllbmNlIC5yYXktM3tcbiAgd2lkdGg6MTQlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTpyb3RhdGUoLTk2ZGVnKSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tZGVsYXk6Mi4wNXMgIWltcG9ydGFudDtcbn1cblxuQGtleWZyYW1lcyBleHBlcmllbmNlQ29pbEdsb3d7XG4gIDAlLDEwMCV7XG4gICAgb3BhY2l0eTouMjY7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguNzIpO1xuICAgIGZpbHRlcjpibHVyKDlweCk7XG4gIH1cblxuICAzOCV7XG4gICAgb3BhY2l0eToxO1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4yOCk7XG4gICAgZmlsdGVyOmJsdXIoMTVweCk7XG4gIH1cblxuICA2MiV7XG4gICAgb3BhY2l0eTouNDg7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguOTIpO1xuICAgIGZpbHRlcjpibHVyKDExcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZXhwZXJpZW5jZVNwYXJrQ29yZXtcbiAgMCUsIDU4JSwgMTAwJXtcbiAgICBvcGFjaXR5Oi4yNTtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKC42NSk7XG4gIH1cblxuICA2MCV7XG4gICAgb3BhY2l0eToxO1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4zNSk7XG4gIH1cblxuICA2MyV7XG4gICAgb3BhY2l0eTouMzU7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguODUpO1xuICB9XG5cbiAgNjYle1xuICAgIG9wYWNpdHk6Ljk1O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xNSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBleHBlcmllbmNlUmF5QnVyc3R7XG4gIDAlLCA2NCUsIDEwMCV7XG4gICAgb3BhY2l0eTowO1xuICB9XG5cbiAgNjYle1xuICAgIG9wYWNpdHk6Ljk1O1xuICB9XG5cbiAgNjgle1xuICAgIG9wYWNpdHk6LjE4O1xuICB9XG5cbiAgNzAle1xuICAgIG9wYWNpdHk6MTtcbiAgfVxuXG4gIDcyJXtcbiAgICBvcGFjaXR5Oi4yNTtcbiAgfVxuXG4gIDc0JXtcbiAgICBvcGFjaXR5Oi44NTtcbiAgfVxuXG4gIDc3JXtcbiAgICBvcGFjaXR5OjA7XG4gIH1cbn1cblxuLyogVGFibGV0ICovXG5AbWVkaWEobWF4LXdpZHRoOjExODBweCl7XG4gICNleHBlcmllbmNlLmNvbnRlbnQtc2VjdGlvbntcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTUwcHggbWlubWF4KDAsIDFmcikgIWltcG9ydGFudDtcbiAgICBjb2x1bW4tZ2FwOjIwcHggIWltcG9ydGFudDtcbiAgICByb3ctZ2FwOjM0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOjcycHggY2xhbXAoMjBweCwgNXZ3LCA1NnB4KSAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6YXV0byAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24tbnVtYmVye1xuICAgIGp1c3RpZnktc2VsZjpzdGFydCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm97XG4gICAgbWF4LXdpZHRoOjg4MHB4ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBoMixcbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gcHtcbiAgICB0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5leHBlcmllbmNlLXZpc3VhbHtcbiAgICBncmlkLWNvbHVtbjoxIC8gLTEgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LXNlbGY6Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6bWluKDg3MHB4LCA5NHZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOm5vbmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBNb2JpbGUgKi9cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAjZXhwZXJpZW5jZS5jb250ZW50LXNlY3Rpb257XG4gICAgZGlzcGxheTpncmlkICFpbXBvcnRhbnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLCAxZnIpICFpbXBvcnRhbnQ7XG4gICAgZ2FwOjMycHggIWltcG9ydGFudDtcbiAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOjcycHggMjJweCA4MnB4ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLW51bWJlcntcbiAgICBqdXN0aWZ5LXNlbGY6Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtcbiAgICBtYXJnaW46MCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOjAgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLWludHJve1xuICAgIGp1c3RpZnktc2VsZjpjZW50ZXIgIWltcG9ydGFudDtcbiAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6MCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctaW5saW5lOjAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46MCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOmFueXdoZXJlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyAuZXllYnJvd3tcbiAgICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206MTZweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gaDIsXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLWludHJvIHB7XG4gICAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOjAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDphdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OmF1dG8gIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93LXdyYXA6YW55d2hlcmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLWludHJvIHB7XG4gICAgbWFyZ2luLXRvcDoyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuZXhwZXJpZW5jZS12aXN1YWx7XG4gICAgLS1jb2lsLXg6NDEuNiU7XG4gICAgLS1jb2lsLXk6MTMuNSU7XG5cbiAgICBncmlkLWNvbHVtbjphdXRvICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1zZWxmOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIHdpZHRoOm1pbig2MTBweCwgMTAwJSkgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDowICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOjRweCBhdXRvIDAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLmV4cGVyaWVuY2UtdmlzdWFsIGltZ3tcbiAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6MTAwJSAhaW1wb3J0YW50O1xuICAgIG9iamVjdC1maXQ6Y29udGFpbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLmNvaWwtZ2xvd3tcbiAgICB3aWR0aDoxNyUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5jb2lsLXJheXtcbiAgICB3aWR0aDoxNSUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjM4MHB4KXtcbiAgI2V4cGVyaWVuY2UuY29udGVudC1zZWN0aW9ue1xuICAgIHBhZGRpbmctbGVmdDoxOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDoxOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Q2luemVsOndnaHRANDAwOzUwMDs2MDAmZmFtaWx5PU1vbnRzZXJyYXQ6d2dodEA0MDA7NTAwOzYwMCZkaXNwbGF5PXN3YXAnKTtcblxuOnJvb3R7XG4gIC0tcGFwZXI6I2UyZGFjYjtcbiAgLS1wYXBlcjI6I2QyYzZiNDtcbiAgLS1pbms6IzIxMTcwZjtcbiAgLS1tdXRlZDojNWQ1MDQzO1xuICAtLWJyb3duOiM0YjI2MGI7XG4gIC0tYnJvd24yOiM3YjRhMTc7XG4gIC0tZ29sZDojYTM2YjFkO1xuICAtLWxpbmU6cmdiYSg3NSwzOCwxMSwuMjQpO1xuICAtLXNvZnQ6cmdiYSg3NSwzOCwxMSwuMDgpO1xuICAtLXdoaXRlLXNvZnQ6cmdiYSgyNTUsMjU1LDI1NSwuMjIpO1xuICAtLXNoYWRvdzowIDI0cHggNzBweCByZ2JhKDc1LDM4LDExLC4xNik7XG59XG5cbip7Ym94LXNpemluZzpib3JkZXItYm94fVxuXG5odG1se3Njcm9sbC1iZWhhdmlvcjpzbW9vdGh9XG5cbmJvZHl7XG4gIG1hcmdpbjowO1xuICBjb2xvcjp2YXIoLS1pbmspO1xuICBmb250LWZhbWlseTpNb250c2VycmF0LHN5c3RlbS11aSxzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNjUlIDIwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMzgpLCB0cmFuc3BhcmVudCAzMCUpLFxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDg1JSwgcmdiYSg3NSwzOCwxMSwuMDkpLCB0cmFuc3BhcmVudCAyOCUpLFxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tcGFwZXIpLHZhcigtLXBhcGVyMikpO1xuICBvdmVyZmxvdy14OmhpZGRlbjtcbn1cblxuYm9keS5tZW51LW9wZW57b3ZlcmZsb3c6aGlkZGVufVxuXG5ib2R5OjpiZWZvcmV7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246Zml4ZWQ7XG4gIGluc2V0OjA7XG4gIHotaW5kZXg6LTE7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gIG9wYWNpdHk6LjIyO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCh2YXIoLS1saW5lKSAxcHgsIHRyYW5zcGFyZW50IDFweCksXG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWxpbmUpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTtcbiAgYmFja2dyb3VuZC1zaXplOjMzM3B4IDMzM3B4O1xuICBtYXNrLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sYmxhY2ssdHJhbnNwYXJlbnQgOTAlKTtcbn1cblxuaW1ne21heC13aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2t9XG5cbmF7Y29sb3I6aW5oZXJpdH1cblxuLnNpdGUtaGVhZGVye1xuICBwb3NpdGlvbjpmaXhlZDtcbiAgaW5zZXQ6MCAwIGF1dG8gMDtcbiAgei1pbmRleDo1MDtcbiAgZGlzcGxheTpmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBwYWRkaW5nOjI0cHggNXZ3O1xuICBiYWNrZ3JvdW5kOnJnYmEoMjI2LDIxOCwyMDMsLjc4KTtcbiAgYmFja2Ryb3AtZmlsdGVyOmJsdXIoMThweCk7XG4gIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpO1xufVxuXG4uYnJhbmR7XG4gIGZvbnQtZmFtaWx5OkNpbnplbCxzZXJpZjtcbiAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gIGNvbG9yOnZhcigtLWluayk7XG4gIGZvbnQtc2l6ZToyNHB4O1xuICBsZXR0ZXItc3BhY2luZzo4cHg7XG4gIGZvbnQtd2VpZ2h0OjUwMDtcbn1cblxuLmJyYW5kIHNwYW57XG4gIGRpc3BsYXk6YmxvY2s7XG4gIGZvbnQtZmFtaWx5Ok1vbnRzZXJyYXQsc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOjEwcHg7XG4gIGxldHRlci1zcGFjaW5nOjNweDtcbiAgbWFyZ2luLXRvcDo0cHg7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbn1cblxuLm1haW4tbmF2e1xuICBkaXNwbGF5OmZsZXg7XG4gIGdhcDoyNnB4O1xuICBhbGlnbi1pdGVtczpjZW50ZXI7XG59XG5cbi5tYWluLW5hdiBhe1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gIGNvbG9yOnZhcigtLWluayk7XG4gIGZvbnQtc2l6ZToxM3B4O1xuICBsZXR0ZXItc3BhY2luZzoycHg7XG4gIGZvbnQtd2VpZ2h0OjUwMDtcbiAgcGFkZGluZzoxMnB4IDRweDtcbn1cblxuLm1haW4tbmF2IGE6OmFmdGVye1xuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBsZWZ0OjA7XG4gIGJvdHRvbTo0cHg7XG4gIHdpZHRoOjA7XG4gIGhlaWdodDoxcHg7XG4gIGJhY2tncm91bmQ6dmFyKC0tZ29sZCk7XG4gIHRyYW5zaXRpb246LjM1cyBlYXNlO1xufVxuXG4ubWFpbi1uYXYgYTpob3Zlcjo6YWZ0ZXJ7d2lkdGg6MTAwJX1cblxuLm1haW4tbmF2IC5uYXYtY3Rhe1xuICBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJyb3duKTtcbiAgcGFkZGluZzoxNHB4IDIycHg7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbiAgb3ZlcmZsb3c6aGlkZGVuO1xufVxuXG4ubWVudS10b2dnbGV7XG4gIGRpc3BsYXk6bm9uZTtcbiAgd2lkdGg6NTRweDtcbiAgaGVpZ2h0OjU0cHg7XG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSg3NSwzOCwxMSwuMzUpO1xuICBib3JkZXItcmFkaXVzOjUwJTtcbiAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xOCk7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIGN1cnNvcjpwb2ludGVyO1xuICB6LWluZGV4OjgwO1xuICBib3gtc2hhZG93OjAgMThweCA0NXB4IHJnYmEoNzUsMzgsMTEsLjEyKTtcbn1cblxuLm1lbnUtdG9nZ2xlOjpiZWZvcmV7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIGluc2V0Oi04cHg7XG4gIGJvcmRlci1yYWRpdXM6NTAlO1xuICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTYzLDEwNywyOSwuMjUpO1xuICBhbmltYXRpb246dGVzbGFSaW5nIDIuOHMgbGluZWFyIGluZmluaXRlO1xufVxuXG4ubWVudS10b2dnbGUgc3BhbntcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIGxlZnQ6MTVweDtcbiAgd2lkdGg6MjJweDtcbiAgaGVpZ2h0OjEuNXB4O1xuICBiYWNrZ3JvdW5kOnZhcigtLWJyb3duKTtcbiAgdHJhbnNpdGlvbjouMzVzIGVhc2U7XG59XG5cbi5tZW51LXRvZ2dsZSBzcGFuOm50aC1jaGlsZCgxKXt0b3A6MTlweH1cbi5tZW51LXRvZ2dsZSBzcGFuOm50aC1jaGlsZCgyKXt0b3A6MjdweH1cbi5tZW51LXRvZ2dsZSBzcGFuOm50aC1jaGlsZCgzKXt0b3A6MzVweH1cblxuLm1lbnUtdG9nZ2xlLmFjdGl2ZSBzcGFuOm50aC1jaGlsZCgxKXt0b3A6MjdweDt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX1cbi5tZW51LXRvZ2dsZS5hY3RpdmUgc3BhbjpudGgtY2hpbGQoMil7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwcHgpfVxuLm1lbnUtdG9nZ2xlLmFjdGl2ZSBzcGFuOm50aC1jaGlsZCgzKXt0b3A6MjdweDt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9XG5cbi5tb2JpbGUtZW5lcmd5e1xuICBwb3NpdGlvbjpmaXhlZDtcbiAgaW5zZXQ6MDtcbiAgei1pbmRleDo0NTtcbiAgcG9pbnRlci1ldmVudHM6bm9uZTtcbiAgb3BhY2l0eTowO1xuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODIlIDE4JSwgcmdiYSgxNjMsMTA3LDI5LC4yNCksIHRyYW5zcGFyZW50IDI2JSksXG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSg3NSwzOCwxMSwuMTgpKTtcbiAgdHJhbnNpdGlvbjouNDVzIGVhc2U7XG59XG5cbmJvZHkubWVudS1vcGVuIC5tb2JpbGUtZW5lcmd5e29wYWNpdHk6MX1cblxuLmhlcm97XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OjEwMHZoO1xuICBwYWRkaW5nOjE1MHB4IDV2dyA3MHB4O1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMS4yZnI7XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgZ2FwOjQwcHg7XG4gIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpO1xuICBvdmVyZmxvdzpoaWRkZW47XG59XG5cbi5oZXJvLWNvcHl7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB6LWluZGV4Ojg7XG59XG5cbi5leWVicm93e1xuICBjb2xvcjp2YXIoLS1icm93bjIpO1xuICBsZXR0ZXItc3BhY2luZzo0cHg7XG4gIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgZm9udC1zaXplOjE0cHg7XG4gIGZvbnQtd2VpZ2h0OjUwMDtcbn1cblxuaDEsaDJ7XG4gIGZvbnQtZmFtaWx5OkNpbnplbCxzZXJpZjtcbiAgZm9udC13ZWlnaHQ6NTAwO1xuICBsaW5lLWhlaWdodDouOTg7XG4gIG1hcmdpbjowO1xufVxuXG5oMXtcbiAgZm9udC1zaXplOmNsYW1wKDU4cHgsOHZ3LDEyOHB4KTtcbiAgbGV0dGVyLXNwYWNpbmc6NHB4O1xufVxuXG5oMntcbiAgZm9udC1zaXplOmNsYW1wKDMwcHgsNHZ3LDQ4cHgpO1xuICBsZXR0ZXItc3BhY2luZzoxLjVweDtcbn1cblxucHtcbiAgY29sb3I6dmFyKC0tbXV0ZWQpO1xuICBsaW5lLWhlaWdodDoxLjc1O1xuICBmb250LXNpemU6MTVweDtcbn1cblxuLmxlYWR7bWF4LXdpZHRoOjQ3MHB4O21hcmdpbjoyOHB4IDB9XG5cbi5oZXJvLWFjdGlvbnN7XG4gIGRpc3BsYXk6ZmxleDtcbiAgZmxleC13cmFwOndyYXA7XG4gIGdhcDoxNHB4O1xufVxuXG4uYnRue1xuICBkaXNwbGF5OmlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDpjZW50ZXI7XG4gIGdhcDoxNHB4O1xuICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbiAgYmFja2dyb3VuZDp2YXIoLS1icm93bik7XG4gIGNvbG9yOiNmZmY7XG4gIHBhZGRpbmc6MTZweCAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzoycHg7XG4gIGZvbnQtc2l6ZToxMnB4O1xuICBmb250LXdlaWdodDo2MDA7XG4gIGJvcmRlcjoxcHggc29saWQgdmFyKC0tYnJvd24pO1xuICBib3gtc2hhZG93OjAgMTZweCA0MHB4IHJnYmEoNzUsMzgsMTEsLjIyKTtcbiAgY3Vyc29yOnBvaW50ZXI7XG4gIHRyYW5zaXRpb246LjM1cyBlYXNlO1xufVxuXG4uYnRuOmhvdmVye1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KTtcbiAgYm94LXNoYWRvdzowIDIycHggNTBweCByZ2JhKDc1LDM4LDExLC4yNik7XG59XG5cbi5idG4tZ2hvc3R7XG4gIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbiAgYm94LXNoYWRvdzpub25lO1xufVxuXG4uaGVyby12aXN1YWx7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OjcwMHB4O1xuICBkaXNwbGF5OmdyaWQ7XG4gIHBsYWNlLWl0ZW1zOmVuZCBjZW50ZXI7XG59XG5cbi50ZXNsYS1wb3J0cmFpdHtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIHJpZ2h0Oi03dnc7XG4gIHRvcDotMThweDtcbiAgd2lkdGg6bWluKDc2MHB4LDU4dncpO1xuICBtYXgtaGVpZ2h0Ojc2MHB4O1xuICBvYmplY3QtZml0OmNvbnRhaW47XG4gIGZpbHRlcjpzZXBpYSguMjUpIGNvbnRyYXN0KDEuMDQpO1xuICBvcGFjaXR5Oi45MDtcbiAgei1pbmRleDozO1xufVxuXG4ud2FyZGVuY2x5ZmZlLXRvd2Vye1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgYm90dG9tOi02MHB4O1xuICBsZWZ0OjE0JTtcbiAgd2lkdGg6bWluKDY4MHB4LDUwdncpO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtcbiAgZmlsdGVyOnNlcGlhKC4yKSBjb250cmFzdCgxLjA4KTtcbiAgei1pbmRleDo0O1xufVxuXG4uaGVyby1saWdodG5pbmd7XG4gIGRpc3BsYXk6bm9uZTtcbn1cblxuLnRlc2xhLXF1b3Rle1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgcmlnaHQ6MnZ3O1xuICBib3R0b206MTIwcHg7XG4gIHotaW5kZXg6NTtcbiAgbWF4LXdpZHRoOjI3MHB4O1xuICBmb250LWZhbWlseTpDaW56ZWwsc2VyaWY7XG4gIGZvbnQtc3R5bGU6aXRhbGljO1xuICBjb2xvcjp2YXIoLS1icm93bik7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50ZXNsYS1xdW90ZSBzcGFue1xuICBkaXNwbGF5OmJsb2NrO1xuICBtYXJnaW4tdG9wOjE4cHg7XG59XG5cbi5kaWFncmFte1xuICBkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWFncmFte1xuICBkaXNwbGF5Om5vbmU7XG59XG5cbi5oZXJvLWJnLWRpYWdyYW17XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB1c2VyLXNlbGVjdDpub25lO1xuICBvcGFjaXR5Oi4yNDtcbiAgZmlsdGVyOnNlcGlhKDEpIHNhdHVyYXRlKC43NSkgY29udHJhc3QoLjgyKSBicmlnaHRuZXNzKDEuMTgpO1xuICBtaXgtYmxlbmQtbW9kZTptdWx0aXBseTtcbiAgei1pbmRleDoxO1xufVxuXG4uaGVyby1iZy1kaWFncmFtLTAxe1xuICB3aWR0aDptaW4oMzAwcHgsMjB2dyk7XG4gIHJpZ2h0OjF2dztcbiAgdG9wOjE0MHB4O1xuICBvcGFjaXR5Oi4xNTtcbn1cblxuLmhlcm8tYmctZGlhZ3JhbS0wMntcbiAgd2lkdGg6bWluKDYyMHB4LDQydncpO1xuICBsZWZ0OjE1dnc7XG4gIHRvcDoxMDBweDtcbiAgb3BhY2l0eTouMTU7XG59XG5cbi5kaWFncmFtOjpiZWZvcmUsXG4uZGlhZ3JhbTo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSgxMjMsNzQsMjMsLjIpO1xuICBib3JkZXItcmFkaXVzOjUwJTtcbn1cblxuLmRpYWdyYW06OmJlZm9yZXtpbnNldDoyOCV9XG4uZGlhZ3JhbTo6YWZ0ZXJ7aW5zZXQ6NDQlfVxuXG4uZGlhZ3JhbS1oZXJvLTAxe3dpZHRoOjE5MHB4O2hlaWdodDoxOTBweDtyaWdodDo4dnc7dG9wOjEzMHB4fVxuLmRpYWdyYW0taGVyby0wMnt3aWR0aDoxNDBweDtoZWlnaHQ6MTQwcHg7bGVmdDotNTBweDt0b3A6NDYwcHh9XG5cbi5zaWRlLW51bWJlcnN7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBsZWZ0OjIuNXZ3O1xuICB0b3A6MjIwcHg7XG4gIGRpc3BsYXk6ZmxleDtcbiAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gIGdhcDoxNnB4O1xuICBjb2xvcjp2YXIoLS1icm93bik7XG4gIGZvbnQtZmFtaWx5OkNpbnplbCxzZXJpZjtcbiAgZm9udC1zaXplOjIycHg7XG4gIGxpbmUtaGVpZ2h0OjE7XG4gIHRleHQtYWxpZ246Y2VudGVyO1xufVxuXG4uc2lkZS1udW1iZXJzOjpiZWZvcmUsXG4uc2lkZS1udW1iZXJzOjphZnRlcntcbiAgY29udGVudDpcIlwiO1xuICB3aWR0aDoxcHg7XG4gIGhlaWdodDoxMTBweDtcbiAgYmFja2dyb3VuZDp2YXIoLS1icm93bjIpO1xuICBkaXNwbGF5OmJsb2NrO1xufVxuXG4uY29udGVudC1zZWN0aW9ue1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgcGFkZGluZzo3MnB4IDV2dztcbiAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjExMHB4IDEuMWZyIDIuMmZyO1xuICBnYXA6NDRweDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xufVxuXG4uc2VjdGlvbi1udW1iZXJ7XG4gIGZvbnQtZmFtaWx5OkNpbnplbCxzZXJpZjtcbiAgZm9udC1zaXplOjUycHg7XG4gIGNvbG9yOnZhcigtLWJyb3duMik7XG59XG5cbi5zZWN0aW9uLW51bWJlciBzcGFue1xuICBkaXNwbGF5OmJsb2NrO1xuICBmb250LWZhbWlseTpNb250c2VycmF0LHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZToxMnB4O1xuICBjb2xvcjp2YXIoLS1pbmspO1xuICBsZXR0ZXItc3BhY2luZzoycHg7XG59XG5cbi5zZWN0aW9uLWludHJvIHB7bWF4LXdpZHRoOjUyMHB4fVxuXG4uY2FyZC1ncmlke1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpO1xuICBnYXA6MjhweDtcbn1cblxuLmluZm8tY2FyZHtcbiAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWxpbmUpO1xuICBwYWRkaW5nOjIycHg7XG4gIHRyYW5zaXRpb246LjM1cyBlYXNlO1xufVxuXG4uaW5mby1jYXJkOmhvdmVye1xuICBiYWNrZ3JvdW5kOnZhcigtLXNvZnQpO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNnB4KTtcbn1cblxuLmljb24tc2hlbGwsXG4ubWluaS1pY29ue1xuICBib3JkZXI6bm9uZTtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgcGxhY2UtaXRlbXM6Y2VudGVyO1xuICBjb2xvcjp2YXIoLS1icm93bik7XG59XG5cbi5pY29uLXNoZWxse1xuICB3aWR0aDo4NnB4O1xuICBoZWlnaHQ6ODZweDtcbiAgZm9udC1zaXplOjM0cHg7XG4gIG1hcmdpbi1ib3R0b206MThweDtcbn1cblxuLm1pbmktaWNvbntcbiAgd2lkdGg6NTJweDtcbiAgaGVpZ2h0OjUycHg7XG4gIGZvbnQtc2l6ZToyMnB4O1xuICBmbGV4OjAgMCBhdXRvO1xufVxuXG5oM3tcbiAgbGV0dGVyLXNwYWNpbmc6MnB4O1xuICBmb250LXNpemU6MTVweDtcbiAgbWFyZ2luOjAgMCAxMnB4O1xuICBjb2xvcjp2YXIoLS1pbmspO1xufVxuXG4uaW5ub3ZhdGlvbi1ncmlke1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMS4yZnI7XG4gIGdhcDoyOHB4O1xuICBhbGlnbi1pdGVtczpjZW50ZXI7XG59XG5cblxuLmlubm92YXRpb24tZ3JpZHtcbiAgZGlzcGxheTpncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDEuMmZyO1xuICBnYXA6MjhweDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xufVxuXG5cblxuXG4vKiBJbm5vdmF0aW9uIENvcmUgLSBIZXJvIEltYWdlIEZvY3VzICovXG5cbiNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZXtcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICB3aWR0aDptaW4oNTAwcHgsIDM4dncpO1xuICBhc3BlY3QtcmF0aW86MSAvIDE7XG4gIGJvcmRlcjpub25lICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6bm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzp2aXNpYmxlO1xuICBpc29sYXRpb246aXNvbGF0ZTtcbn1cblxuI2lubm92YXRpb24gLmVuZXJneS1jb3JlLFxuI2lubm92YXRpb24gLmVuZXJneS1jb3JlICp7XG4gIGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4jaW5ub3ZhdGlvbiAuZW5lcmd5LWNvcmUgc3BhbntcbiAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbiNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZTo6YmVmb3Jle1xuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBsZWZ0OjUwJTtcbiAgdG9wOjUwJTtcbiAgd2lkdGg6NTAlO1xuICBoZWlnaHQ6NTAlO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBib3JkZXItcmFkaXVzOjUwJTtcbiAgei1pbmRleDoxO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsXG4gICAgcmdiYSgyNTUsMjU1LDI1NSwuOTgpIDAlLFxuICAgIHJnYmEoMjU1LDI1MCwyMzIsLjgyKSAxOCUsXG4gICAgcmdiYSgyNTUsMjMyLDE3MCwuNDIpIDQyJSxcbiAgICByZ2JhKDE4NCwxMTksMjcsLjE2KSA2NCUsXG4gICAgdHJhbnNwYXJlbnQgODIlXG4gICk7XG4gIGZpbHRlcjpibHVyKDIwcHgpO1xuICBtaXgtYmxlbmQtbW9kZTpzY3JlZW47XG4gIGFuaW1hdGlvbjppbm5vdmF0aW9uQXVyYVB1bHNlIDMuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG5cbiNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZTo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIGxlZnQ6NTAlO1xuICB0b3A6NTAlO1xuICB3aWR0aDo3MCU7XG4gIGhlaWdodDo3MCU7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDBkZWcpO1xuICBib3JkZXItcmFkaXVzOjUwJTtcbiAgei1pbmRleDoyO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICBiYWNrZ3JvdW5kOmNvbmljLWdyYWRpZW50KFxuICAgIGZyb20gMGRlZyxcbiAgICB0cmFuc3BhcmVudCAwZGVnLFxuICAgIHRyYW5zcGFyZW50IDM4ZGVnLFxuICAgIHJnYmEoMjU1LDI1NSwyNTUsLjE4KSA1OGRlZyxcbiAgICByZ2JhKDI1NSwyNTUsMjU1LC42MikgNzhkZWcsXG4gICAgcmdiYSgyNTUsMjM2LDE4MCwuMzYpIDk2ZGVnLFxuICAgIHRyYW5zcGFyZW50IDEzMmRlZyxcbiAgICB0cmFuc3BhcmVudCAzNjBkZWdcbiAgKTtcbiAgZmlsdGVyOmJsdXIoMTJweCk7XG4gIG9wYWNpdHk6Ljc4O1xuICBtaXgtYmxlbmQtbW9kZTpzY3JlZW47XG4gIGFuaW1hdGlvbjppbm5vdmF0aW9uRW5lcmd5U3dlZXAgNi40cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbiNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZSBpbWd7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB6LWluZGV4OjM7XG4gIHdpZHRoOjk4JTtcbiAgaGVpZ2h0Ojk4JTtcbiAgb2JqZWN0LWZpdDpjb250YWluO1xuICBib3JkZXI6bm9uZSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOm5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDtcbiAgZmlsdGVyOnNlcGlhKC4xMikgY29udHJhc3QoMS4xKSBicmlnaHRuZXNzKDEuMDMpO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB1c2VyLXNlbGVjdDpub25lO1xuICBhbmltYXRpb246aW5ub3ZhdGlvbkNvcmVGbG9hdCA0LjZzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xufVxuXG4jaW5ub3ZhdGlvbiAuZmVhdHVyZS1pdGVtIC5taW5pLWljb24gaW1ne1xuICB3aWR0aDo1MnB4O1xuICBoZWlnaHQ6NTJweDtcbiAgb2JqZWN0LWZpdDpjb250YWluO1xuICBkaXNwbGF5OmJsb2NrO1xufVxuXG5Aa2V5ZnJhbWVzIGlubm92YXRpb25BdXJhUHVsc2V7XG4gIDAlLDEwMCV7XG4gICAgb3BhY2l0eTouMzg7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguNzgpO1xuICAgIGZpbHRlcjpibHVyKDE4cHgpO1xuICB9XG5cbiAgNDIle1xuICAgIG9wYWNpdHk6MTtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuMjQpO1xuICAgIGZpbHRlcjpibHVyKDMwcHgpO1xuICB9XG5cbiAgNjgle1xuICAgIG9wYWNpdHk6LjU4O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoLjk2KTtcbiAgICBmaWx0ZXI6Ymx1cigyMnB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGlubm92YXRpb25FbmVyZ3lTd2VlcHtcbiAgMCV7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoMGRlZyk7XG4gICAgb3BhY2l0eTouMjI7XG4gIH1cblxuICAyMiV7XG4gICAgb3BhY2l0eTouOTtcbiAgfVxuXG4gIDUyJXtcbiAgICBvcGFjaXR5Oi40ODtcbiAgfVxuXG4gIDEwMCV7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoMzYwZGVnKTtcbiAgICBvcGFjaXR5Oi4yMjtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGlubm92YXRpb25Db3JlRmxvYXR7XG4gIDAlLDEwMCV7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gIH1cblxuICA1MCV7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMS4wMjUpO1xuICB9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6MTE4MHB4KXtcbiAgI2lubm92YXRpb24gLmVuZXJneS1jb3Jle1xuICAgIHdpZHRoOm1pbig0NjBweCwgNDJ2dyk7XG4gIH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDo5ODBweCl7XG4gICNpbm5vdmF0aW9uIC5lbmVyZ3ktY29yZXtcbiAgICB3aWR0aDptaW4oNDIwcHgsIDU4dncpO1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXtcbiAgI2lubm92YXRpb24gLmVuZXJneS1jb3Jle1xuICAgIHdpZHRoOm1pbigzNDBweCwgODh2dyk7XG4gICAgbWFyZ2luLWlubGluZTphdXRvO1xuICB9XG5cbiAgI2lubm92YXRpb24gLmVuZXJneS1jb3JlOjpiZWZvcmV7XG4gICAgd2lkdGg6NTQlO1xuICAgIGhlaWdodDo1NCU7XG4gIH1cblxuICAjaW5ub3ZhdGlvbiAuZW5lcmd5LWNvcmU6OmFmdGVye1xuICAgIHdpZHRoOjc0JTtcbiAgICBoZWlnaHQ6NzQlO1xuICB9XG5cbiAgI2lubm92YXRpb24gLmVuZXJneS1jb3JlIGltZ3tcbiAgICB3aWR0aDoxMDAlO1xuICAgIGhlaWdodDoxMDAlO1xuICB9XG59XG5cblxuXG5cblxuLmZlYXR1cmUtbGlzdHtkaXNwbGF5OmdyaWQ7Z2FwOjIwcHh9XG5cbi5mZWF0dXJlLWl0ZW17XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjYwcHggMWZyO1xuICBnYXA6MThweDtcbiAgYWxpZ24taXRlbXM6c3RhcnQ7XG59XG5cbi8qIFBsYXRmb3JtIFNlY3Rpb24gKi9cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS1hcmVhe1xuICBhbGlnbi1zZWxmOmNlbnRlcjtcbiAgd2lkdGg6MTAwJTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlke1xuICBkaXNwbGF5OmdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywgMWZyKTtcbiAgZ2FwOjA7XG4gIHdpZHRoOjEwMCU7XG4gIGJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG4gIGJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjE4KTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlkIGFydGljbGV7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OjE5MHB4O1xuICBwYWRkaW5nOjM0cHggMjZweDtcbiAgZGlzcGxheTpmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OmNlbnRlcjtcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gIGJvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSg3NSwzOCwxMSwuMTgpO1xuICBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG4gIG92ZXJmbG93OmhpZGRlbjtcbiAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjM1cyBlYXNlO1xufVxuXG4jcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWQgYXJ0aWNsZTo6YmVmb3Jle1xuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBpbnNldDowO1xuICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjE2KTtcbiAgb3BhY2l0eTowO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB0cmFuc2l0aW9uOm9wYWNpdHkgLjM1cyBlYXNlO1xufVxuXG4jcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWQgYXJ0aWNsZTpob3ZlcntcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTZweCk7XG59XG5cbiNwbGF0Zm9ybSAucGxhdGZvcm0tZ3JpZCBhcnRpY2xlOmhvdmVyOjpiZWZvcmV7XG4gIG9wYWNpdHk6MTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlkIC5taW5pLWljb24sXG4jcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWQgaDN7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB6LWluZGV4OjE7XG59XG5cbiNwbGF0Zm9ybSAucGxhdGZvcm0tZ3JpZCAubWluaS1pY29ue1xuICB3aWR0aDo1MnB4O1xuICBoZWlnaHQ6NTJweDtcbiAgbWFyZ2luLWJvdHRvbToyMnB4O1xuICBib3JkZXI6bm9uZTtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICBjb2xvcjp2YXIoLS1icm93bik7XG4gIGZvbnQtc2l6ZToyMnB4O1xufVxuXG4jcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWQgaDN7XG4gIGZvbnQtZmFtaWx5Ok1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZToxNHB4O1xuICBmb250LXdlaWdodDo2MDA7XG4gIGxpbmUtaGVpZ2h0OjEuMzU7XG4gIGxldHRlci1zcGFjaW5nOjNweDtcbiAgY29sb3I6dmFyKC0taW5rKTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS10YWdze1xuICB3aWR0aDoxMDAlO1xuICBtYXJnaW4tdG9wOjA7XG4gIHBhZGRpbmc6MjJweCAxOHB4IDA7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICBnYXA6MjRweDtcbiAgZmxleC13cmFwOndyYXA7XG59XG5cbiNwbGF0Zm9ybSAucGxhdGZvcm0tdGFncyBzcGFue1xuICBmb250LWZhbWlseTpNb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6MTJweDtcbiAgZm9udC13ZWlnaHQ6NjAwO1xuICBsZXR0ZXItc3BhY2luZzo3cHg7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbn1cblxuI3BsYXRmb3JtIC5wbGF0Zm9ybS10YWdzIGl7XG4gIHdpZHRoOjVweDtcbiAgaGVpZ2h0OjVweDtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGJhY2tncm91bmQ6dmFyKC0tYnJvd24pO1xuICBvcGFjaXR5Oi44O1xufVxuXG4vKiBUYWJsZXQgKi9cbkBtZWRpYShtYXgtd2lkdGg6OTgwcHgpe1xuICAjcGxhdGZvcm0gLnBsYXRmb3JtLWdyaWR7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLCAxZnIpO1xuICB9XG5cbiAgI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlkIGFydGljbGV7XG4gICAgbWluLWhlaWdodDoxODBweDtcbiAgICBwYWRkaW5nOjMycHggMjRweDtcbiAgfVxufVxuXG4vKiBNb2JpbGUgKi9cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAjZXhwZXJpZW5jZS5jb250ZW50LXNlY3Rpb257XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzo3MnB4IDZ2dyA4NnB4ICFpbXBvcnRhbnQ7XG4gICAgZ2FwOjM0cHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLW51bWJlcixcbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm97XG4gICAganVzdGlmeS1zZWxmOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWlubGluZTphdXRvICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLWludHJve1xuICAgIHBhZGRpbmctaW5saW5lOjhweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gLmV5ZWJyb3d7XG4gICAgbWFyZ2luLWJvdHRvbToxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBoMixcbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gcHtcbiAgICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OmF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6YXV0byAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBwe1xuICAgIG1hcmdpbi10b3A6MjRweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctaW5saW5lOjEwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5leHBlcmllbmNlLXZpc3VhbHtcbiAgICAtLWNvaWwteDo0MS42JTtcbiAgICAtLWNvaWwteToxMy41JTtcbiAgICB3aWR0aDptaW4oNTAwcHgsIDEwOHZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDoxOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWlubGluZTphdXRvICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOm5vbmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuY29pbC1nbG93e1xuICAgIHdpZHRoOjE3JSAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLmNvaWwtcmF5e1xuICAgIHdpZHRoOjE4JSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5jb250YWN0LWZvcm17XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxLjRmcjtcbiAgZ2FwOjE2cHg7XG59XG5cbi5mb3JtLWZpZWxkc3tkaXNwbGF5OmdyaWQ7Z2FwOjEycHh9XG5cbmlucHV0LFxudGV4dGFyZWF7XG4gIHdpZHRoOjEwMCU7XG4gIHBhZGRpbmc6MTZweDtcbiAgYmFja2dyb3VuZDp2YXIoLS13aGl0ZS1zb2Z0KTtcbiAgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtcbiAgY29sb3I6dmFyKC0taW5rKTtcbiAgZm9udC1mYW1pbHk6TW9udHNlcnJhdCxzYW5zLXNlcmlmO1xuICBvdXRsaW5lOm5vbmU7XG59XG5cbnRleHRhcmVhe21pbi1oZWlnaHQ6MTMycHg7cmVzaXplOnZlcnRpY2FsfVxuXG4uY29udGFjdC1mb3JtIGJ1dHRvbntcbiAgZ3JpZC1jb2x1bW46MjtcbiAganVzdGlmeS1zZWxmOmVuZDtcbn1cblxuLnNpdGUtZm9vdGVye1xuICBkaXNwbGF5OmZsZXg7XG4gIGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO1xuICBnYXA6MThweDtcbiAgcGFkZGluZzoyNnB4IDV2dztcbiAgY29sb3I6dmFyKC0tbXV0ZWQpO1xuICBsZXR0ZXItc3BhY2luZzozcHg7XG4gIGZvbnQtc2l6ZToxMnB4O1xufVxuXG4uc2VjdGlvbi1yZXZlYWx7XG4gIG9wYWNpdHk6MDtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjRweCk7XG4gIHRyYW5zaXRpb246LjhzIGVhc2U7XG59XG5cbi5zZWN0aW9uLXJldmVhbC52aXNpYmxle1xuICBvcGFjaXR5OjE7XG4gIHRyYW5zZm9ybTpub25lO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNle1xuICAwJSwxMDAle29wYWNpdHk6LjQ1O3RyYW5zZm9ybTpzY2FsZSgxKX1cbiAgNTAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMS4wOCl9XG59XG5cbkBrZXlmcmFtZXMgZmxvYXR7XG4gIDAlLDEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgcm90YXRlKDApfVxuICA1MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE2cHgpIHJvdGF0ZSg4ZGVnKX1cbn1cblxuQGtleWZyYW1lcyB0ZXNsYVJpbmd7XG4gIGZyb217dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX1cbiAgdG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjExODBweCl7XG4gIC5wbGF0Zm9ybS1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjk4MHB4KXtcbiAgLnNpdGUtaGVhZGVye3BhZGRpbmc6MThweCA1dnd9XG4gIC5icmFuZHtmb250LXNpemU6MThweDtsZXR0ZXItc3BhY2luZzo1cHh9XG4gIC5icmFuZCBzcGFue2ZvbnQtc2l6ZTo4cHg7bGV0dGVyLXNwYWNpbmc6MnB4fVxuICAubWVudS10b2dnbGV7ZGlzcGxheTpibG9ja31cblxuICAubWFpbi1uYXZ7XG4gICAgcG9zaXRpb246Zml4ZWQ7XG4gICAgdG9wOjA7XG4gICAgcmlnaHQ6MDtcbiAgICB3aWR0aDptaW4oODh2dyw0MjBweCk7XG4gICAgaGVpZ2h0OjEwMHZoO1xuICAgIHBhZGRpbmc6MTEwcHggMzRweCAzNHB4O1xuICAgIGRpc3BsYXk6ZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6c3RyZXRjaDtcbiAgICBnYXA6MTZweDtcbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMjAlLCByZ2JhKDE2MywxMDcsMjksLjE4KSwgdHJhbnNwYXJlbnQgMjglKSxcbiAgICAgIGxpbmVhci1ncmFkaWVudCgxNDVkZWcscmdiYSgyMzIsMjI1LDIxMSwuOTgpLHJnYmEoMjA3LDE5NSwxNzcsLjk2KSk7XG4gICAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjI4KTtcbiAgICBib3gtc2hhZG93Oi00MHB4IDAgOTBweCByZ2JhKDc1LDM4LDExLC4yMik7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTEwJSk7XG4gICAgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjY1cyBjdWJpYy1iZXppZXIoLjIyLDEsLjM2LDEpO1xuICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgfVxuXG4gIC5tYWluLW5hdjo6YmVmb3Jle1xuICAgIGNvbnRlbnQ6XCJcIjtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICBpbnNldDowO1xuICAgIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gICAgb3BhY2l0eTouMzU7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCAwIDMyJSxyZ2JhKDc1LDM4LDExLC4xNCkgMzMlLHRyYW5zcGFyZW50IDM0JSksXG4gICAgICBsaW5lYXItZ3JhZGllbnQoMGRlZyx0cmFuc3BhcmVudCAwIDMyJSxyZ2JhKDc1LDM4LDExLC4xMCkgMzMlLHRyYW5zcGFyZW50IDM0JSk7XG4gICAgYmFja2dyb3VuZC1zaXplOjExMXB4IDExMXB4O1xuICB9XG5cbiAgLm1haW4tbmF2OjphZnRlcntcbiAgICBjb250ZW50OlwiMyAgMzMgIDMzM1wiO1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIGxlZnQ6MzRweDtcbiAgICBib3R0b206MzJweDtcbiAgICBmb250LWZhbWlseTpDaW56ZWwsc2VyaWY7XG4gICAgbGV0dGVyLXNwYWNpbmc6MTBweDtcbiAgICBjb2xvcjpyZ2JhKDc1LDM4LDExLC4zMik7XG4gIH1cblxuICAubWFpbi1uYXYuYWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfVxuXG4gIC5tYWluLW5hdiBhe1xuICAgIG9wYWNpdHk6MDtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgzNnB4KTtcbiAgICBwYWRkaW5nOjE4cHggMjBweDtcbiAgICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjE4KTtcbiAgICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjE4KTtcbiAgICBjb2xvcjp2YXIoLS1pbmspO1xuICAgIGJveC1zaGFkb3c6MCAxNHB4IDM1cHggcmdiYSg3NSwzOCwxMSwuMDgpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICBvcGFjaXR5IC40NXMgZWFzZSxcbiAgICAgIHRyYW5zZm9ybSAuNDVzIGVhc2UsXG4gICAgICBiYWNrZ3JvdW5kIC4zNXMgZWFzZSxcbiAgICAgIGNvbG9yIC4zNXMgZWFzZTtcbiAgfVxuXG4gIC5tYWluLW5hdi5hY3RpdmUgYXtcbiAgICBvcGFjaXR5OjE7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICAubWFpbi1uYXYuYWN0aXZlIGE6bnRoLWNoaWxkKDEpe3RyYW5zaXRpb24tZGVsYXk6LjEwc31cbiAgLm1haW4tbmF2LmFjdGl2ZSBhOm50aC1jaGlsZCgyKXt0cmFuc2l0aW9uLWRlbGF5Oi4xNXN9XG4gIC5tYWluLW5hdi5hY3RpdmUgYTpudGgtY2hpbGQoMyl7dHJhbnNpdGlvbi1kZWxheTouMjBzfVxuICAubWFpbi1uYXYuYWN0aXZlIGE6bnRoLWNoaWxkKDQpe3RyYW5zaXRpb24tZGVsYXk6LjI1c31cbiAgLm1haW4tbmF2LmFjdGl2ZSBhOm50aC1jaGlsZCg1KXt0cmFuc2l0aW9uLWRlbGF5Oi4zMHN9XG4gIC5tYWluLW5hdi5hY3RpdmUgYTpudGgtY2hpbGQoNil7dHJhbnNpdGlvbi1kZWxheTouMzVzfVxuXG4gIC5tYWluLW5hdiBhOmhvdmVye1xuICAgIGJhY2tncm91bmQ6dmFyKC0tYnJvd24pO1xuICAgIGNvbG9yOndoaXRlO1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC04cHgpO1xuICB9XG5cbiAgLm1haW4tbmF2IC5uYXYtY3Rhe1xuICAgIG1hcmdpbi10b3A6MTJweDtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOnZhcigtLWJyb3duKTtcbiAgICBjb2xvcjp3aGl0ZTtcbiAgICBib3JkZXItY29sb3I6dmFyKC0tYnJvd24pO1xuICB9XG5cbiAgLmhlcm97XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtcbiAgICBwYWRkaW5nLXRvcDoxMzBweDtcbiAgfVxuXG4gIC5oZXJvLXZpc3VhbHttaW4taGVpZ2h0OjU5MHB4fVxuXG4gIC50ZXNsYS1wb3J0cmFpdHtcbiAgICB3aWR0aDptaW4oMTAwJSw2ODBweCk7XG4gICAgcmlnaHQ6LTh2dztcbiAgICB0b3A6MDtcbiAgICBvcGFjaXR5Oi44NDtcbiAgfVxuXG4gIC53YXJkZW5jbHlmZmUtdG93ZXJ7XG4gICAgd2lkdGg6bWluKDY0MHB4LDEwNHZ3KTtcbiAgICBsZWZ0OjMyJTtcbiAgICBib3R0b206MDtcbiAgfVxuXG4gIC5oZXJvLWxpZ2h0bmluZ3tcbiAgICBkaXNwbGF5Om5vbmU7XG4gIH1cblxuICAudGVzbGEtcXVvdGV7ZGlzcGxheTpub25lfVxuXG4gIC5jb250ZW50LXNlY3Rpb24sXG4gIC5leHBlcmllbmNle1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7XG4gICAgZ2FwOjI4cHg7XG4gIH1cblxuICAuY2FyZC1ncmlkLFxuICAuaW5ub3ZhdGlvbi1ncmlkLFxuICAucGxhdGZvcm0tZ3JpZCxcbiAgLmNvbnRhY3QtZm9ybXtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO1xuICB9XG5cbiAgLmNvbnRhY3QtZm9ybSBidXR0b257XG4gICAgZ3JpZC1jb2x1bW46YXV0bztcbiAgICBqdXN0aWZ5LXNlbGY6c3RhcnQ7XG4gIH1cblxuICAuc2lkZS1udW1iZXJze2Rpc3BsYXk6bm9uZX1cblxuICAuc2l0ZS1mb290ZXJ7XG4gICAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuICB9XG59XG5cbi8qIEhlcm8gSXBhZCBQcm8gKi9cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KXtcbiAgLmhlcm97XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwLjlmciAxLjFmciAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDcxMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTI1cHggNHZ3IDEyMHB4ICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6c3RhcnQgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWNvcHl7XG4gICAgei1pbmRleDogMTAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMjBweCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLXZpc3VhbHtcbiAgICBtaW4taGVpZ2h0OiA1ODVweCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDY1cHgpICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnRlc2xhLXBvcnRyYWl0e1xuICAgIHJpZ2h0OiAtMTJ2dyAhaW1wb3J0YW50O1xuICAgIHRvcDogLTE1cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogbWluKDU4MHB4LCA2MnZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDU4MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjg4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAud2FyZGVuY2x5ZmZlLXRvd2Vye1xuICAgIGxlZnQ6IDE4JSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogMjVweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBtaW4oNDUwcHgsIDQzdncpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWJnLWRpYWdyYW0tMDF7XG4gICAgd2lkdGg6IG1pbigyMjBweCwgMjJ2dykgIWltcG9ydGFudDtcbiAgICByaWdodDogLTJ2dyAhaW1wb3J0YW50O1xuICAgIHRvcDogNzVweCAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IC4xMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tYmctZGlhZ3JhbS0wMntcbiAgICB3aWR0aDogbWluKDUwMHB4LCA0OHZ3KSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDIwdncgIWltcG9ydGFudDtcbiAgICB0b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAuMTIgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5zaWRlLW51bWJlcnMsXG4gIC50ZXNsYS1xdW90ZXtcbiAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBIZXJvIElwYWQgQWlyICovXG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChtYXgtd2lkdGg6IDkwMHB4KXtcbiAgLnNpdGUtaGVhZGVye1xuICAgIHBhZGRpbmc6IDE4cHggNHZ3ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYnJhbmR7XG4gICAgZm9udC1zaXplOiAxN3B4ICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDVweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmJyYW5kIHNwYW57XG4gICAgZm9udC1zaXplOiA3cHggIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyb3tcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDAuODZmciAxLjE0ZnIgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiA2NjBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDk1cHggNHZ3IDc1cHggIWltcG9ydGFudDtcbiAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczpzdGFydCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tY29weXtcbiAgICB6LWluZGV4OiAxMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDk1cHgpICFpbXBvcnRhbnQ7XG4gIH1cblxuICBoMXtcbiAgICBmb250LXNpemU6IGNsYW1wKDU0cHgsIDh2dywgNzhweCkgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZXllYnJvd3tcbiAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubGVhZHtcbiAgICBtYXgtd2lkdGg6IDMwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxOHB4IDAgMjBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmxlYWQgcCxcbiAgcHtcbiAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS42NSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tYWN0aW9uc3tcbiAgICBnYXA6IDEwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5idG57XG4gICAgcGFkZGluZzogMTNweCAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuNXB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby12aXN1YWx7XG4gICAgbWluLWhlaWdodDogNTM1cHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSg1OHB4KSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OnZpc2libGUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC50ZXNsYS1wb3J0cmFpdHtcbiAgICByaWdodDogLTE1dncgIWltcG9ydGFudDtcbiAgICB0b3A6IC01cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogbWluKDU2MHB4LCA2OHZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDU2MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjg4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAud2FyZGVuY2x5ZmZlLXRvd2Vye1xuICAgIGxlZnQ6IGNhbGMoMTYlICsgNDBweCkgIWltcG9ydGFudDtcbiAgICBib3R0b206IDMwcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogbWluKDQxMHB4LCA0NXZ3KSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1iZy1kaWFncmFtLTAxe1xuICAgIHdpZHRoOiBtaW4oMTkwcHgsIDIydncpICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IC0ydncgIWltcG9ydGFudDtcbiAgICB0b3A6IDc1cHggIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAuMDggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWJnLWRpYWdyYW0tMDJ7XG4gICAgd2lkdGg6IG1pbig0MzBweCwgNTB2dykgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAxOHZ3ICFpbXBvcnRhbnQ7XG4gICAgdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjEwICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuc2lkZS1udW1iZXJzLFxuICAudGVzbGEtcXVvdGV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogSGVybyBJcGFkIE1pbmkgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDc5OXB4KXtcbiAgLmhlcm97XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwLjg0ZnIgMS4xNmZyICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNjkwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxMjJweCA0dncgOTVweCAhaW1wb3J0YW50O1xuICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOnN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1jb3B5e1xuICAgIHotaW5kZXg6IDEwICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoODhweCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLXZpc3VhbHtcbiAgICBtaW4taGVpZ2h0OiA1MDBweCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVZKDUwcHgpICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnRlc2xhLXBvcnRyYWl0e1xuICAgIHJpZ2h0OiAtMTl2dyAhaW1wb3J0YW50O1xuICAgIHRvcDogLTI1cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogbWluKDU0MHB4LCA3MnZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDU0MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogLjg4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAud2FyZGVuY2x5ZmZlLXRvd2Vye1xuICAgIGxlZnQ6IGNhbGMoMTYlICsgNzBweCkgIWltcG9ydGFudDtcbiAgICBib3R0b206IDVweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBtaW4oMzg1cHgsIDQ2dncpICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWJnLWRpYWdyYW0tMDF7XG4gICAgd2lkdGg6IG1pbigxNzBweCwgMjJ2dykgIWltcG9ydGFudDtcbiAgICByaWdodDogLTJ2dyAhaW1wb3J0YW50O1xuICAgIHRvcDogNzVweCAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IC4wOCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tYmctZGlhZ3JhbS0wMntcbiAgICB3aWR0aDogbWluKDM5MHB4LCA1MHZ3KSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDE4dncgIWltcG9ydGFudDtcbiAgICB0b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAuMTAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5zaWRlLW51bWJlcnMsXG4gIC50ZXNsYS1xdW90ZXtcbiAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qIEhlcm8gTW9iaWxlICovXG5cbi8qIEhlcm8gTW9iaWxlICovXG5cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAuaGVyb3tcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDphdXRvICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzoxMjVweCA1dncgODhweCAhaW1wb3J0YW50O1xuICAgIGdhcDowICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1jb3B5e1xuICAgIHotaW5kZXg6MTAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgaDF7XG4gICAgZm9udC1zaXplOmNsYW1wKDUycHgsMTh2dyw3NnB4KSAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0Oi45NSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmxlYWR7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46MjJweCAwIDIwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWFjdGlvbnN7XG4gICAgZGlzcGxheTpncmlkICFpbXBvcnRhbnQ7XG4gICAgZ2FwOjEycHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5idG57XG4gICAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmhlcm8tdmlzdWFse1xuICAgIG1pbi1oZWlnaHQ6NDMwcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOjI4cHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OnZpc2libGUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLWJnLWRpYWdyYW0tMDF7XG4gICAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6bWluKDQyMHB4LDExMnZ3KSAhaW1wb3J0YW50O1xuICAgIGxlZnQ6LTI1dncgIWltcG9ydGFudDtcbiAgICByaWdodDphdXRvICFpbXBvcnRhbnQ7XG4gICAgdG9wOjI2MHB4ICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOmF1dG8gIWltcG9ydGFudDtcbiAgICBvcGFjaXR5Oi4xOCAhaW1wb3J0YW50O1xuICAgIGZpbHRlcjpzZXBpYSgxKSBzYXR1cmF0ZSguNzUpIGNvbnRyYXN0KC45KSBicmlnaHRuZXNzKDEuMDgpICFpbXBvcnRhbnQ7XG4gICAgbWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkgIWltcG9ydGFudDtcbiAgICBwb2ludGVyLWV2ZW50czpub25lICFpbXBvcnRhbnQ7XG4gICAgdXNlci1zZWxlY3Q6bm9uZSAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6MSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnRlc2xhLXBvcnRyYWl0e1xuICAgIHJpZ2h0Oi0yNnZ3ICFpbXBvcnRhbnQ7XG4gICAgdG9wOjIwcHggIWltcG9ydGFudDtcbiAgICB3aWR0aDptaW4oNTEwcHgsMTE2dncpICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDo1MTBweCAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6MiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLndhcmRlbmNseWZmZS10b3dlcntcbiAgICBsZWZ0OjMwJSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTotNzJweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOm1pbigzODBweCw5NHZ3KSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDozICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1iZy1kaWFncmFtLTAyLFxuICAuc2lkZS1udW1iZXJzLFxuICAudGVzbGEtcXVvdGV7XG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuY29udGVudC1zZWN0aW9ue1xuICAgIHBhZGRpbmc6NThweCA1dncgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qIEhlcm8gTW9iaWxlIDM5MHB4ICovXG5cbkBtZWRpYShtYXgtd2lkdGg6MzkwcHgpe1xuICAuaGVyb3tcbiAgICBwYWRkaW5nLXRvcDoxNDBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgaDF7XG4gICAgZm9udC1zaXplOmNsYW1wKDQ4cHgsMTd2dyw2NHB4KSAhaW1wb3J0YW50O1xuICAgIGxldHRlci1zcGFjaW5nOjJweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmxlYWR7XG4gICAgbWFyZ2luOjE4cHggMCAxOHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYnRue1xuICAgIHBhZGRpbmc6MTRweCAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOjEwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5oZXJvLXZpc3VhbHtcbiAgICBtaW4taGVpZ2h0OjQwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDoyMnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaGVyby1iZy1kaWFncmFtLTAxe1xuICAgIHdpZHRoOm1pbigzOTBweCwxMTh2dykgIWltcG9ydGFudDtcbiAgICBsZWZ0Oi0zNXZ3ICFpbXBvcnRhbnQ7XG4gICAgdG9wOjI2MHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTouMTYgIWltcG9ydGFudDtcbiAgfVxuXG4gIC50ZXNsYS1wb3J0cmFpdHtcbiAgICByaWdodDotMzB2dyAhaW1wb3J0YW50O1xuICAgIHRvcDoxOHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6bWluKDQ4MHB4LDEyNHZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6NDgwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC53YXJkZW5jbHlmZmUtdG93ZXJ7XG4gICAgbGVmdDozMSUgIWltcG9ydGFudDtcbiAgICBib3R0b206LTQ4cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDptaW4oMzUwcHgsOTJ2dykgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qIFByZW1pdW0gU2VwaWEgU2Nyb2xsYmFyICovXG5odG1se1xuICBzY3JvbGxiYXItd2lkdGg6dGhpbjtcbiAgc2Nyb2xsYmFyLWNvbG9yOnJnYmEoNzUsMzgsMTEsLjcyKSByZ2JhKDIyNiwyMTgsMjAzLC43OCk7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXJ7XG4gIHdpZHRoOjEycHg7XG4gIGhlaWdodDoxMnB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjI2LDIxOCwyMDMsLjk1KSwgcmdiYSgyMTAsMTk4LDE4MCwuOTUpKTtcbiAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjE2KTtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE2MywxMDcsMjksLjkyKSwgcmdiYSg3NSwzOCwxMSwuODgpKTtcbiAgYm9yZGVyOjNweCBzb2xpZCByZ2JhKDIyNiwyMTgsMjAzLC45NSk7XG4gIGJvcmRlci1yYWRpdXM6OTk5cHg7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjIyKSxcbiAgICAwIDAgMThweCByZ2JhKDE2MywxMDcsMjksLjIyKTtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE4MSwxMjYsNDMsLjk4KSwgcmdiYSg3NSwzOCwxMSwuOTgpKTtcbiAgYm94LXNoYWRvdzpcbiAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMjgpLFxuICAgIDAgMCAyMnB4IHJnYmEoMTYzLDEwNywyOSwuMzIpO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntcbiAgYmFja2dyb3VuZDp2YXIoLS1wYXBlcjIpO1xufVxuXG4vKiBSQVlPUyAqL1xuXG4udG93ZXItbGlnaHRuaW5nLW92ZXJsYXl7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBsZWZ0OjE0JTtcbiAgYm90dG9tOjE0MHB4O1xuICB3aWR0aDo2MjBweCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTtcbiAgei1pbmRleDo2O1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB1c2VyLXNlbGVjdDpub25lO1xuICBtaXgtYmxlbmQtbW9kZTptdWx0aXBseTtcbiAgZmlsdGVyOnNlcGlhKDEpIHNhdHVyYXRlKC45KSBjb250cmFzdCgxLjE1KSBicmlnaHRuZXNzKDEuMSk7XG59XG5cbi5saWdodG5pbmctYXtcbiAgb3BhY2l0eTouNDU7XG4gIGFuaW1hdGlvbjpsaWdodG5pbmdQdWxzZUEgMi44cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbn1cblxuLmxpZ2h0bmluZy1ie1xuICBvcGFjaXR5OjA7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDEuMDQpIHJvdGF0ZSgyZGVnKTtcbiAgYW5pbWF0aW9uOmxpZ2h0bmluZ1B1bHNlQiAzLjRzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICBmaWx0ZXI6c2VwaWEoMSkgc2F0dXJhdGUoLjU1KSBjb250cmFzdCguODUpIGJyaWdodG5lc3MoMS40NSk7XG4gIG1peC1ibGVuZC1tb2RlOnNjcmVlbjtcbn1cblxuQGtleWZyYW1lcyBsaWdodG5pbmdQdWxzZUF7XG4gIDAlLDEwMCV7b3BhY2l0eTouMTJ9XG4gIDgle29wYWNpdHk6LjY1fVxuICAxMiV7b3BhY2l0eTouMjJ9XG4gIDE4JXtvcGFjaXR5Oi43OH1cbiAgMjQle29wYWNpdHk6LjE4fVxuICA1NSV7b3BhY2l0eTouMzV9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRuaW5nUHVsc2VCe1xuICAwJSwxMDAle29wYWNpdHk6MH1cbiAgMTUle29wYWNpdHk6LjI4fVxuICAxOCV7b3BhY2l0eTouMDR9XG4gIDIyJXtvcGFjaXR5Oi4zOH1cbiAgMjgle29wYWNpdHk6LjA2fVxuICA2MiV7b3BhY2l0eTouMTZ9XG59XG5cbi8qIGlQYWQgUHJvICovXG5AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6MTAyNHB4KXtcbiAgLnRvd2VyLWxpZ2h0bmluZy1vdmVybGF5e1xuICAgIGxlZnQ6MTglICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOjEyMHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6NDcwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBpUGFkIEFpciAqL1xuQG1lZGlhIChtaW4td2lkdGg6ODAwcHgpIGFuZCAobWF4LXdpZHRoOjkwMHB4KXtcbiAgLnRvd2VyLWxpZ2h0bmluZy1vdmVybGF5e1xuICAgIGxlZnQ6Y2FsYygxNiUgKyA0MHB4KSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTo5MHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6NDMwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBpUGFkIE1pbmkgKi9cbkBtZWRpYSAobWluLXdpZHRoOjc2OHB4KSBhbmQgKG1heC13aWR0aDo3OTlweCl7XG4gIC50b3dlci1saWdodG5pbmctb3ZlcmxheXtcbiAgICBsZWZ0OmNhbGMoMTYlICsgNzBweCkgIWltcG9ydGFudDtcbiAgICBib3R0b206NzBweCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOjQwMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogTW9iaWxlICovXG5AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXtcbiAgLnRvd2VyLWxpZ2h0bmluZy1vdmVybGF5e1xuICAgIGxlZnQ6MzAlICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOjE4cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDo0MjBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIE1vYmlsZSBTbWFsbCAqL1xuQG1lZGlhKG1heC13aWR0aDozOTBweCl7XG4gIC50b3dlci1saWdodG5pbmctb3ZlcmxheXtcbiAgICBsZWZ0OjMxJSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTozNXB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6NDIwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5cbi8qIEJPVE9OIEJBQ0sgVE8gVE9QICovXG5cbi5iYWNrLXRvLXRvcHtcbiAgcG9zaXRpb246Zml4ZWQ7XG4gIHJpZ2h0OjI4cHg7XG4gIGJvdHRvbToyOHB4O1xuICB3aWR0aDo1OHB4O1xuICBoZWlnaHQ6NThweDtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGJvcmRlcjoxcHggc29saWQgcmdiYSg3NSwzOCwxMSwuMzgpO1xuICBiYWNrZ3JvdW5kOnJnYmEoMjI2LDIxOCwyMDMsLjcyKTtcbiAgYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7XG4gIGNvbG9yOnZhcigtLWJyb3duKTtcbiAgZm9udC1mYW1pbHk6Q2luemVsLHNlcmlmO1xuICBmb250LXNpemU6MjZweDtcbiAgbGluZS1oZWlnaHQ6MTtcbiAgY3Vyc29yOnBvaW50ZXI7XG4gIHotaW5kZXg6OTA7XG4gIGJveC1zaGFkb3c6MCAxOHB4IDQ1cHggcmdiYSg3NSwzOCwxMSwuMTgpO1xuICBvcGFjaXR5OjA7XG4gIHZpc2liaWxpdHk6aGlkZGVuO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgxOHB4KTtcbiAgdHJhbnNpdGlvbjouMzVzIGVhc2U7XG59XG5cbi5iYWNrLXRvLXRvcDo6YmVmb3Jle1xuICBjb250ZW50OlwiXCI7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICBpbnNldDotOHB4O1xuICBib3JkZXItcmFkaXVzOjUwJTtcbiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDE2MywxMDcsMjksLjI1KTtcbiAgYW5pbWF0aW9uOnRlc2xhUmluZyAyLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLmJhY2stdG8tdG9wLnNob3d7XG4gIG9wYWNpdHk6MTtcbiAgdmlzaWJpbGl0eTp2aXNpYmxlO1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcbn1cblxuLmJhY2stdG8tdG9wOmhvdmVye1xuICBiYWNrZ3JvdW5kOnZhcigtLWJyb3duKTtcbiAgY29sb3I6I2ZmZjtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCk7XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAuYmFjay10by10b3B7XG4gICAgcmlnaHQ6MThweDtcbiAgICBib3R0b206MThweDtcbiAgICB3aWR0aDo1MnB4O1xuICAgIGhlaWdodDo1MnB4O1xuICAgIGZvbnQtc2l6ZToyM3B4O1xuICB9XG59XG5cbi8qIEFMSU5FQUNJT04gVEVYVE9TIEZPT1RFUiAqL1xuXG5AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXtcbiAgLnNpdGUtZm9vdGVye1xuICAgIHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OmNlbnRlciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnNpdGUtZm9vdGVyICp7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtcbiAgfVxufVxuXG5cblxuLyogTEVHQUNZIFNFQ1RJT04gKi9cblxuI2xlZ2FjeS5jb250ZW50LXNlY3Rpb257XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxNTBweCAxLjE1ZnIgMi4yZnI7XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgcGFkZGluZzo3MnB4IDV2dztcbiAgb3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LXNpZGV7XG4gIHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIGlzb2xhdGlvbjppc29sYXRlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OnZpc2libGUgIWltcG9ydGFudDtcbiAgZGlzcGxheTpmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OmNlbnRlcjtcbiAgZ2FwOjE4cHg7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1zaWRlIC5zZWN0aW9uLW51bWJlcntcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIHotaW5kZXg6NDtcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1hcnRpZmFjdHtcbiAgcG9zaXRpb246cmVsYXRpdmUgIWltcG9ydGFudDtcbiAgei1pbmRleDo1ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOjMwMHB4ICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6NHB4O1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNHB4KTtcbiAgb3BhY2l0eTouOTY7XG4gIGZpbHRlcjpzZXBpYSguMTgpIGNvbnRyYXN0KDEuMDgpO1xuICBwb2ludGVyLWV2ZW50czpub25lO1xuICB1c2VyLXNlbGVjdDpub25lO1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktc2lkZTo6YmVmb3Jle1xuICBjb250ZW50OlwiXCIgIWltcG9ydGFudDtcbiAgcG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDo1MCUgIWltcG9ydGFudDtcbiAgdG9wOmNhbGMoNjMlIC0gNjBweCkgIWltcG9ydGFudDtcbiAgd2lkdGg6MTI1cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OjEyNXB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czo1MCUgIWltcG9ydGFudDtcbiAgei1pbmRleDo4ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLFxuICAgIHJnYmEoMjU1LDI0OCwyMDUsLjg4KSAwJSxcbiAgICByZ2JhKDI1NSwyMjQsMTM1LC41NSkgMTglLFxuICAgIHJnYmEoMjE4LDE1MSw0OCwuMjgpIDQyJSxcbiAgICByZ2JhKDE2MywxMDcsMjksLjE0KSA2NCUsXG4gICAgdHJhbnNwYXJlbnQgODIlXG4gICkgIWltcG9ydGFudDtcbiAgZmlsdGVyOmJsdXIoMTJweCkgIWltcG9ydGFudDtcbiAgbWl4LWJsZW5kLW1vZGU6c2NyZWVuICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbjpsZWdhY3lCdWxiTGlnaHQgMi44cyBpbmZpbml0ZSBlYXNlLWluLW91dCAhaW1wb3J0YW50O1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktc2lkZTo6YWZ0ZXJ7XG4gIGNvbnRlbnQ6XCJcIiAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OjUwJSAhaW1wb3J0YW50O1xuICB0b3A6Y2FsYyg2MyUgLSA2MHB4KSAhaW1wb3J0YW50O1xuICB3aWR0aDo0MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDo0MHB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czo1MCUgIWltcG9ydGFudDtcbiAgei1pbmRleDo5ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLFxuICAgIHJnYmEoMjU1LDI1NSwyMzUsLjk1KSAwJSxcbiAgICByZ2JhKDI1NSwyMzIsMTUwLC43MikgMzYlLFxuICAgIHJnYmEoMjE4LDE1MSw0OCwuMjYpIDY0JSxcbiAgICB0cmFuc3BhcmVudCA4NCVcbiAgKSAhaW1wb3J0YW50O1xuICBmaWx0ZXI6Ymx1cig1cHgpICFpbXBvcnRhbnQ7XG4gIG1peC1ibGVuZC1tb2RlOnNjcmVlbiAhaW1wb3J0YW50O1xuICBhbmltYXRpb246bGVnYWN5QnVsYlNwYXJrIDEuOXMgaW5maW5pdGUgc3RlcHMoMSkgIWltcG9ydGFudDtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LWludHJve1xuICBtYXgtd2lkdGg6NTYwcHg7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1pbnRybyBoMntcbiAgbWF4LXdpZHRoOjU2MHB4O1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktaW50cm8gcHtcbiAgbWF4LXdpZHRoOjQzMHB4O1xuICBtYXJnaW46MjRweCAwIDI4cHg7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJkLWdyaWR7XG4gIGRpc3BsYXk6Z3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLCAxZnIpO1xuICBhbGlnbi1zZWxmOnN0cmV0Y2g7XG4gIGJvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJke1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgbWluLWhlaWdodDo0MDBweDtcbiAgcGFkZGluZzoyMnB4IDMwcHggMzRweDtcbiAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG4gIGRpc3BsYXk6ZmxleDtcbiAgZmxleC1kaXJlY3Rpb246Y29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtcbiAgb3ZlcmZsb3c6aGlkZGVuO1xuICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2U7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJkOjpiZWZvcmV7XG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIHRvcDowO1xuICByaWdodDowO1xuICBib3R0b206MDtcbiAgbGVmdDotMnB4O1xuICB6LWluZGV4OjA7XG4gIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMTYpO1xuICBvcGFjaXR5OjA7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmU7XG4gIHRyYW5zaXRpb246b3BhY2l0eSAuMzVzIGVhc2U7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJkOmhvdmVye1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNnB4KTtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LWNhcmQ6aG92ZXI6OmJlZm9yZXtcbiAgb3BhY2l0eToxO1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZSxcbiNsZWdhY3kgLmxlZ2FjeS1jYXJkLWNvbnRlbnQsXG4jbGVnYWN5IC5sZWdhY3ktY2FyZCBoMyxcbiNsZWdhY3kgLmxlZ2FjeS1jYXJkIHB7XG4gIHBvc2l0aW9uOnJlbGF0aXZlO1xuICB6LWluZGV4OjE7XG59XG5cbiNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdle1xuICBoZWlnaHQ6MjMwcHg7XG4gIHdpZHRoOjEwMCU7XG4gIGRpc3BsYXk6ZmxleDtcbiAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xuICBtYXJnaW4tYm90dG9tOjE4cHg7XG4gIHBhZGRpbmctaW5saW5lOjEwcHg7XG4gIGJveC1zaXppbmc6Ym9yZGVyLWJveDtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LWNhcmQtaW1hZ2UgaW1ne1xuICB3aWR0aDoxMDAlO1xuICBtYXgtd2lkdGg6MzUwcHg7XG4gIGhlaWdodDoxMDAlO1xuICBvYmplY3QtZml0OmNvbnRhaW47XG4gIG9wYWNpdHk6Ljk0O1xuICBmaWx0ZXI6c2VwaWEoLjI1KSBjb250cmFzdCgxLjA4KTtcbiAgdHJhbnNmb3JtOnNjYWxlKDEuMDQpO1xuICB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIGVhc2UsIG9wYWNpdHkgLjM1cyBlYXNlO1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktY2FyZDpob3ZlciAubGVnYWN5LWNhcmQtaW1hZ2UgaW1ne1xuICB0cmFuc2Zvcm06c2NhbGUoMS4wOSk7XG4gIG9wYWNpdHk6MTtcbn1cblxuI2xlZ2FjeSAubGVnYWN5LWNhcmQgaDN7XG4gIGZvbnQtZmFtaWx5Ok1vbnRzZXJyYXQsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZToxNHB4O1xuICBmb250LXdlaWdodDo2MDA7XG4gIGxpbmUtaGVpZ2h0OjEuMzU7XG4gIGxldHRlci1zcGFjaW5nOjNweDtcbiAgY29sb3I6dmFyKC0taW5rKTtcbiAgbWFyZ2luLWJvdHRvbToxOHB4O1xufVxuXG4jbGVnYWN5IC5sZWdhY3ktY2FyZCBwe1xuICBmb250LXNpemU6MTVweDtcbiAgbGluZS1oZWlnaHQ6MS43NTtcbiAgY29sb3I6dmFyKC0tbXV0ZWQpO1xuICBtYXgtd2lkdGg6MjUwcHg7XG59XG5cbkBrZXlmcmFtZXMgbGVnYWN5QnVsYkxpZ2h0e1xuICAwJSwxMDAle1xuICAgIG9wYWNpdHk6LjMwO1xuICAgIHdpZHRoOjgwcHg7XG4gICAgaGVpZ2h0OjgwcHg7XG4gICAgZmlsdGVyOmJsdXIoMTBweCk7XG4gIH1cblxuICAzOCV7XG4gICAgb3BhY2l0eTouNzI7XG4gICAgd2lkdGg6MTM1cHg7XG4gICAgaGVpZ2h0OjEzNXB4O1xuICAgIGZpbHRlcjpibHVyKDE0cHgpO1xuICB9XG5cbiAgNTgle1xuICAgIG9wYWNpdHk6LjQyO1xuICAgIHdpZHRoOjE3MHB4O1xuICAgIGhlaWdodDoxNzBweDtcbiAgICBmaWx0ZXI6Ymx1cigxOHB4KTtcbiAgfVxuXG4gIDc4JXtcbiAgICBvcGFjaXR5Oi42MjtcbiAgICB3aWR0aDoxMDVweDtcbiAgICBoZWlnaHQ6MTA1cHg7XG4gICAgZmlsdGVyOmJsdXIoMTJweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBsZWdhY3lCdWxiU3Bhcmt7XG4gIDAlLDEwMCV7XG4gICAgb3BhY2l0eTouMjI7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguNzgpO1xuICB9XG5cbiAgMTgle1xuICAgIG9wYWNpdHk6Ljc4O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoLjk2KTtcbiAgfVxuXG4gIDIyJXtcbiAgICBvcGFjaXR5Oi4yODtcbiAgfVxuXG4gIDQ1JXtcbiAgICBvcGFjaXR5Oi44ODtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuMDgpO1xuICB9XG5cbiAgNDkle1xuICAgIG9wYWNpdHk6LjI0O1xuICB9XG5cbiAgNzYle1xuICAgIG9wYWNpdHk6LjY0O1xuICB9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6MTE4MHB4KXtcbiAgI2xlZ2FjeS5jb250ZW50LXNlY3Rpb257XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjE0MHB4IDFmcjtcbiAgICBnYXA6NDZweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWdyaWR7XG4gICAgZ3JpZC1jb2x1bW46MSAvIC0xO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWFydGlmYWN0e1xuICAgIHdpZHRoOjI5MHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZTo6YmVmb3JlLFxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZTo6YWZ0ZXJ7XG4gICAgdG9wOmNhbGMoNjMlIC0gNDVweCkgIWltcG9ydGFudDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJke1xuICAgIG1pbi1oZWlnaHQ6NDIwcHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZXtcbiAgICBoZWlnaHQ6MjYwcHg7XG4gICAgcGFkZGluZy1pbmxpbmU6MTBweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICBtYXgtd2lkdGg6NDMwcHg7XG4gICAgdHJhbnNmb3JtOnNjYWxlKDEuMDgpO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQ6aG92ZXIgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICB0cmFuc2Zvcm06c2NhbGUoMS4xMyk7XG4gIH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDo5ODBweCl7XG4gICNsZWdhY3kuY29udGVudC1zZWN0aW9ue1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczoxMjBweCAxZnI7XG4gICAgZ2FwOjM0cHg7XG4gICAgcGFkZGluZzo2NHB4IDV2dztcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1zaWRle1xuICAgIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1hcnRpZmFjdHtcbiAgICB3aWR0aDoyNzBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LXNpZGU6OmJlZm9yZSxcbiAgI2xlZ2FjeSAubGVnYWN5LXNpZGU6OmFmdGVye1xuICAgIHRvcDpjYWxjKDY0JSAtIDQ1cHgpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZHtcbiAgICBtaW4taGVpZ2h0OjQyMHB4O1xuICAgIHBhZGRpbmc6MjJweCAzMHB4IDMycHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZXtcbiAgICBoZWlnaHQ6MjYwcHg7XG4gICAgcGFkZGluZy1pbmxpbmU6MTBweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICBtYXgtd2lkdGg6NDIwcHg7XG4gICAgdHJhbnNmb3JtOnNjYWxlKDEuMDgpO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQ6aG92ZXIgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICB0cmFuc2Zvcm06c2NhbGUoMS4xMyk7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZCBoM3tcbiAgICBmb250LXNpemU6MTNweDtcbiAgICBsZXR0ZXItc3BhY2luZzoyLjVweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkIHB7XG4gICAgZm9udC1zaXplOjE0cHg7XG4gIH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDo3NjBweCl7XG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWdyaWR7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtcbiAgICBib3JkZXItbGVmdDpub25lO1xuICAgIGJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoNzUsMzgsMTEsLjE4KTtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJke1xuICAgIG1pbi1oZWlnaHQ6YXV0bztcbiAgICBib3JkZXItcmlnaHQ6bm9uZTtcbiAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDc1LDM4LDExLC4xOCk7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6Y2VudGVyO1xuICAgIHBhZGRpbmc6MzRweCAzMHB4IDM4cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZDo6YmVmb3Jle1xuICAgIGxlZnQ6MDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdle1xuICAgIGhlaWdodDozMjBweDtcbiAgICBwYWRkaW5nLWlubGluZToxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206MTRweDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICBtYXgtd2lkdGg6NTIwcHg7XG4gICAgdHJhbnNmb3JtOnNjYWxlKDEuMTApO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQ6aG92ZXIgLmxlZ2FjeS1jYXJkLWltYWdlIGltZ3tcbiAgICB0cmFuc2Zvcm06c2NhbGUoMS4xNSk7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZCBwe1xuICAgIG1heC13aWR0aDozNjBweDtcbiAgfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXtcbiAgI2xlZ2FjeS5jb250ZW50LXNlY3Rpb257XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBnYXA6MjhweDtcbiAgICBwYWRkaW5nOjU4cHggNXZ3ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZXtcbiAgICBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgZ2FwOjE0cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZSAuc2VjdGlvbi1udW1iZXJ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktYXJ0aWZhY3R7XG4gICAgd2lkdGg6MjQwcHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06bm9uZTtcbiAgICBtYXJnaW4tdG9wOjA7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktc2lkZTo6YmVmb3Jle1xuICAgIHRvcDpjYWxjKDY0JSAtIDQ1cHgpICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6MTE1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6MTE1cHggIWltcG9ydGFudDtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1zaWRlOjphZnRlcntcbiAgICB0b3A6Y2FsYyg2NCUgLSA0NXB4KSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOjM4cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6MzhweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWludHJve1xuICAgIG1heC13aWR0aDoxMDAlO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWludHJvIGgyLFxuICAjbGVnYWN5IC5sZWdhY3ktaW50cm8gcHtcbiAgICBtYXgtd2lkdGg6MTAwJTtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1pbnRybyAuYnRue1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJke1xuICAgIHBhZGRpbmc6MzRweCAzMHB4IDM4cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZXtcbiAgICBoZWlnaHQ6MzAwcHg7XG4gICAgcGFkZGluZy1pbmxpbmU6MTBweDtcbiAgICBtYXJnaW4tYm90dG9tOjE0cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZC1pbWFnZSBpbWd7XG4gICAgbWF4LXdpZHRoOjUwMHB4O1xuICAgIHRyYW5zZm9ybTpzY2FsZSgxLjEyKTtcbiAgfVxuXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkOmhvdmVyIC5sZWdhY3ktY2FyZC1pbWFnZSBpbWd7XG4gICAgdHJhbnNmb3JtOnNjYWxlKDEuMTcpO1xuICB9XG5cbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQgaDN7XG4gICAgZm9udC1zaXplOjEzcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6Mi40cHg7XG4gIH1cblxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZCBwe1xuICAgIGZvbnQtc2l6ZToxNC41cHg7XG4gICAgbGluZS1oZWlnaHQ6MS43NTtcbiAgfVxufVxuXG5cbi8qIEFOQ0hPUiBTQ1JPTEwgT0ZGU0VUICovXG5cbmh0bWx7XG4gIHNjcm9sbC1iZWhhdmlvcjpzbW9vdGg7XG4gIHNjcm9sbC1wYWRkaW5nLXRvcDo5MHB4O1xufVxuXG5zZWN0aW9uW2lkXSxcbltpZF0uY29udGVudC1zZWN0aW9ue1xuICBzY3JvbGwtbWFyZ2luLXRvcDo5MHB4O1xufVxuXG5AbWVkaWEobWF4LXdpZHRoOjk4MHB4KXtcbiAgaHRtbHtcbiAgICBzY3JvbGwtcGFkZGluZy10b3A6ODVweDtcbiAgfVxuXG4gIHNlY3Rpb25baWRdLFxuICBbaWRdLmNvbnRlbnQtc2VjdGlvbntcbiAgICBzY3JvbGwtbWFyZ2luLXRvcDo4NXB4O1xuICB9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICBodG1se1xuICAgIHNjcm9sbC1wYWRkaW5nLXRvcDo3NXB4O1xuICB9XG5cbiAgc2VjdGlvbltpZF0sXG4gIFtpZF0uY29udGVudC1zZWN0aW9ue1xuICAgIHNjcm9sbC1tYXJnaW4tdG9wOjc1cHg7XG4gIH1cbn1cblxuXG4vKiBGb290ZXIgKi9cblxuLnNpdGUtZm9vdGVye1xuICB3aWR0aDoxMDAlO1xuICBwYWRkaW5nOjI0cHggNXZ3O1xuICBib3JkZXItdG9wOjBweDtcbiAgZGlzcGxheTpncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDJmciAxZnI7XG4gIGFsaWduLWl0ZW1zOmNlbnRlcjtcbiAgZ2FwOjI0cHg7XG4gIGJhY2tncm91bmQ6cmdiYSgyMjYsMjE4LDIwMywuNzIpO1xufVxuXG4uZm9vdGVyLWJyYW5kLFxuLmZvb3Rlci1jb3B5e1xuICBmb250LWZhbWlseTpNb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6MTNweDtcbiAgZm9udC13ZWlnaHQ6NjAwO1xuICBsZXR0ZXItc3BhY2luZzo0cHg7XG4gIGNvbG9yOnZhcigtLWluayk7XG59XG5cbi5mb290ZXItYnJhbmR7XG4gIHRleHQtYWxpZ246bGVmdDtcbn1cblxuLmZvb3Rlci1jb3B5e1xuICB0ZXh0LWFsaWduOnJpZ2h0O1xufVxuXG4uZm9vdGVyLXF1b3Rle1xuICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgZm9udC1zaXplOjE2LjVweDtcbiAgZm9udC13ZWlnaHQ6NDAwO1xuICBsaW5lLWhlaWdodDoxLjY7XG4gIGxldHRlci1zcGFjaW5nOjNweDtcbiAgY29sb3I6dmFyKC0tbXV0ZWQpO1xufVxuXG4uZm9vdGVyLXF1b3RlIHNwYW57XG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDo4cHg7XG4gIGZvbnQtc2l6ZToxNi41cHg7XG4gIGZvbnQtd2VpZ2h0OjQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6M3B4O1xufVxuXG4vKiBUYWJsZXQgKi9cbkBtZWRpYShtYXgtd2lkdGg6OTgwcHgpe1xuICAuc2l0ZS1mb290ZXJ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBnYXA6MTRweDtcbiAgICBwYWRkaW5nOjI4cHggNXZ3O1xuICB9XG5cbiAgLmZvb3Rlci1icmFuZCxcbiAgLmZvb3Rlci1jb3B5e1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICB9XG5cbiAgLmZvb3Rlci1xdW90ZXtcbiAgICBtYXgtd2lkdGg6NzIwcHg7XG4gICAgbWFyZ2luOjAgYXV0bztcbiAgfVxufVxuXG4vKiBNb2JpbGUgKi9cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAuc2l0ZS1mb290ZXJ7XG4gICAgcGFkZGluZzozMHB4IDZ2dztcbiAgICBnYXA6MTZweDtcbiAgfVxuXG4gIC5mb290ZXItYnJhbmQsXG4gIC5mb290ZXItY29weXtcbiAgICBmb250LXNpemU6MTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzozcHg7XG4gIH1cblxuICAuZm9vdGVyLXF1b3RlLFxuICAuZm9vdGVyLXF1b3RlIHNwYW57XG4gICAgZm9udC1zaXplOjE1cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6MS44cHg7XG4gIH1cblxuICAuZm9vdGVyLXF1b3RlIHNwYW57XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBtYXJnaW4tbGVmdDowO1xuICAgIG1hcmdpbi10b3A6NnB4O1xuICB9XG59XG5cbi8qIE1vYmlsZSBvbmx5IC0gY2VudGVyIHNlY3Rpb24gbnVtYmVyIGFuZCBjb250ZW50ICovXG5cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAuY29udGVudC1zZWN0aW9ue1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICB9XG5cbiAgLnNlY3Rpb24tbnVtYmVye1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxuXG4gIC5zZWN0aW9uLWludHJve1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxuXG4gIC5zZWN0aW9uLWludHJvIGgyLFxuICAuc2VjdGlvbi1pbnRybyBwe1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OmF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OmF1dG87XG4gIH1cblxuICAuc2VjdGlvbi1pbnRybyAuYnRue1xuICAgIG1hcmdpbi1pbmxpbmU6YXV0bztcbiAgfVxufVxuXG5cbi8qIElubm92YXRpb24gZmVhdHVyZXMgLSBhbHdheXMgbGVmdCBhbGlnbmVkICovXG5cbiNpbm5vdmF0aW9uIC5mZWF0dXJlLWxpc3R7XG4gIHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50O1xufVxuXG4jaW5ub3ZhdGlvbiAuZmVhdHVyZS1pdGVte1xuICB0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6ZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4jaW5ub3ZhdGlvbiAuZmVhdHVyZS1pdGVtID4gZGl2Omxhc3QtY2hpbGR7XG4gIHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50O1xufVxuXG4jaW5ub3ZhdGlvbiAuZmVhdHVyZS1pdGVtIGgzLFxuI2lubm92YXRpb24gLmZlYXR1cmUtaXRlbSBwe1xuICB0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6MCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6MCAhaW1wb3J0YW50O1xufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRVhQRVJJRU5DRSBTRUNUSU9OXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuI2V4cGVyaWVuY2UsXG4jZXhwZXJpZW5jZSAqe1xuICBib3gtc2l6aW5nOmJvcmRlci1ib3ggIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UuY29udGVudC1zZWN0aW9ue1xuICBkaXNwbGF5OmdyaWQgIWltcG9ydGFudDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjE1MHB4IG1pbm1heCgwLCAxLjM1ZnIpIG1pbm1heCg0MjBweCwgMWZyKSAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczpjZW50ZXIgIWltcG9ydGFudDtcbiAgY29sdW1uLWdhcDoyMHB4ICFpbXBvcnRhbnQ7XG4gIHJvdy1nYXA6MjhweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOjcycHggNXZ3ICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6NTAwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UgLnNlY3Rpb24tbnVtYmVye1xuICBqdXN0aWZ5LXNlbGY6c3RhcnQgIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjpjZW50ZXIgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjowICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTpub25lICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDowICFpbXBvcnRhbnQ7XG59XG5cbiNleHBlcmllbmNlIC5zZWN0aW9uLWludHJve1xuICBqdXN0aWZ5LXNlbGY6c3RhcnQgIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjpjZW50ZXIgIWltcG9ydGFudDtcbiAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6ODgwcHggIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOjAgIWltcG9ydGFudDtcbiAgbWFyZ2luOjAgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXdyYXA6YnJlYWstd29yZCAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyAuZXllYnJvd3tcbiAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOjE0cHggIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gaDJ7XG4gIHdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOjg4MHB4ICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDowICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy13cmFwOm5vcm1hbCAhaW1wb3J0YW50O1xuICB3b3JkLWJyZWFrOm5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBwe1xuICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDo2NDBweCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6MCAhaW1wb3J0YW50O1xuICBtYXJnaW46MjZweCAwIDAgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXdyYXA6YnJlYWstd29yZCAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuZXhwZXJpZW5jZS12aXN1YWx7XG4gIC0tY29pbC14OjQxLjYlO1xuICAtLWNvaWwteToxMy41JTtcblxuICBwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LXNlbGY6ZW5kICFpbXBvcnRhbnQ7XG4gIGFsaWduLXNlbGY6Y2VudGVyICFpbXBvcnRhbnQ7XG4gIHdpZHRoOm1pbig5NzBweCwgNjB2dykgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOjAgIWltcG9ydGFudDtcbiAgYXNwZWN0LXJhdGlvOjEuNDUgLyAxICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjowICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwcHgpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjpub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7XG4gIGlzb2xhdGlvbjppc29sYXRlICFpbXBvcnRhbnQ7XG59XG5cbiNleHBlcmllbmNlIC5leHBlcmllbmNlLXZpc3VhbDo6YmVmb3JlLFxuI2V4cGVyaWVuY2UgLmV4cGVyaWVuY2UtdmlzdWFsOjphZnRlcntcbiAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbiNleHBlcmllbmNlIC5leHBlcmllbmNlLXZpc3VhbCBpbWd7XG4gIHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6MyAhaW1wb3J0YW50O1xuICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDoxMDAlICFpbXBvcnRhbnQ7XG4gIG9iamVjdC1maXQ6Y29udGFpbiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6Ljg4ICFpbXBvcnRhbnQ7XG4gIGZpbHRlcjpzZXBpYSguMTgpIGNvbnRyYXN0KDEuMDgpICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudDtcbiAgdXNlci1zZWxlY3Q6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuY29pbC1nbG93e1xuICBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OnZhcigtLWNvaWwteCkgIWltcG9ydGFudDtcbiAgdG9wOnZhcigtLWNvaWwteSkgIWltcG9ydGFudDtcbiAgd2lkdGg6MTQlICFpbXBvcnRhbnQ7XG4gIGFzcGVjdC1yYXRpbzoxIC8gMSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6NTAlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6MiAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czpub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSxcbiAgICByZ2JhKDI1NSwyNTUsMjU1LDEpIDAlLFxuICAgIHJnYmEoMjU1LDI0OCwyMjAsLjc4KSAxOCUsXG4gICAgcmdiYSgyNTUsMjI0LDE0NSwuNDIpIDQyJSxcbiAgICByZ2JhKDE4NCwxMTksMjcsLjE2KSA2NCUsXG4gICAgdHJhbnNwYXJlbnQgODIlXG4gICkgIWltcG9ydGFudDtcbiAgZmlsdGVyOmJsdXIoMTBweCkgIWltcG9ydGFudDtcbiAgbWl4LWJsZW5kLW1vZGU6c2NyZWVuICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbjpleHBlcmllbmNlQ29pbEdsb3cgMi42cyBpbmZpbml0ZSBlYXNlLWluLW91dCAhaW1wb3J0YW50O1xufVxuXG4jZXhwZXJpZW5jZSAuY29pbC1nbG93OjphZnRlcntcbiAgY29udGVudDpcIlwiO1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgbGVmdDo1MCU7XG4gIHRvcDo1MCU7XG4gIHdpZHRoOjI4JTtcbiAgaGVpZ2h0OjI4JTtcbiAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgYm9yZGVyLXJhZGl1czo1MCU7XG4gIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuOTUpO1xuICBmaWx0ZXI6Ymx1cigycHgpO1xuICBhbmltYXRpb246ZXhwZXJpZW5jZVNwYXJrQ29yZSAxLjM1cyBpbmZpbml0ZSBzdGVwcygxLGVuZCk7XG59XG5cbiNleHBlcmllbmNlIC5jb2lsLXJheXtcbiAgcG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDtcbiAgbGVmdDp2YXIoLS1jb2lsLXgpICFpbXBvcnRhbnQ7XG4gIHRvcDp2YXIoLS1jb2lsLXkpICFpbXBvcnRhbnQ7XG4gIHdpZHRoOjE4JSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6MnB4ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46bGVmdCBjZW50ZXIgIWltcG9ydGFudDtcbiAgei1pbmRleDo0ICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOm5vbmUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTowICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLFxuICAgIHJnYmEoMjU1LDI1NSwyNTUsMSksXG4gICAgcmdiYSgyNTUsMjQ4LDIxNSwuOTUpLFxuICAgIHJnYmEoMjU1LDIyMCwxMzAsLjQ1KSxcbiAgICB0cmFuc3BhcmVudFxuICApICFpbXBvcnRhbnQ7XG4gIGZpbHRlcjpkcm9wLXNoYWRvdygwIDAgOHB4IHJnYmEoMjU1LDI1NSwyNTUsLjg1KSkgZHJvcC1zaGFkb3coMCAwIDEycHggcmdiYSgyNTUsMjI1LDE1MCwuNDUpKSAhaW1wb3J0YW50O1xuICBjbGlwLXBhdGg6cG9seWdvbihcbiAgICAwIDQ2JSwgOCUgMTglLCAxNiUgNTglLCAyNyUgMjQlLFxuICAgIDM5JSA3MiUsIDUyJSAzMCUsIDY2JSA2NiUsIDgyJSAzNiUsXG4gICAgMTAwJSA1MCUsIDEwMCUgNjIlLCA4MiUgNzglLCA2NiUgNDglLFxuICAgIDUyJSA4OCUsIDM5JSA0MiUsIDI3JSA3NiUsIDE2JSAzNiUsXG4gICAgOCUgNzIlLCAwIDU4JVxuICApICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbjpleHBlcmllbmNlUmF5QnVyc3QgMy42cyBpbmZpbml0ZSBzdGVwcygxLGVuZCkgIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UgLnJheS0xe1xuICB0cmFuc2Zvcm06cm90YXRlKC00NmRlZykgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLWRlbGF5Oi4xNXMgIWltcG9ydGFudDtcbn1cblxuI2V4cGVyaWVuY2UgLnJheS0ye1xuICB3aWR0aDoxNiUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOnJvdGF0ZSgxNmRlZykgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLWRlbGF5OjEuMTVzICFpbXBvcnRhbnQ7XG59XG5cbiNleHBlcmllbmNlIC5yYXktM3tcbiAgd2lkdGg6MTQlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTpyb3RhdGUoLTk2ZGVnKSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tZGVsYXk6Mi4wNXMgIWltcG9ydGFudDtcbn1cblxuQGtleWZyYW1lcyBleHBlcmllbmNlQ29pbEdsb3d7XG4gIDAlLDEwMCV7XG4gICAgb3BhY2l0eTouMjY7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguNzIpO1xuICAgIGZpbHRlcjpibHVyKDlweCk7XG4gIH1cblxuICAzOCV7XG4gICAgb3BhY2l0eToxO1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4yOCk7XG4gICAgZmlsdGVyOmJsdXIoMTVweCk7XG4gIH1cblxuICA2MiV7XG4gICAgb3BhY2l0eTouNDg7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguOTIpO1xuICAgIGZpbHRlcjpibHVyKDExcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZXhwZXJpZW5jZVNwYXJrQ29yZXtcbiAgMCUsIDU4JSwgMTAwJXtcbiAgICBvcGFjaXR5Oi4yNTtcbiAgICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKC42NSk7XG4gIH1cblxuICA2MCV7XG4gICAgb3BhY2l0eToxO1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4zNSk7XG4gIH1cblxuICA2MyV7XG4gICAgb3BhY2l0eTouMzU7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSguODUpO1xuICB9XG5cbiAgNjYle1xuICAgIG9wYWNpdHk6Ljk1O1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4xNSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBleHBlcmllbmNlUmF5QnVyc3R7XG4gIDAlLCA2NCUsIDEwMCV7XG4gICAgb3BhY2l0eTowO1xuICB9XG5cbiAgNjYle1xuICAgIG9wYWNpdHk6Ljk1O1xuICB9XG5cbiAgNjgle1xuICAgIG9wYWNpdHk6LjE4O1xuICB9XG5cbiAgNzAle1xuICAgIG9wYWNpdHk6MTtcbiAgfVxuXG4gIDcyJXtcbiAgICBvcGFjaXR5Oi4yNTtcbiAgfVxuXG4gIDc0JXtcbiAgICBvcGFjaXR5Oi44NTtcbiAgfVxuXG4gIDc3JXtcbiAgICBvcGFjaXR5OjA7XG4gIH1cbn1cblxuLyogVGFibGV0ICovXG5AbWVkaWEobWF4LXdpZHRoOjExODBweCl7XG4gICNleHBlcmllbmNlLmNvbnRlbnQtc2VjdGlvbntcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTUwcHggbWlubWF4KDAsIDFmcikgIWltcG9ydGFudDtcbiAgICBjb2x1bW4tZ2FwOjIwcHggIWltcG9ydGFudDtcbiAgICByb3ctZ2FwOjM0cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOjcycHggY2xhbXAoMjBweCwgNXZ3LCA1NnB4KSAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6YXV0byAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24tbnVtYmVye1xuICAgIGp1c3RpZnktc2VsZjpzdGFydCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246bGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm97XG4gICAgbWF4LXdpZHRoOjg4MHB4ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjpsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBoMixcbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gcHtcbiAgICB0ZXh0LWFsaWduOmxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5leHBlcmllbmNlLXZpc3VhbHtcbiAgICBncmlkLWNvbHVtbjoxIC8gLTEgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LXNlbGY6Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6bWluKDg3MHB4LCA5NHZ3KSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOm5vbmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBNb2JpbGUgKi9cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICAjZXhwZXJpZW5jZS5jb250ZW50LXNlY3Rpb257XG4gICAgZGlzcGxheTpncmlkICFpbXBvcnRhbnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLCAxZnIpICFpbXBvcnRhbnQ7XG4gICAgZ2FwOjMycHggIWltcG9ydGFudDtcbiAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOjcycHggMjJweCA4MnB4ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLW51bWJlcntcbiAgICBqdXN0aWZ5LXNlbGY6Y2VudGVyICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtcbiAgICBtYXJnaW46MCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOjAgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLWludHJve1xuICAgIGp1c3RpZnktc2VsZjpjZW50ZXIgIWltcG9ydGFudDtcbiAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6MCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctaW5saW5lOjAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46MCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXIgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy13cmFwOmFueXdoZXJlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyAuZXllYnJvd3tcbiAgICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206MTZweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gaDIsXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLWludHJvIHB7XG4gICAgd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOjAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDphdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OmF1dG8gIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93LXdyYXA6YW55d2hlcmUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5zZWN0aW9uLWludHJvIHB7XG4gICAgbWFyZ2luLXRvcDoyNHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAjZXhwZXJpZW5jZSAuZXhwZXJpZW5jZS12aXN1YWx7XG4gICAgLS1jb2lsLXg6NDEuNiU7XG4gICAgLS1jb2lsLXk6MTMuNSU7XG5cbiAgICBncmlkLWNvbHVtbjphdXRvICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1zZWxmOmNlbnRlciAhaW1wb3J0YW50O1xuICAgIHdpZHRoOm1pbig2MTBweCwgMTAwJSkgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDowICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOjRweCBhdXRvIDAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OmhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLmV4cGVyaWVuY2UtdmlzdWFsIGltZ3tcbiAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6MTAwJSAhaW1wb3J0YW50O1xuICAgIG9iamVjdC1maXQ6Y29udGFpbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2V4cGVyaWVuY2UgLmNvaWwtZ2xvd3tcbiAgICB3aWR0aDoxNyUgIWltcG9ydGFudDtcbiAgfVxuXG4gICNleHBlcmllbmNlIC5jb2lsLXJheXtcbiAgICB3aWR0aDoxNSUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOjM4MHB4KXtcbiAgI2V4cGVyaWVuY2UuY29udGVudC1zZWN0aW9ue1xuICAgIHBhZGRpbmctbGVmdDoxOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDoxOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgR0xPQkFMIFRZUE9HUkFQSFkgU0NBTEUgLSBGSU5BTCBDTEVBTlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIERFU0NSSVBDSU9ORVMgUFJJTkNJUEFMRVMgKi9cbnAsXG4ubGVhZCxcbi5sZWFkIHAsXG4uc2VjdGlvbi1pbnRybyBwLFxuLmluZm8tY2FyZCBwLFxuLmZlYXR1cmUtaXRlbSBwLFxuLmxlZ2FjeS1jYXJkIHAsXG4jbGVnYWN5IC5sZWdhY3ktY2FyZCBwLFxuI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gcCxcbiNpbm5vdmF0aW9uIC5zZWN0aW9uLWludHJvIHAsXG4jcGxhdGZvcm0gLnNlY3Rpb24taW50cm8gcCxcbiNjb250YWN0IC5zZWN0aW9uLWludHJvIHB7XG4gIGZvbnQtc2l6ZToxNnB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OjEuNzUgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRFWFRPUyBQRVFVRcORT1MgU1VQRVJJT1JFUyAqL1xuLmV5ZWJyb3d7XG4gIGZvbnQtc2l6ZToxNC41cHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6MS40ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OjUwMCAhaW1wb3J0YW50O1xufVxuXG4vKiBUw41UVUxPUyBTRUNVTkRBUklPUyAvIENBUkRTICovXG5oMyxcbi5pbmZvLWNhcmQgaDMsXG4uZmVhdHVyZS1pdGVtIGgzLFxuLmxlZ2FjeS1jYXJkIGgzLFxuI2xlZ2FjeSAubGVnYWN5LWNhcmQgaDN7XG4gIGZvbnQtc2l6ZToxNS41cHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6MS4zNSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDo2MDAgIWltcG9ydGFudDtcbn1cblxuLyogUExBVEZPUk0gQ0FSRFMgKi9cbiNwbGF0Zm9ybSAucGxhdGZvcm0tZ3JpZCBoM3tcbiAgZm9udC1zaXplOjE0LjVweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDoxLjM1ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OjYwMCAhaW1wb3J0YW50O1xufVxuXG4vKiBUQUdTIC8gTEFCRUxTIFBFUVVFw5FPUyAqL1xuLnNlY3Rpb24tbnVtYmVyIHNwYW4sXG4jcGxhdGZvcm0gLnBsYXRmb3JtLXRhZ3Mgc3BhbntcbiAgZm9udC1zaXplOjEyLjVweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDoxLjQgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6NTAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJPVE9ORVMgUFJJTkNJUEFMRVMgLSBOTyBUT0NBIEJBQ0sgVE8gVE9QICovXG4uYnRuLFxuLmNvbnRhY3QtZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSxcbi5oZXJvLWFjdGlvbnMgYnV0dG9uLFxuLmhlcm8tYWN0aW9ucyBhe1xuICBmb250LXNpemU6MTIuNXB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OjEuMiAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDo2MDAgIWltcG9ydGFudDtcbn1cblxuLyogRk9STVVMQVJJT1MgKi9cbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3R7XG4gIGZvbnQtc2l6ZToxNC41cHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50O1xufVxuXG4vKiBGT09URVIgKi9cbi5mb290ZXItcXVvdGUsXG4uZm9vdGVyLXF1b3RlIHNwYW57XG4gIGZvbnQtc2l6ZToxNnB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OjEuNyAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDtcbn1cblxuLmZvb3Rlci1icmFuZCxcbi5mb290ZXItY29weXtcbiAgZm9udC1zaXplOjEzcHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OjYwMCAhaW1wb3J0YW50O1xufVxuXG4vKiBUQUJMRVQgKi9cbkBtZWRpYShtYXgtd2lkdGg6MTE4MHB4KXtcbiAgcCxcbiAgLmxlYWQsXG4gIC5sZWFkIHAsXG4gIC5zZWN0aW9uLWludHJvIHAsXG4gIC5pbmZvLWNhcmQgcCxcbiAgLmZlYXR1cmUtaXRlbSBwLFxuICAubGVnYWN5LWNhcmQgcCxcbiAgI2xlZ2FjeSAubGVnYWN5LWNhcmQgcCxcbiAgI2V4cGVyaWVuY2UgLnNlY3Rpb24taW50cm8gcCxcbiAgI2lubm92YXRpb24gLnNlY3Rpb24taW50cm8gcCxcbiAgI3BsYXRmb3JtIC5zZWN0aW9uLWludHJvIHAsXG4gICNjb250YWN0IC5zZWN0aW9uLWludHJvIHB7XG4gICAgZm9udC1zaXplOjE2cHggIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDoxLjc1ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICBoMyxcbiAgLmluZm8tY2FyZCBoMyxcbiAgLmZlYXR1cmUtaXRlbSBoMyxcbiAgLmxlZ2FjeS1jYXJkIGgzLFxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZCBoM3tcbiAgICBmb250LXNpemU6MTUuNXB4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6MS4zNSAhaW1wb3J0YW50O1xuICB9XG5cbiAgI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlkIGgze1xuICAgIGZvbnQtc2l6ZToxNC41cHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5leWVicm93e1xuICAgIGZvbnQtc2l6ZToxNC41cHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5idG4sXG4gIC5jb250YWN0LWZvcm0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0sXG4gIC5oZXJvLWFjdGlvbnMgYnV0dG9uLFxuICAuaGVyby1hY3Rpb25zIGF7XG4gICAgZm9udC1zaXplOjEyLjVweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhLFxuICBzZWxlY3R7XG4gICAgZm9udC1zaXplOjE0LjVweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZvb3Rlci1xdW90ZSxcbiAgLmZvb3Rlci1xdW90ZSBzcGFue1xuICAgIGZvbnQtc2l6ZToxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZm9vdGVyLWJyYW5kLFxuICAuZm9vdGVyLWNvcHl7XG4gICAgZm9udC1zaXplOjEzcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKiBNT0JJTEUgKi9cbkBtZWRpYShtYXgtd2lkdGg6NTYwcHgpe1xuICBwLFxuICAubGVhZCxcbiAgLmxlYWQgcCxcbiAgLnNlY3Rpb24taW50cm8gcCxcbiAgLmluZm8tY2FyZCBwLFxuICAuZmVhdHVyZS1pdGVtIHAsXG4gIC5sZWdhY3ktY2FyZCBwLFxuICAjbGVnYWN5IC5sZWdhY3ktY2FyZCBwLFxuICAjZXhwZXJpZW5jZSAuc2VjdGlvbi1pbnRybyBwLFxuICAjaW5ub3ZhdGlvbiAuc2VjdGlvbi1pbnRybyBwLFxuICAjcGxhdGZvcm0gLnNlY3Rpb24taW50cm8gcCxcbiAgI2NvbnRhY3QgLnNlY3Rpb24taW50cm8gcHtcbiAgICBmb250LXNpemU6MTZweCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OjEuNzUgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIGgzLFxuICAuaW5mby1jYXJkIGgzLFxuICAuZmVhdHVyZS1pdGVtIGgzLFxuICAubGVnYWN5LWNhcmQgaDMsXG4gICNsZWdhY3kgLmxlZ2FjeS1jYXJkIGgze1xuICAgIGZvbnQtc2l6ZToxNXB4ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6MS4zNSAhaW1wb3J0YW50O1xuICB9XG5cbiAgI3BsYXRmb3JtIC5wbGF0Zm9ybS1ncmlkIGgze1xuICAgIGZvbnQtc2l6ZToxNC41cHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5leWVicm93e1xuICAgIGZvbnQtc2l6ZToxNHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuc2VjdGlvbi1udW1iZXIgc3BhbixcbiAgI3BsYXRmb3JtIC5wbGF0Zm9ybS10YWdzIHNwYW57XG4gICAgZm9udC1zaXplOjEyLjVweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmJ0bixcbiAgLmNvbnRhY3QtZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSxcbiAgLmhlcm8tYWN0aW9ucyBidXR0b24sXG4gIC5oZXJvLWFjdGlvbnMgYXtcbiAgICBmb250LXNpemU6MTIuNXB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICBpbnB1dCxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdHtcbiAgICBmb250LXNpemU6MTQuNXB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuZm9vdGVyLXF1b3RlLFxuICAuZm9vdGVyLXF1b3RlIHNwYW57XG4gICAgZm9udC1zaXplOjE2cHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mb290ZXItYnJhbmQsXG4gIC5mb290ZXItY29weXtcbiAgICBmb250LXNpemU6MTNweCAhaW1wb3J0YW50O1xuICB9XG59Il19 */
/* --- NEW RESPONSIVE HEADER LOGIC --- */
.header-actions {
  display: flex;
  align-items: center;
  gap: 36px;
}

.nav-cta {
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 2px;
  font-weight: 500;
  transition: .35s ease;
  display: inline-flex;
  border: 1px solid var(--brown);
  padding: 14px 22px;
  color: var(--brown);
  overflow: hidden;
}
.nav-cta:hover {
  background: var(--brown);
  color: #fff;
}

/* Desktop default */
.mobile-cta { display: inline-flex !important; }
.laptop-cta { display: none !important; }

/* Laptops & Large Tablets (e.g. 768px - 1024px) */
@media(min-width: 768px) and (max-width: 1440px) {
  .laptop-cta { display: inline-flex !important; }
  .mobile-cta { display: inline-flex !important; } /* Visible inside the mobile menu when opened */
}

/* Mobile (under 768px) */
@media(max-width: 767px) {
  .laptop-cta { display: none !important; }
  .mobile-cta { display: inline-flex !important; } /* Visible inside the mobile menu when opened */
}
/* ----------------------------------- */

/* Laptops (1025px to 1440px) specific tower positioning */
@media(min-width: 1025px) and (max-width: 1440px) {
  .wardenclyffe-tower {
    left: 35% !important;
    bottom: 65px !important;
  }
  .tower-lightning-overlay {
    left: 35% !important;
    bottom: 160px !important;
  }
}


#legacy .legacy-card {
  border-left: none !important;
  padding-left: 0 !important;
}


/* =========================================================
   LEGACY CARD CENTERING & SPACING FIX
========================================================= */
#legacy .legacy-card {
  text-align: center !important;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#legacy .legacy-card-image {
  height: 200px !important; /* Reduced from 260px to shrink the gap */
  display: flex !important;
  align-items: flex-end !important; /* Rest the image at the bottom */
  justify-content: center !important;
  margin-bottom: 18px !important; /* Small gap to the title */
  padding: 0 !important;
}

#legacy .legacy-card h3 {
  letter-spacing: 1px !important; /* Reduced from ~2.5px */
  margin-bottom: 12px !important;
}

#legacy .legacy-card p {
  text-align: center !important;
  margin-inline: auto;
}

/* Restore breathing room to cards */
#legacy .legacy-card {
  padding-inline: 24px !important; /* Add padding back to avoid text hitting the edges */
}


/* =========================================================
   LEGACY CARD EQUAL SIZING FIX
========================================================= */
/* Force absolute equal widths on the grid columns, ignoring content overflow */
@media (min-width: 761px) {
  #legacy .legacy-card-grid,
  .card-grid.legacy-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Ensure images don't break the column width */
#legacy .legacy-card-image img {
  width: 100% !important;
  max-width: 100% !important; /* Stop them from enforcing their intrinsic width */
  object-fit: contain;
  height: 100%;
}




/* =========================================================
   LAPTOP LAYOUT BUG FIX (1440px - 1180px)
   The cards were falling into the 120px sidebar column 
   because grid-column: 1 / -1 was missing in this breakpoint.
========================================================= */
@media(max-width:1440px){
  #legacy .legacy-card-grid,
  .card-grid.legacy-card-grid {
    grid-column: 1 / -1 !important; /* Force it to span full width under the text */
  }
}






/* =========================================================
   LAPTOP TOP-SECTION CENTERING (1440px - 1024px)
   Bulletproof centering + Unlocked text widths
========================================================= */
@media(max-width:1440px) and (min-width:1024px) {
  #legacy.content-section {
    grid-template-columns: 140px auto !important; /* Strict 2 columns */
    justify-content: center !important; /* Perfectly equal left/right screen margins */
    column-gap: 100px !important; 
  }
  
  #legacy .legacy-side {
    grid-column: 1 !important;
  }
  
  #legacy.content-section > div:nth-child(2) {
    grid-column: 2 !important;
    max-width: 750px !important; /* Wider than before, but controlled to prevent imbalance */
  }
  
  /* DESTROY hardcoded limits so both Title and Description fill the 750px column */
  #legacy.content-section > div:nth-child(2) h2,
  #legacy.content-section > div:nth-child(2) p {
    max-width: none !important; 
  }
  
  #legacy .legacy-card-grid,
  .card-grid.legacy-card-grid {
    grid-column: 1 / -1 !important;
  }
}

/* =========================================================
   TABLET/IPAD LAYOUT (1023px - 761px)
   Tablets don't have enough width for 1fr margins. 
   Use a standard 2-column layout to prevent breakage.
========================================================= */
@media(max-width:1023px) and (min-width:761px) {
  #legacy.content-section {
    grid-template-columns: 140px 1fr !important;
    column-gap: 80px !important; /* Increased separation for iPads */
  }
  
  #legacy .legacy-side {
    grid-column: 1 !important;
    margin-right: 0 !important;
  }
  
  #legacy.content-section > div:nth-child(2) {
    grid-column: 2 !important;
  }
  
  #legacy .legacy-card-grid,
  .card-grid.legacy-card-grid {
    grid-column: 1 / -1 !important;
  }
}




/* =========================================================
   INNOVATION SECTION - DESKTOP ( > 1440px )
   4-column layout
========================================================= */
@media (min-width: 1441px) {
  #innovation.content-section {
    grid-template-columns: 120px 1.1fr 1.6fr 1.1fr !important;
    align-items: center !important;
    column-gap: 40px !important;
  }

  #innovation .innovation-grid {
    display: contents !important;
  }

  #innovation .section-number {
    grid-column: 1 !important;
  }
  
  #innovation .section-intro {
    grid-column: 2 !important;
    max-width: none !important;
  }
  
  #innovation .energy-core {
    grid-column: 3 !important;
    width: 100% !important;
    max-width: 500px !important;
    margin: 0 auto !important;
  }
  
  #innovation .feature-list {
    grid-column: 4 !important;
    display: flex;
    flex-direction: column;
    gap: 48px;
  }

  #innovation .section-intro h2,
  #innovation .section-intro p {
    max-width: none !important;
  }

  /* Feature Item Styling - Horizontal for Desktop */
  #innovation .feature-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 20px !important;
    text-align: left !important;
  }

  #innovation .feature-item .mini-icon {
    flex-shrink: 0;
  }
}

/* =========================================================
   INNOVATION SECTION - LAPTOP ( 1024px - 1440px )
   3-column top, Features on bottom row (Centered icons)
========================================================= */
@media (max-width: 1440px) and (min-width: 1024px) {
  #innovation.content-section {
    grid-template-columns: 120px 1fr 1.4fr !important;
    align-items: center !important;
    column-gap: 40px !important;
    row-gap: 60px !important;
  }

  #innovation .innovation-grid {
    display: contents !important;
  }

  #innovation .section-number {
    grid-column: 1 !important;
  }
  
  #innovation .section-intro {
    grid-column: 2 !important;
    max-width: none !important;
  }
  
  #innovation .energy-core {
    grid-column: 3 !important;
    width: 100% !important;
    max-width: 450px !important;
    margin: 0 auto !important;
  }
  
  /* Drop features to a new row, span full width, 3 columns side-by-side */
  #innovation .feature-list {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 40px !important;
    margin-top: 20px !important;
  }

  #innovation .section-intro h2,
  #innovation .section-intro p {
    max-width: none !important;
  }

  /* Feature Item Styling - Vertical & Centered for Laptop */
  #innovation .feature-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 16px !important;
    text-align: center !important;
  }

  #innovation .feature-item h3,
  #innovation .feature-item p,
  #innovation .feature-item > div:last-child {
    text-align: center !important;
  }
  
  #innovation .feature-item .mini-icon {
    margin: 0 auto !important;
  }
}

/* Common text styling for feature items */
#innovation .feature-item h3 {
  font-family: Montserrat, sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 1.5px !important;
  margin-bottom: 8px !important;
  margin-top: 4px !important;
}

#innovation .feature-item p {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--muted) !important;
}


/* =========================================================
   CONTACT FORM - LAPTOPS/TABLETS (761px - 1440px)
   Exactly 50% / 50% split. Textarea matches height of 3 fields.
========================================================= */
@media (max-width: 1440px) and (min-width: 761px) {
  .contact-form {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important; /* Exact 50/50 split */
    column-gap: 24px !important;
    row-gap: 16px !important;
    align-items: stretch !important; /* Forces columns to be the same height */
  }

  .contact-form .form-fields {
    grid-column: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    height: 100% !important; /* Fill its column */
  }

  .contact-form .form-fields input {
    flex-grow: 1 !important; /* Allow inputs to stretch if needed */
    margin: 0 !important;
  }

  .contact-form textarea[name="message"] {
    grid-column: 2 !important;
    height: 100% !important; /* Stretches to perfectly match the height of the 3 fields */
    margin: 0 !important;
    resize: none !important; /* Disable resize so it stays flush with the fields */
  }

  /* Button goes below the textarea in the second column */
  .contact-form button[type="submit"] {
    grid-column: 2 !important;
    justify-self: end !important;
    margin-top: 8px !important;
    width: auto !important;
  }
}
