@charset "UTF-8";
/* ////////////////////////////////////////////////////////////// */
/* Universal */
/* ////////////////////////////////////////////////////////////// */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Global Resets */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
@import url("https://fast.fonts.net/lt/1.css?apiType=css&c=0fb1fe68-9b02-491f-9f42-09eb999f050e&fontids=5656268,5656275");
html {
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
}

*, *::before, *::after {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
  scrollbar-color: transparent transparent;
  scrollbar-width: none;
  box-sizing: inherit;
  margin: 0;
  padding: 0;
}

button, textarea, input, select, a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-tap-highlight-color: transparent;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Fonts / */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Univers Next Pro Regular */
@font-face {
  font-family: "Univers Next";
  src: url("fonts/UniversNext/5dac8626-172e-4f72-98df-8667df989493.woff2") format("woff2"), url("fonts/UniversNext/03385478-0a27-40a7-b628-f241b112274a.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}
/* Univers Next Pro Light */
@font-face {
  font-family: "Univers Next";
  src: url("fonts/UniversNext/54a7f9d3-6607-4c69-818e-c24ea246d4b9.woff2") format("woff2"), url("fonts/UniversNext/6c20c388-7de7-41a7-94dc-9b9644811fec.woff") format("woff");
  font-weight: 300;
  font-style: normal;
}
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Roots */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
:root {
  --scr: calc(((90px + (100vw / 100))/100));
  --line: calc(var(--blu)*0.08);
  --navi-inner: calc( var(--h1-fs)*0.73);
  --navi-outer: calc(0px + (var(--blu)*2) + (var(--h1-fs)*0.73));
  --CF-RED: #ff0000;
  --CF-GRE: #00e686;
  --CF-RIN: #19e1ff;
  --CG-000: #000000;
  --CG-014: #242424;
  --CG-033: #4e5153;
  --CG-057: #91918e;
  --CG-063: #9ea09f;
  --CG-069: #aeb0b0;
  --CG-093: #edeceb;
  --CG-100: #ffffff;
  --univers: "Univers Next", Helvetica, Arial, sans-serif;
  --LHR: 0.85;
  --n-lh: calc(var(--blu) * 1);
  --n-fs: calc(var(--n-lh) * var(--LHR));
  --p-lh: calc(var(--blu) * 1.6428571429);
  --p-fs: calc(var(--p-lh) * var(--LHR));
  --h3-lh: calc(var(--blu) * 2.6428571429);
  --h3-fs: calc(var(--h3-lh) * var(--LHR));
  --h1-lh: calc(var(--blu) * 4.2142857143);
  --h1-fs: calc(var(--h1-lh) * var(--LHR));
  --trans-duration: 1s;
  --trans-function: ease-in-out;
  --wi-settings: clamp(calc(var(--blu)*33), calc(100vw / 8 * 3), calc(var(--blu)*40));
  --wi-related: clamp(calc(var(--blu)*47), calc(100vw / 8 * 4), calc(var(--blu)*90));
  --wi-saved: calc(var(--blu)*13);
  --blur: 10px;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Basic typography */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
body, p, .p, * {
  font-family: var(--univers);
  color: var(--COL-TE);
}

h1, .h1 {
  text-transform: uppercase;
}

h1, .h1,
h2, .h2 {
  font-weight: 300;
  font-style: normal;
  font-size: var(--h1-fs);
  line-height: var(--h1-lh);
  margin-left: calc(0px - var(--h1-lh) * 0.08);
  margin-top: calc(0px - var(--h1-lh) * 0.07);
}

h3, h4, h5, h6, h7, h8,
.h3, .h4, .h5, .h6, .h7, .h8 {
  font-weight: 400;
  font-style: normal;
  font-size: var(--h3-fs);
  line-height: var(--h3-lh);
  margin-left: calc(0px - var(--h3-lh) * 0.08);
  margin-top: calc(0px - var(--h3-lh) * 0.07);
}

p, .p {
  font-weight: 400;
  font-style: normal;
  font-size: var(--p-fs);
  line-height: var(--p-lh);
  margin-left: calc(0px - var(--p-lh) * 0.08);
  margin-top: calc(0px - var(--p-lh) * 0.07);
}

h9, .h9 {
  font-weight: 400;
  font-style: normal;
  font-size: var(--n-fs);
  line-height: var(--n-lh);
  margin-left: calc(0px - var(--n-lh) * 0.08);
  margin-top: calc(0px - var(--n-lh) * 0.07);
}

a, a:link, a:visited {
  color: var(--COL-TE);
  text-decoration: underline;
}

.type-sample, .type-sample div {
  font-family: "main-dynamic-font", "Univers Next Main", Helvetica, Arial, sans-serif;
}

#comp-type-sample[type-sample-selection=aa], #comp-type-init[type-sample-selection=aa] {
  --capital-height: min(calc(var(--vw) * 35), calc(var(--vh) * 70));
}
#comp-type-sample[type-sample-selection=champions], #comp-type-init[type-sample-selection=champions] {
  --capital-height: min(calc(var(--vw) * 8), calc(var(--vh) * 15));
}
#comp-type-sample[type-sample-selection=waffles], #comp-type-init[type-sample-selection=waffles] {
  --capital-height: min(calc(var(--vw) * 9), calc(var(--vh) * 20));
}
#comp-type-sample[type-sample-selection=handgloves], #comp-type-init[type-sample-selection=handgloves] {
  --capital-height: min(calc(var(--vw) * 9), calc(var(--vh) * 20));
}
#comp-type-sample[type-sample-selection=minimom], #comp-type-init[type-sample-selection=minimom] {
  --capital-height: min(calc(var(--vw) * 9), calc(var(--vh) * 20));
}
#comp-type-sample[type-sample-selection=sphinx], #comp-type-init[type-sample-selection=sphinx] {
  --capital-height: min(calc(var(--vw) * 8), calc(var(--vh) * 15));
}
#comp-type-sample[type-sample-selection=fox], #comp-type-init[type-sample-selection=fox] {
  --capital-height: min(calc(var(--vw) * 6), calc(var(--vh) * 15));
}
#comp-type-sample[type-sample-selection=alphabet], #comp-type-init[type-sample-selection=alphabet] {
  --capital-height: min(calc(var(--vw) * 7), calc(var(--vh) * 7));
}
#comp-type-sample[type-sample-selection=numerals], #comp-type-init[type-sample-selection=numerals] {
  --capital-height: min(calc(var(--vw) * 9), calc(var(--vh) * 20));
}
#comp-type-sample[type-sample-selection=collname], #comp-type-init[type-sample-selection=collname] {
  --capital-height: min(calc(var(--vw) * 6), calc(var(--vh) * 15));
}
#comp-type-sample[type-sample-selection=hoefler], #comp-type-init[type-sample-selection=hoefler] {
  --capital-height: min(calc(var(--vw) * 1.4), calc(var(--vh) * 1.4));
  white-space: normal;
  max-width: 80%;
  width: 100%;
}
#comp-type-sample[type-sample-selection=custom], #comp-type-init[type-sample-selection=custom] {
  --capital-height: min(calc(var(--vw) * (10 - (var(--multiplier) * 0.25))), calc(var(--vh) * 25));
}
#comp-type-sample[type-sample-selection=champions] span, #comp-type-sample[type-sample-selection=waffles] span, #comp-type-sample[type-sample-selection=sphinx] span, #comp-type-sample[type-sample-selection=fox] span, #comp-type-sample[type-sample-selection=alphabet] span, #comp-type-init[type-sample-selection=champions] span, #comp-type-init[type-sample-selection=waffles] span, #comp-type-init[type-sample-selection=sphinx] span, #comp-type-init[type-sample-selection=fox] span, #comp-type-init[type-sample-selection=alphabet] span {
  vertical-align: unset;
}

#view-font-settings #comp-type-sample[type-sample-selection=waffles], #view-font-settings #comp-type-init[type-sample-selection=waffles], #view-font-edit #comp-type-sample[type-sample-selection=waffles], #view-font-edit #comp-type-init[type-sample-selection=waffles] {
  --capital-height: min(calc(var(--vw) * 7), calc(var(--vh) * 15));
}
#view-font-settings #comp-type-sample[type-sample-selection=champions], #view-font-settings #comp-type-init[type-sample-selection=champions], #view-font-edit #comp-type-sample[type-sample-selection=champions], #view-font-edit #comp-type-init[type-sample-selection=champions] {
  --capital-height: min(calc(var(--vw) * 5), calc(var(--vh) * 10));
}
#view-font-settings #comp-type-sample[type-sample-selection=handgloves], #view-font-settings #comp-type-init[type-sample-selection=handgloves], #view-font-edit #comp-type-sample[type-sample-selection=handgloves], #view-font-edit #comp-type-init[type-sample-selection=handgloves] {
  --capital-height: min(calc(var(--vw) * 6), calc(var(--vh) * 20));
}
#view-font-settings #comp-type-sample[type-sample-selection=minimom], #view-font-settings #comp-type-init[type-sample-selection=minimom], #view-font-edit #comp-type-sample[type-sample-selection=minimom], #view-font-edit #comp-type-init[type-sample-selection=minimom] {
  --capital-height: min(calc(var(--vw) * 7), calc(var(--vh) * 20));
}
#view-font-settings #comp-type-sample[type-sample-selection=sphinx], #view-font-settings #comp-type-init[type-sample-selection=sphinx], #view-font-edit #comp-type-sample[type-sample-selection=sphinx], #view-font-edit #comp-type-init[type-sample-selection=sphinx] {
  --capital-height: min(calc(var(--vw) * 5), calc(var(--vh) * 10));
}
#view-font-settings #comp-type-sample[type-sample-selection=fox], #view-font-settings #comp-type-init[type-sample-selection=fox], #view-font-edit #comp-type-sample[type-sample-selection=fox], #view-font-edit #comp-type-init[type-sample-selection=fox] {
  --capital-height: min(calc(var(--vw) * 4), calc(var(--vh) * 15));
}
#view-font-settings #comp-type-sample[type-sample-selection=aa], #view-font-settings #comp-type-init[type-sample-selection=aa], #view-font-edit #comp-type-sample[type-sample-selection=aa], #view-font-edit #comp-type-init[type-sample-selection=aa] {
  --capital-height: min(calc(var(--vw) * 20), calc(var(--vh) * 70));
}
#view-font-settings #comp-type-sample[type-sample-selection=alphabet], #view-font-settings #comp-type-init[type-sample-selection=alphabet], #view-font-edit #comp-type-sample[type-sample-selection=alphabet], #view-font-edit #comp-type-init[type-sample-selection=alphabet] {
  --capital-height: min(calc(var(--vw) * 7), calc(var(--vh) * 5));
}
#view-font-settings #comp-type-sample[type-sample-selection=numerals], #view-font-settings #comp-type-init[type-sample-selection=numerals], #view-font-edit #comp-type-sample[type-sample-selection=numerals], #view-font-edit #comp-type-init[type-sample-selection=numerals] {
  --capital-height: min(calc(var(--vw) * 7), calc(var(--vh) * 15));
}
#view-font-settings #comp-type-sample[type-sample-selection=hoefler], #view-font-settings #comp-type-init[type-sample-selection=hoefler], #view-font-edit #comp-type-sample[type-sample-selection=hoefler], #view-font-edit #comp-type-init[type-sample-selection=hoefler] {
  --capital-height: min(calc(var(--vw) * 0.6), calc(var(--vh) * 1.4));
}
#view-font-settings #comp-type-sample[type-sample-selection=collname], #view-font-settings #comp-type-init[type-sample-selection=collname], #view-font-edit #comp-type-sample[type-sample-selection=collname], #view-font-edit #comp-type-init[type-sample-selection=collname] {
  --capital-height: min(calc(var(--vw) * 6), calc(var(--vh) * 15));
}
#view-font-settings #comp-type-sample[type-sample-selection=custom], #view-font-settings #comp-type-init[type-sample-selection=custom], #view-font-edit #comp-type-sample[type-sample-selection=custom], #view-font-edit #comp-type-init[type-sample-selection=custom] {
  --capital-height: min(calc(var(--vw) * (9 - (var(--multiplier) * 0.25))), calc(var(--vh) * 15));
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Colors */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.CG-000 {
  --COL-HI: var(--CG-014);
  --COL-BG: var(--CG-000);
  --COL-HO: var(--CG-093);
  --COL-AC: var(--CG-093);
  --COL-TE: var(--CG-063);
}

.CG-033 {
  --COL-HI: var(--CG-063);
  --COL-BG: var(--CG-033);
  --COL-HO: var(--CG-057);
  --COL-AC: var(--CG-063);
  --COL-TE: var(--CG-000);
}

.CG-057 {
  --COL-HI: var(--CG-063);
  --COL-BG: var(--CG-057);
  --COL-HO: var(--CG-033);
  --COL-AC: var(--CG-014);
  --COL-TE: var(--CG-000);
}

.CG-063 {
  --COL-HI: var(--CG-069);
  --COL-BG: var(--CG-063);
  --COL-HO: var(--CG-033);
  --COL-AC: var(--CG-014);
  --COL-TE: var(--CG-000);
}

.CG-069 {
  --COL-HI: var(--CG-093);
  --COL-BG: var(--CG-069);
  --COL-HO: var(--CG-057);
  --COL-AC: var(--CG-057);
  --COL-TE: var(--CG-000);
}

.CG-093 {
  --COL-HI: var(--CG-100);
  --COL-BG: var(--CG-093);
  --COL-HO: var(--CG-069);
  --COL-AC: var(--CG-057);
  --COL-TE: var(--CG-000);
}

.CG-100 {
  --COL-HI: var(--CG-093);
  --COL-BG: var(--CG-100);
  --COL-HO: var(--CG-069);
  --COL-AC: var(--CG-057);
  --COL-TE: var(--CG-000);
}

.overlay-active {
  --COL-HI: var(--CG-000);
  --COL-BG: var(--CG-033);
  --COL-HO: var(--CG-000);
  --COL-AC: var(--CG-000);
  --COL-TE: var(--CG-000);
}

/* //////////////////////////////// */
body {
  background: var(--COL-BG);
}
body a:hover {
  color: var(--COL-HO);
}
body #navi-container {
  background: var(--COL-BG);
}
body #navi-container *:hover {
  color: var(--COL-HO);
}
body #navi-comp:hover * {
  color: var(--COL-HO);
}
body .navi-sub:hover {
  color: var(--COL-HO);
}
body .info-open-btn:hover {
  background-color: var(--COL-HO);
}
body .settings-navi-btn:hover {
  background: var(--COL-HI);
}
body .settings-navi-save:hover {
  background: var(--COL-HI);
}
body #save-this-font svg * {
  fill: var(--COL-HO);
}
body #acti-parameter-container .parameter-container:hover {
  background: var(--COL-HI);
}
body #acti-parameter-container .parameter-container .options {
  background: var(--COL-HI);
}
body #select-sample-container .option:hover {
  color: var(--COL-AC);
}
body #select-sample-container .option.active {
  color: var(--COL-AC);
}
body #select-sample-container .options-section {
  background: var(--COL-HI);
}
body #select-sample-container .navigation:hover * {
  color: var(--COL-AC);
}
body #select-sample-container .navigation:hover::after {
  border-color: var(--COL-AC);
}
body #return-btn:hover .arrow-container::after {
  border-color: var(--COL-HO);
}
body #return-btn:hover .arrow-container::before {
  background: var(--COL-HO);
}
body .related-container:hover {
  background: var(--COL-HI);
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Global */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
body {
  padding-top: calc(var(--navi-outer) - var(--line));
}

.snap {
  -ms-scroll-snap-type: y proximity;
      scroll-snap-type: y proximity;
}

/* Faders */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.fader {
  transition-property: background, color, opacity, right, width;
  transition-duration: var(--trans-duration);
  transition-timing-function: var(--trans-function);
}

/* Circular buttons */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.circ-btn {
  height: var(--navi-inner);
  width: var(--navi-inner);
  border: 0;
  padding: 0;
  background-repeat: no-repeat;
  background-position: center;
  cursor: pointer;
  background-color: transparent;
  border-radius: 100vh;
  margin: var(--blu);
}

/* Type data */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.type-data {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  position: absolute;
  top: calc(var(--blu) * 3);
  left: 0;
  width: 180px;
  height: 230px;
  z-index: 9999;
  padding: var(--blu);
  display: none;
}
.type-data small {
  display: block;
  color: var(--CG-069);
}

/* Type samples */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.type-sample svg {
  overflow: visible;
  max-height: 100%;
  max-width: 100%;
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Measurement objects */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#measurement-objects {
  position: fixed;
  top: -200%;
  left: -200%;
  visibility: hidden;
}
#measurement-objects .blu {
  width: var(--blu);
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Navigation */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#navi-container {
  position: fixed;
  display: flex;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--navi-outer);
  border-bottom: solid var(--line) var(--COL-TE);
  padding: var(--blu);
  z-index: 600;
}

#navi-comp {
  display: flex;
  cursor: pointer;
  height: var(--navi-inner);
  margin-top: calc(0px - var(--blu) * 0.17);
}
#navi-comp h1 {
  width: calc(var(--h1-fs) * 0.5);
  overflow: hidden;
  height: var(--h1-fs);
}
#navi-comp h1:first-of-type {
  margin-right: calc(var(--h1-fs) * 0.15);
}
#navi-comp h1:last-of-type {
  margin-right: var(--blu);
}
#navi-comp h1.long:first-of-type {
  width: calc(var(--h1-fs) * 2.62);
  margin-right: calc(var(--h1-fs) * 0.4);
}
#navi-comp h1.long:last-of-type {
  width: calc(var(--h1-fs) * 3.52);
}

#view-compass #navi-comp,
#view-compass #navi-home,
#view-font-settings #navi-sett,
#view-info #navi-info {
  pointer-events: none;
  color: var(--COL-AC);
}

.navi-sub-container,
.navi-env-container {
  height: var(--navi-inner);
  text-transform: uppercase;
  display: grid;
  grid-template-columns: 1fr 1fr;
  -moz-column-gap: calc(var(--blu) * 1);
       column-gap: calc(var(--blu) * 1);
  grid-template-rows: 1fr 1fr 1fr;
  grid-auto-flow: column;
  margin-top: calc(0px - var(--n-lh) * 0.25);
}
.navi-sub-container .navi-sub,
.navi-env-container .navi-sub {
  display: block;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  font-size: var(--n-fs);
  line-height: calc(var(--n-lh) * 0.98);
  cursor: pointer;
}

.navi-env-container {
  pointer-events: none;
  opacity: 0.3;
}

#parameter-navi-container,
#related-navi-container,
#collection-navi-container,
#search-navi-container,
#login-navi-container,
#profile-navi-container {
  position: fixed;
  top: 0;
  right: 0;
  width: var(--wi-settings);
  height: var(--navi-outer);
  overflow: hidden;
  padding: var(--blu);
  display: flex;
  z-index: 600;
}
#parameter-navi-container h1,
#related-navi-container h1,
#collection-navi-container h1,
#search-navi-container h1,
#login-navi-container h1,
#profile-navi-container h1 {
  padding-right: var(--blu);
  margin-top: calc(0px - var(--h1-lh) * 0.1);
}

#login-navi-container {
  width: 50%;
  border-left: solid var(--line) var(--COL-TE);
}

/* Type sample options */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#select-sample-container {
  position: fixed;
  z-index: 600;
  display: block;
  top: 0;
}
#select-sample-container .title {
  padding-bottom: calc(var(--blu) * 0.65);
}
#select-sample-container .option {
  font-size: var(--p-fs);
  line-height: var(--p-lh);
  cursor: pointer;
}
#select-sample-container .option[type-sample-selector=aa]::after {
  content: "(Default)";
  font-size: var(--n-fs);
  padding-left: calc(var(--blu) * 0.5);
}
#select-sample-container .option[type-sample-selector=custom] input {
  display: none;
  width: 100%;
  background: var(--COL-BG);
  border: solid var(--line) var(--COL-TE);
  outline: none;
  font-size: var(--n-fs);
  line-height: var(--n-lh);
  padding: calc(var(--blu) * 0.5);
  margin-top: calc(var(--blu) * 0.5);
}
#select-sample-container .option[type-sample-selector=custom] input::-moz-placeholder {
  color: var(--COL-AC);
  opacity: 1;
}
#select-sample-container .option[type-sample-selector=custom] input:-ms-input-placeholder {
  color: var(--COL-AC);
  opacity: 1;
}
#select-sample-container .option[type-sample-selector=custom] input::placeholder {
  color: var(--COL-AC);
  opacity: 1;
}
#select-sample-container .option[type-sample-selector=custom].active input {
  display: block;
}
#select-sample-container .navigation {
  position: relative;
  height: var(--navi-outer);
  padding: var(--blu);
  display: flex;
  align-items: end;
  border-right: solid var(--line) var(--COL-TE);
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
#select-sample-container .navigation h9 {
  text-transform: uppercase;
  margin-bottom: calc(0px - var(--n-fs) * 0.35);
  padding-right: calc(var(--blu) * 2);
}
#select-sample-container .navigation::after {
  content: "";
  width: calc(var(--n-fs) * 1);
  height: calc(var(--n-fs) * 1);
  transform: rotate(45deg);
  border-bottom: solid var(--line) var(--COL-TE);
  border-right: solid var(--line) var(--COL-TE);
  position: absolute;
  right: calc(var(--blu) * 1);
  bottom: calc(var(--blu) * 1.2);
  transition-property: transform, bottom;
  transition-duration: 0.2s;
  transition-timing-function: ease-in-out;
}
#select-sample-container .options-container {
  display: none;
}
#select-sample-container .options-section {
  padding: var(--blu);
  border: solid var(--line) var(--COL-TE);
  border-top: none;
}

#select-sample-container.open .options-container {
  display: block;
}

#view-compass #select-sample-container {
  left: 50%;
  transform: translateX(calc(var(--line) * 0.5 - 100%));
}

#view-font-settings #select-sample-container, #view-font-edit #select-sample-container {
  visibility: visible;
  right: var(--wi-settings);
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Compass View */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#compass-container {
  position: fixed;
  display: block;
  width: 100%;
  height: calc(100% - var(--navi-outer));
  bottom: 0;
  left: 0;
  cursor: pointer;
  z-index: 400;
}
#compass-container .line {
  position: absolute;
  display: block;
  background: var(--COL-TE);
  z-index: 100;
}
#compass-container .line.vert {
  width: var(--line);
  height: 100%;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}
#compass-container .line.hori {
  height: var(--line);
  width: 100%;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
#compass-container .marker,
#compass-container .blocker {
  position: absolute;
  border-radius: 100vh;
  transform: translate(-50%, -50%);
  left: 50%;
  top: 50%;
}
#compass-container .blocker {
  width: calc(var(--blu) * 3);
  height: calc(var(--blu) * 3);
  background: var(--COL-BG);
  z-index: 200;
}
#compass-container .marker {
  width: calc(var(--blu) * 1.5);
  height: calc(var(--blu) * 1.5);
  border: solid var(--line) var(--COL-BG);
  mix-blend-mode: difference;
  z-index: 400;
}

#compass-container,
#compass-container * {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

#comp-type-sample, #comp-type-init {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  text-align: center;
  z-index: 300;
  /* font metrics */
  --main-dynamic-font: "main-dynamic-font", "Univers Next", Helvetica, Arial, sans-serif;
  --fm-linegap: 0;
  /* desired font-size for capital height */
  --capital-height: 200;
  /* apply font-family */
  font-family: var(--main-dynamic-font);
  /* compute font-size to get capital height equal desired font-size */
  --computedFontSize: (var(--capital-height) / var(--fm-capitalHeight));
  font-size: calc(var(--computedFontSize) * 1px);
  /* compute line-height: normal and content-area’s height */
  --lineheightNormal: (var(--fm-ascender) + var(--fm-descender) + var(--fm-linegap));
  --contentArea: (var(--lineheightNormal) * var(--computedFontSize));
  /* compute distance from the bottom of the capital letter to the bottom edge and distance from the top of the capital letter to the top edge */
  --distanceBottom: (var(--fm-descender));
  --distanceTop: (var(--fm-ascender) - var(--fm-capitalHeight));
  /* compute vertical-align */
  --valign: ((var(--distanceBottom) - var(--distanceTop)) * var(--computedFontSize));
  /* desired line-height */
  line-height: 1em;
}
#comp-type-sample span, #comp-type-init span {
  display: block;
  /* apply font-family */
  font-family: var(--main-dynamic-font);
  /* compute vertical-align */
  vertical-align: calc(var(--valign) * -1px);
}

@-moz-document url-prefix() {
  #comp-type-sample span, #comp-type-init span {
    display: inline;
  }
}
#comp-click-info {
  position: fixed;
  padding: calc(var(--blu) * 1);
  color: var(--COL-TE);
  white-space: nowrap;
  z-index: 400;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Settings View */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#settings-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  border-bottom: solid var(--line) var(--COL-TE);
  scroll-snap-align: end;
}

#view-font-settings #settings-preview .type-sample-container, #view-font-edit #settings-preview .type-sample-container {
  position: absolute;
  top: calc(var(--blu) * 2.9);
  left: 0;
  width: 100%;
  height: calc(100% - var(--blu) * 6.6);
  overflow: hidden;
}
#view-font-settings #settings-preview .type-sample-container .split-left, #view-font-edit #settings-preview .type-sample-container .split-left {
  width: 50%;
  left: 0;
  right: auto;
}
#view-font-settings #settings-preview .type-sample-container .split-left > .type-sample, #view-font-edit #settings-preview .type-sample-container .split-left > .type-sample {
  left: 100%;
}
#view-font-settings #settings-preview .type-sample-container .split-right, #view-font-edit #settings-preview .type-sample-container .split-right {
  width: 50%;
  left: auto;
  right: 0;
}
#view-font-settings #settings-preview .type-sample-container .split-right > .type-sample, #view-font-edit #settings-preview .type-sample-container .split-right > .type-sample {
  left: 0%;
}

#settings-preview {
  position: absolute;
  height: calc(100% - var(--navi-outer));
  width: calc(100% - var(--wi-settings));
  border-right: solid var(--line) var(--COL-TE);
  top: var(--navi-outer);
}
#settings-preview[save-state=yes] #save-this-font svg * {
  fill: var(--CF-RED);
}
#settings-preview[save-state=yes] #save-this-font:hover svg * {
  fill: var(--CF-RED);
}
#settings-preview #buy-this-font:hover {
  color: var(--COL-TE);
}

#settings-panel {
  position: absolute;
  width: var(--wi-settings);
  top: 0;
  right: 0;
  height: 100%;
}

#settings-preview-navi {
  position: absolute;
  width: 100%;
  bottom: 0;
  height: calc(var(--blu) * 3.7);
  display: flex;
  border-top: solid var(--line) var(--COL-TE);
}

#font-names-container {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 400;
  font-size: var(--n-fs);
  line-height: var(--n-lh);
  cursor: default;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-bottom: solid var(--line) var(--COL-TE);
}
#font-names-container > div {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#font-names-container div {
  padding: var(--blu);
  height: calc(var(--blu) * 2.9);
}
#font-names-container div:first-child {
  border-right: solid var(--line) var(--COL-TE);
}
#font-names-container div:hover .reset {
  display: inline;
}
#font-names-container .initial {
  display: none;
}
#font-names-container .initial:hover {
  background: var(--COL-HI);
}
#font-names-container .reset {
  color: var(--CF-RED);
  padding-left: var(--blu);
  cursor: pointer;
  display: none;
}
#font-names-container .reset:hover {
  color: var(--COL-TE);
}
#font-names-container.unequal .initial {
  display: block;
}

.settings-navi-btn {
  border-right: solid var(--line) var(--COL-TE);
  text-align: center;
  overflow: hidden;
  font-size: var(--h3-fs);
  line-height: calc(var(--blu) * 2.1);
  white-space: nowrap;
  font-weight: 300;
  width: calc((100% - var(--blu) * 3.7) / 12 * 3);
}
.settings-navi-btn#open-related-font {
  width: calc((100% - var(--blu) * 3.7) / 12 * 6);
}

a.settings-navi-btn {
  text-decoration: none;
}

.settings-navi-save {
  width: calc(var(--blu) * 3.7);
  display: flex;
  justify-content: center;
  align-items: center;
}

.settings-navi-save,
.settings-navi-btn {
  padding: var(--blu);
  cursor: pointer;
}

#save-this-font svg {
  overflow: visible;
  height: 100%;
}
#save-this-font:hover svg * {
  fill: var(--COL-AC);
}

/* Parameter Settings */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#parameter-settings-container {
  position: absolute;
  top: var(--navi-outer);
  left: 0;
  width: 100%;
  height: calc(100% - var(--navi-outer));
  overflow-x: hidden;
  overflow-y: scroll;
}

#acti-parameter-container .parameter-container {
  padding: var(--blu);
  position: relative;
  border-bottom: solid var(--line) var(--COL-TE);
}
#acti-parameter-container .parameter-container * {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
#acti-parameter-container .parameter-container .title {
  display: none;
}
#acti-parameter-container .parameter-container .labels {
  position: relative;
  display: flex;
  justify-content: space-between;
  width: 100%;
  z-index: 200;
}
#acti-parameter-container .parameter-container .labels h9 {
  position: relative;
}
#acti-parameter-container .parameter-container .labels h9 .remove {
  content: "Remove";
  position: absolute;
  visibility: hidden;
  right: 0;
  transform: translateX(100%);
  padding-left: var(--blu);
  color: var(--CF-RED);
  cursor: pointer;
}
#acti-parameter-container .parameter-container .track {
  position: relative;
  width: calc(100% + var(--blu) * 0.7);
  height: calc(var(--blu) * 2.65);
  margin-left: calc(0px - var(--blu) * 0.3);
  margin-top: calc(var(--blu) * 0.25);
}
#acti-parameter-container .parameter-container .track .drag-area {
  position: absolute;
  display: none;
  width: 100%;
  height: 100%;
}
#acti-parameter-container .parameter-container .track.hover .drag-area {
  display: block;
}
#acti-parameter-container .parameter-container .slider {
  position: absolute;
  height: calc(var(--blu) * 2.65);
  overflow: visible;
  font-size: var(--h1-fs);
  line-height: calc(var(--blu) * 3.5);
  cursor: pointer;
  font-weight: 300;
}
#acti-parameter-container .parameter-container .more {
  right: 0;
  position: absolute;
  height: calc(100% + var(--blu) * 2);
  cursor: pointer;
  margin-top: calc(0px - var(--blu) * 1);
  z-index: 100;
}
#acti-parameter-container .parameter-container .more .drag-area {
  left: 0;
}
#acti-parameter-container .parameter-container .less {
  left: 0;
  position: absolute;
  height: calc(100% + var(--blu) * 2);
  cursor: pointer;
  margin-top: calc(0px - var(--blu) * 1);
  z-index: 100;
}
#acti-parameter-container .parameter-container .less .drag-area {
  right: 0;
}
#acti-parameter-container .parameter-container .options {
  display: none;
  position: absolute;
  top: 100%;
  left: calc(0px - var(--line));
  width: calc(100% + var(--line) * 2);
  padding: var(--blu);
  border: solid var(--line) var(--COL-TE);
  z-index: 100;
  max-height: calc(var(--blu) * 10);
  overflow-x: hidden;
  overflow-y: scroll;
}
#acti-parameter-container .parameter-container .option {
  position: relative;
}
#acti-parameter-container .parameter-container .option.active {
  color: var(--COL-AC);
}
#acti-parameter-container .parameter-container .option.active:hover::after {
  display: block;
}
#acti-parameter-container .parameter-container .option:hover {
  color: var(--COL-HO);
}
#acti-parameter-container .parameter-container .all-no {
  margin-bottom: calc(var(--blu) * 0.25);
}
#acti-parameter-container .parameter-container .all-no:hover {
  color: var(--CF-RED);
}
#acti-parameter-container .parameter-container .more::before, #acti-parameter-container .parameter-container .less::before {
  content: "";
  position: absolute;
  visibility: hidden;
  width: calc(var(--n-fs) * 1);
  height: calc(var(--n-fs) * 1);
  border-bottom: solid var(--line) var(--COL-TE);
  border-right: solid var(--line) var(--COL-TE);
  top: 50%;
}
#acti-parameter-container .parameter-container .more::before {
  left: calc(0px - var(--blu) * 0.2);
  transform: rotate(-45deg) translateX(50%);
}
#acti-parameter-container .parameter-container .less::before {
  right: calc(0px + var(--blu) * 0.4);
  transform: rotate(135deg) translateX(-50%);
}
#acti-parameter-container .parameter-container .more:hover::before, #acti-parameter-container .parameter-container .less:hover::before {
  border-color: var(--COL-HO);
}
#acti-parameter-container .parameter-container.open .options {
  display: block;
  text-transform: capitalize;
}
#acti-parameter-container .parameter-container.unequal {
  background: var(--COL-HI);
}
#acti-parameter-container .parameter-container.unequal.reset * {
  color: var(--CF-RED);
}
#acti-parameter-container .parameter-container.unequal.reset .active::after {
  border-color: var(--CF-RED);
}
#acti-parameter-container .parameter-container:hover .labels h9 .remove {
  visibility: visible;
}
#acti-parameter-container .parameter-container:hover .labels h9 .remove:hover {
  color: var(--COL-TE);
}
#acti-parameter-container .parameter-container:hover .more::before, #acti-parameter-container .parameter-container:hover .less::before {
  visibility: visible;
}
#acti-parameter-container .parameter-container:last-child {
  border-bottom: none;
}
#acti-parameter-container .parameter-container[par-type=dropdown] {
  cursor: pointer;
  border: none;
  border-top: solid var(--line) var(--COL-TE);
}
#acti-parameter-container .parameter-container[par-type=dropdown] .title {
  display: block;
}
#acti-parameter-container .parameter-container[par-type=dropdown] .remove {
  content: "Remove";
  position: relative;
  visibility: hidden;
  right: 0;
  transform: translateX(100%);
  padding-left: var(--blu);
  color: var(--CF-RED);
  cursor: pointer;
  z-index: 100;
}
#acti-parameter-container .parameter-container[par-type=dropdown] .select-area {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#acti-parameter-container .parameter-container[par-type=dropdown] > .active {
  position: relative;
  height: calc(var(--blu) * 2.65);
  font-size: var(--h1-fs);
  line-height: calc(var(--blu) * 3.5);
  font-weight: 300;
  margin-top: calc(var(--blu) * 0.25);
  text-transform: capitalize;
}
#acti-parameter-container .parameter-container[par-type=dropdown] > .active::after {
  content: "";
  width: calc(var(--n-fs) * 1);
  height: calc(var(--n-fs) * 1);
  transform: rotate(45deg);
  border-bottom: solid var(--line) var(--COL-TE);
  border-right: solid var(--line) var(--COL-TE);
  position: absolute;
  right: calc(var(--blu) * 1);
  bottom: calc(var(--blu) * 1.2);
  transition-property: transform, bottom;
  transition-duration: 0.2s;
  transition-timing-function: ease-in-out;
}
#acti-parameter-container .parameter-container[par-type=dropdown]:nth-child(odd) {
  border-right: solid var(--line) var(--COL-TE);
}
#acti-parameter-container .parameter-container[par-type=dropdown]:hover .remove {
  visibility: visible;
}
#acti-parameter-container .parameter-container[par-type=dropdown]:hover .remove:hover {
  color: var(--COL-TE);
}
#acti-parameter-container .parameter-container[par-select=single] .options {
  padding: unset;
}
#acti-parameter-container .parameter-container[par-select=single] .option {
  padding: var(--blu);
  margin: 0;
  height: calc(var(--blu) * 3.2);
  border-bottom: solid var(--line) var(--COL-TE);
}
#acti-parameter-container .parameter-container[par-select=single] .option:last-child {
  border: none;
}
#acti-parameter-container .parameter-container[par-select=single] .option.active:hover {
  cursor: default;
}
#acti-parameter-container .parameter-container[par-select=single].even .options {
  grid-template-columns: repeat(2, 1fr);
}
#acti-parameter-container .parameter-container[par-select=single].odd .options {
  grid-template-columns: repeat(2, 1fr);
}
#acti-parameter-container .parameter-container[par-select=multi] .option.active:hover {
  color: var(--CF-RED);
}
#acti-parameter-container .parameter-container[par-select=multi] .option.active::after {
  content: "Remove";
  display: none;
  color: var(--CF-RED);
  font-size: var(--n-fs);
  position: absolute;
  top: 0;
  right: calc(0px - var(--blu));
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) calc(var(--blu) * 2));
  padding-left: calc(var(--blu) * 2);
  padding-right: var(--blu);
  padding-top: calc(var(--blu) * 0.14);
}
#acti-parameter-container .parameter-container[par-select=multi] .option.active:hover::after {
  display: unset;
}
#acti-parameter-container .parameter-container[par-value=""] .all-no:hover {
  color: var(--COL-HO);
}
#acti-parameter-container .parameter-container[par-value="0"] .less::before,
#acti-parameter-container .parameter-container[par-value="100"] .more::before,
#acti-parameter-container .parameter-container[par-value="0"] .less .drag-area,
#acti-parameter-container .parameter-container[par-value="100"] .more .drag-area {
  display: none;
}
#acti-parameter-container .parameter-container[par-value="1"] .less::before,
#acti-parameter-container .parameter-container[par-value="2"] .less::before {
  right: unset;
  left: calc(0px - var(--blu) * 0.9);
}
#acti-parameter-container .parameter-container[par-value="99"] .more::before,
#acti-parameter-container .parameter-container[par-value="98"] .more::before {
  left: unset;
  right: calc(0px - var(--blu) * 0.1);
}

#acti-parameter-dropdown {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
#acti-parameter-dropdown .end-cap {
  pointer-events: none;
  cursor: pointer;
  border: none;
  border-top: solid var(--line) var(--COL-TE);
}
#acti-parameter-dropdown .end-cap:nth-of-type(odd),
#acti-parameter-dropdown .end-cap:nth-child(1) {
  display: none;
}

#idle-parameter-container {
  padding: var(--blu);
  border-top: solid var(--line) var(--COL-TE);
  min-height: calc(var(--blu) * 12);
}
#idle-parameter-container .remove, #idle-parameter-container .labels, #idle-parameter-container .active, #idle-parameter-container .select-area, #idle-parameter-container .options, #idle-parameter-container .track {
  display: none;
}
#idle-parameter-container .parameter-container {
  cursor: pointer;
  float: left;
  clear: none;
  padding-right: calc(var(--blu) * 0.3);
}
#idle-parameter-container .parameter-container * {
  font-size: var(--p-fs);
  line-height: var(--p-lh);
}
#idle-parameter-container .parameter-container:not(:last-child) .title::after {
  content: ",";
  display: inline-block;
}
#idle-parameter-container .parameter-container.unequal * {
  color: var(--COL-TE);
}
#idle-parameter-container .parameter-container.unequal.reset * {
  color: var(--CF-RED);
}
#idle-parameter-container .parameter-container.unequal *::after,
#idle-parameter-container .parameter-container.unequal.reset *::after {
  color: var(--COL-TE);
}
#idle-parameter-container .parameter-container:hover * {
  color: var(--COL-HO);
}

#idle-parameters {
  margin-top: calc(var(--blu) * 0.25);
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Related Fonts view */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#related-fonts-container {
  display: none;
  position: relative;
  margin-top: calc(100vh - var(--navi-outer));
  margin-bottom: calc(0px - var(--line));
  width: 100%;
  overflow-x: hidden;
}

#related-navi-container {
  right: calc(var(--wi-settings) - var(--wi-related));
  width: var(--wi-related);
  visibility: hidden;
}

.related-open #related-navi-container {
  right: 0;
  visibility: visible;
}
.related-open #return-btn {
  right: var(--wi-related);
  visibility: visible;
}
.related-open #return-btn .arrow-container {
  transform: rotate(0deg);
}
.related-open #parameter-navi-container {
  right: calc(var(--wi-related) - var(--wi-settings));
  visibility: hidden;
}
.related-open #select-sample-container .navigation::after {
  transform: rotate(-135deg);
  bottom: calc(var(--blu) * 0.8);
}
.related-open#view-font-settings #select-sample-container {
  visibility: hidden;
  right: var(--wi-related);
}

#return-btn {
  --stroke: calc(var(--h1-lh) * 0.06);
  visibility: hidden;
  display: flex;
  position: fixed;
  top: 0;
  right: var(--wi-settings);
  z-index: 600;
  height: var(--navi-outer);
  width: var(--navi-outer);
  border-right: solid var(--line) var(--CG-000);
  align-items: end;
  cursor: pointer;
}
#return-btn .arrow-container {
  transform: rotate(-180deg);
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 1s ease-in-out;
}
#return-btn .arrow-container::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: calc(100% - var(--blu) * 2);
  width: var(--stroke);
  background: var(--COL-TE);
}
#return-btn .arrow-container::after {
  --side: calc(var(--blu) * 2);
  content: "";
  border: solid var(--COL-TE) var(--stroke);
  border-bottom: 0;
  border-right: 0;
  width: var(--side);
  height: var(--side);
  position: absolute;
  top: calc(var(--blu) * 0.7);
  left: 50%;
  transform: rotate(45deg);
  transform-origin: top left;
}

#related-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: calc(100% + var(--line));
}

.related-container {
  --capital-height: calc(var(--vw) * 7);
  display: grid;
  position: relative;
  align-items: end;
  border-bottom: solid var(--line) var(--COL-TE);
  border-right: solid var(--line) var(--COL-TE);
  cursor: pointer;
  overflow: hidden;
  height: calc(var(--blu) * 4 + 1px * var(--capital-height) * 2);
  min-height: 100%;
}
.related-container .type-sample-container {
  height: calc(100% - var(--blu) * 4);
  position: absolute;
  top: 0;
  left: var(--blu);
  width: calc(100% - var(--blu) * 2);
  border-bottom: solid var(--line) var(--COL-TE);
}
.related-container .type-sample-container .type-sample {
  white-space: nowrap;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 100%;
  /* font metrics */
  --fm-linegap: 0;
  /* compute font-size to get capital height equal desired font-size */
  --computedFontSize: (var(--capital-height) / var(--fm-capitalHeight));
  font-size: calc(var(--computedFontSize) * 1px);
  /* compute line-height: normal and content-area’s height */
  --lineheightNormal: (var(--fm-ascender) + var(--fm-descender) + var(--fm-linegap));
  --contentArea: (var(--lineheightNormal) * var(--computedFontSize));
  /* compute distance from the bottom of the capital letter to the bottom edge and distance from the top of the capital letter to the top edge */
  --distanceBottom: (var(--fm-descender));
  --distanceTop: (var(--fm-ascender) - var(--fm-capitalHeight));
  /* compute vertical-align */
  --valign: ((var(--distanceBottom) - var(--distanceTop)) * var(--computedFontSize));
  /* desired line-height */
  --line-height: 1em;
  line-height: calc((var(--line-height) * var(--capital-height) - var(--valign)) * 1px);
}
.related-container .type-sample-container .type-sample span {
  /* compute vertical-align */
  vertical-align: calc(var(--valign) * -1px);
}
.related-container .specs {
  display: flex;
  position: absolute;
  padding: var(--blu);
  width: 100%;
  bottom: 0;
  left: 0;
}
.related-container .specs a:hover {
  text-decoration: none;
}
.related-container .specs a::before {
  content: "Font details";
}
.related-container .specs .spec {
  font-size: var(--n-fs);
}
.related-container .specs .spec:not(:last-child) {
  padding-right: var(--blu);
  width: calc(var(--blu) * 20);
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.related-container .specs .spec:last-child {
  position: absolute;
  right: var(--blu);
}
.related-container.large {
  grid-column: span 4;
  --capital-height: calc(var(--vw) * 16);
}
.related-container.mediu {
  grid-column: span 2;
  --capital-height: calc(var(--vw) * 8);
}
.related-container.small {
  --capital-height: calc(var(--vw) * 4);
  height: calc(var(--blu) * 4 + 1px * var(--capital-height) * 3);
}
.related-container.small .spec a {
  position: absolute;
  bottom: var(--blu);
  right: var(--blu);
}
.related-container.small .spec a::before {
  content: "Details";
}
.related-container.small .spec:last-child {
  display: none;
}
.related-container.small .spec:nth-child(2) {
  width: 0;
  height: 0;
  overflow: hidden;
}
.related-container.small + .related-container.large, .related-container.small + .related-container.mediu, .related-container.mediu + .related-container.large {
  background: red;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Collection View */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#collection-header-container {
  position: relative;
  width: 100%;
  height: calc(100vh - var(--navi-outer) + var(--line));
}
#collection-header-container .coll-name {
  --capital-height: min(calc(var(--vw) * (20 - (var(--multiplier) * 0.9))), calc(var(--vh) * 30));
  text-align: center;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: absolute;
  top: calc(50% - var(--blu) * 2);
  left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  /* font metrics */
  --fm-linegap: 0;
  /* compute font-size to get capital height equal desired font-size */
  --computedFontSize: (var(--capital-height) / var(--fm-capitalHeight));
  font-size: calc(var(--computedFontSize) * 1px);
  /* compute line-height: normal and content-area’s height */
  --lineheightNormal: (var(--fm-ascender) + var(--fm-descender) + var(--fm-linegap));
  --contentArea: (var(--lineheightNormal) * var(--computedFontSize));
  /* compute distance from the bottom of the capital letter to the bottom edge and distance from the top of the capital letter to the top edge */
  --distanceBottom: (var(--fm-descender));
  --distanceTop: (var(--fm-ascender) - var(--fm-capitalHeight));
  /* compute vertical-align */
  --valign: ((var(--distanceBottom) - var(--distanceTop)) * var(--computedFontSize));
  /* desired line-height */
  --line-height: 1em;
  line-height: calc((var(--line-height) * var(--capital-height) - var(--valign)) * 1px);
}
#collection-header-container .coll-name span {
  /* apply font-family */
  font-family: var(--main-dynamic-font);
  /* compute vertical-align */
  vertical-align: calc(var(--valign) * -1px);
}
#collection-header-container .coll-specs {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-column-gap: var(--blu);
  padding-left: var(--blu);
  padding-right: var(--blu);
  padding-bottom: var(--blu);
}
#collection-header-container .coll-specs div:nth-last-child(2) {
  grid-column: span 3;
  padding-right: calc(var(--blu) * 1);
}
#collection-header-container .coll-specs .down-btn {
  position: absolute;
  width: calc(var(--blu) * 4);
  height: calc(var(--blu) * 4);
  bottom: 0;
  right: 0;
  cursor: pointer;
}
#collection-header-container .coll-specs .down-btn::after {
  content: "";
  width: calc(var(--n-fs) * 1);
  height: calc(var(--n-fs) * 1);
  transform: rotate(45deg);
  border-bottom: solid var(--line) var(--COL-TE);
  border-right: solid var(--line) var(--COL-TE);
  position: absolute;
  right: calc(var(--blu) * 1);
  bottom: calc(var(--blu) * 1.2);
  transition-property: bottom;
  transition-duration: 0.2s;
  transition-timing-function: ease-in-out;
}
#collection-header-container .coll-specs .down-btn:hover::after {
  bottom: calc(var(--blu) * 1.5);
}
#collection-header-container .coll-specs a[href=""], #collection-header-container .coll-specs a[href="#"] {
  text-decoration: none;
  pointer-events: none;
}

#collection-overview-container {
  border-top: solid var(--line) var(--COL-TE);
}
#collection-overview-container #coll-overview-list .coll-sample-container {
  position: relative;
  overflow: hidden;
  height: calc(var(--blu) * 13);
  border-bottom: solid var(--line) var(--COL-TE);
}
#collection-overview-container #coll-overview-list .coll-sample-container .coll-sample-navi {
  display: flex;
  flex-direction: row-reverse;
  font-size: var(--n-fs);
  line-height: var(--n-lh);
  position: absolute;
  bottom: var(--blu);
  right: var(--blu);
  z-index: 50;
  text-align: right;
}
#collection-overview-container #coll-overview-list .coll-sample-container .coll-sample-navi div {
  padding-left: calc(var(--blu) * 0.5);
}
#collection-overview-container #coll-overview-list .coll-sample-container .button {
  --side: calc(var(--blu) * 3);
  height: var(--side);
  position: absolute;
  top: 0;
  border-left: solid var(--COL-TE) var(--line);
  border-bottom: solid var(--COL-TE) var(--line);
  display: none;
}
#collection-overview-container #coll-overview-list .coll-sample-container .button:hover {
  background-color: var(--COL-HO);
  cursor: pointer;
}
#collection-overview-container #coll-overview-list .coll-sample-container .button.save-this-font {
  right: 0;
  padding: 0;
  width: var(--side);
  background-image: url("/assets/graphics/heart-02.svg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 60%;
}
#collection-overview-container #coll-overview-list .coll-sample-container .button.settings {
  padding: 0 calc(var(--blu) * 1);
  right: var(--side);
  align-items: center;
}
#collection-overview-container #coll-overview-list .coll-sample-container .coll-sample {
  position: absolute;
  display: block;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  --capital-height: calc(var(--bluR) * 6);
  /* font metrics */
  --fm-linegap: 0;
  /* compute font-size to get capital height equal desired font-size */
  --computedFontSize: (var(--capital-height) / var(--fm-capitalHeight));
  font-size: calc(var(--computedFontSize) * 1px);
  /* compute line-height: normal and content-area’s height */
  --lineheightNormal: (var(--fm-ascender) + var(--fm-descender) + var(--fm-linegap));
  --contentArea: (var(--lineheightNormal) * var(--computedFontSize));
  /* compute distance from the bottom of the capital letter to the bottom edge and distance from the top of the capital letter to the top edge */
  --distanceBottom: (var(--fm-descender));
  --distanceTop: (var(--fm-ascender) - var(--fm-capitalHeight));
  /* compute vertical-align */
  --valign: ((var(--distanceBottom) - var(--distanceTop)) * var(--computedFontSize));
  /* desired line-height */
  --line-height: 1em;
  line-height: calc((var(--line-height) * var(--capital-height) - var(--valign)) * 1px);
}
#collection-overview-container #coll-overview-list .coll-sample-container .coll-sample input {
  outline: none;
  border-radius: 0;
  border: none;
  width: 100%;
  background: none;
  font-size: calc(var(--computedFontSize) * 1px);
  text-indent: calc(var(--blu) * 1);
  /* compute vertical-align */
  vertical-align: calc(var(--valign) * -1px);
}
#collection-overview-container #coll-overview-list .coll-sample-container .coll-sample input::-moz-selection {
  background: none;
  color: var(--CG-033);
}
#collection-overview-container #coll-overview-list .coll-sample-container .coll-sample input::selection {
  background: none;
  color: var(--CG-033);
}
#collection-overview-container #coll-overview-list .coll-sample-container .btn {
  cursor: pointer;
  color: var(--CG-033);
  display: inline-block;
}
#collection-overview-container #coll-overview-list .coll-sample-container .btn:hover {
  color: var(--CG-057);
}
#collection-overview-container #coll-overview-list .coll-sample-container .btn.active {
  text-decoration: underline;
  pointer-events: none;
}
#collection-overview-container #coll-overview-list .coll-sample-container:hover {
  background: var(--COL-HI);
}
#collection-overview-container #coll-overview-list .coll-sample-container:hover .button {
  display: unset;
}
#collection-overview-container #coll-overview-list .coll-sample-container:hover .button.settings {
  display: flex;
}
#collection-overview-container #coll-overview-list .coll-sample-container:hover::after {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, var(--CG-069) calc(100% - var(--blu) * 3));
}
#collection-overview-container #coll-overview-list .coll-sample-container[save-state=yes] .save-this-font {
  display: unset;
  background-image: url("/assets/graphics/heart-02-red.svg");
}

#collection-navi-container {
  border-left: solid var(--line) var(--COL-TE);
  width: calc(50% + var(--line) * 0.5);
}
#collection-navi-container h1 {
  max-width: calc(100% - var(--blu) * 10);
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

#coll-overview-navi {
  position: -webkit-sticky;
  position: sticky;
  display: flex;
  border-bottom: solid var(--line) var(--COL-TE);
  top: calc(var(--navi-outer) - var(--line));
  background: var(--COL-BG);
  z-index: 100;
}
#coll-overview-navi h9 {
  text-transform: uppercase;
  padding: var(--blu);
  border-right: solid var(--line) var(--COL-TE);
  width: calc(var(--blu) * 7);
}
#coll-overview-navi .family {
  position: relative;
  padding: var(--blu);
  cursor: pointer;
  height: calc(var(--blu) * 3);
  line-height: calc(var(--blu) * 1.1);
  white-space: nowrap;
  border-right: solid var(--line) var(--COL-TE);
  margin: 0;
}
#coll-overview-navi .family:hover {
  background: var(--COL-HI);
}
#coll-overview-navi .family.active {
  background: var(--COL-HI);
  cursor: default;
}

#collection-buy-container {
  position: relative;
  margin-bottom: calc(0px - var(--line));
  width: 100%;
  height: calc(var(--blu) * 30);
  background: var(--COL-HO);
  text-align: center;
}
#collection-buy-container * {
  text-decoration: none;
}
#collection-buy-container a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: var(--blu);
}
#collection-buy-container h1 {
  font-size: 20.5vw;
  line-height: 1em;
  text-align: justify;
  position: relative;
  left: calc(0px - var(--blu) * 0.7);
  width: calc(100% + var(--blu) * 2);
  white-space: nowrap;
  margin-left: calc(0px - 1.4vw);
  margin-top: calc(0px - 0.6vw);
}
#collection-buy-container p {
  position: absolute;
  bottom: var(--blu);
  left: 0;
  width: 100%;
}
#collection-buy-container:hover {
  background: var(--COL-AC);
}

.coll-overview-family,
.coll-name.svg-container {
  display: none !important;
}

.coll-overview-family.active,
.coll-name.svg-container.active {
  display: block !important;
}

#view-collection #return-btn {
  right: 50%;
  visibility: visible;
}
#view-collection #return-btn .arrow-container {
  transform: rotate(-90deg);
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Search View */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#view-results {
  padding-top: var(--navi-outer);
}
#view-results .separator {
  grid-column: span 4;
  margin: calc(0px - var(--line)) 0 0;
}
#view-results .related-container.large .spec:not(:last-child) {
  width: calc((100% - var(--blu) * 2) * 0.25);
  margin-right: var(--blu);
}
#view-results .related-container.small .spec:last-child {
  display: unset;
  width: unset;
  height: unset;
  position: unset;
}

#search-navi-container {
  border-left: solid var(--line) var(--COL-TE);
  width: calc(50% + var(--line) * 0.5);
}

#results-container {
  overflow-x: hidden;
  margin-bottom: calc(0px - var(--line));
}

#no-result-container {
  width: 100%;
  height: calc(100vh - var(--navi-outer) + var(--line));
  position: relative;
  grid-column: 1/-1;
  display: flex;
  align-items: center;
}
#no-result-container p {
  width: 100%;
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 0;
  padding: var(--blu);
}
#no-result-container h1 {
  width: 100%;
  text-align: center;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Info View */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#info-intro {
  padding: var(--blu);
  margin-bottom: var(--h1-lh);
}
#info-intro h2 {
  margin-bottom: var(--h1-lh);
}

#index-container {
  margin-bottom: calc(0px - var(--line));
  padding-top: calc(var(--navi-outer) - var(--line));
}

#index-navi {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(16, 1fr);
  padding-left: var(--blu);
  padding-right: var(--blu);
  border-bottom: solid var(--line) var(--COL-TE);
  height: calc(var(--blu) * 2.5);
  cursor: pointer;
  border-top: solid var(--line) var(--COL-TE);
  font-size: var(--n-fs);
  line-height: var(--n-lh);
  font-weight: 400;
  text-transform: uppercase;
  position: -webkit-sticky;
  position: sticky;
  top: calc(var(--navi-outer) - var(--line));
  background: var(--CG-093);
}
#index-navi div {
  height: calc(var(--blu) * 0.9);
  align-self: center;
  position: relative;
}
#index-navi div:hover {
  color: var(--CG-069);
}
#index-navi div:hover::after {
  border-color: var(--CG-069);
}
#index-navi div::after {
  content: "";
  width: calc(var(--n-fs) * 1);
  height: calc(var(--n-fs) * 1);
  transform: rotate(45deg);
  border-bottom: solid var(--line) var(--COL-TE);
  border-right: solid var(--line) var(--COL-TE);
  position: relative;
  transition-property: transform, bottom;
  transition-duration: 0.2s;
  transition-timing-function: ease-in-out;
  display: inline-block;
  left: var(--blu);
  bottom: calc(var(--blu) * 0.2);
}
#index-navi div.reverse::after {
  transform: rotate(225deg);
  bottom: calc(var(--blu) * -0.2);
}
#index-navi div:nth-child(1) {
  pointer-events: none;
}
#index-navi div:nth-child(1)::after {
  display: none;
}

#index-list {
  width: 100%;
  display: block;
}
#index-list tbody {
  width: 100%;
  display: block;
}
#index-list tr {
  display: grid;
  grid-template-columns: repeat(16, 1fr);
  padding-left: var(--blu);
  padding-right: var(--blu);
  border-bottom: solid var(--line) var(--COL-TE);
  height: calc(var(--blu) * 2.5);
  cursor: pointer;
}
#index-list tr td {
  height: calc(var(--blu) * 1.35);
  margin-top: calc(0px - var(--blu) * 0.35);
  align-self: center;
}
#index-list tr.author-header {
  height: var(--navi-outer);
}
#index-list tr.author-header td {
  height: 100%;
  padding-top: calc(var(--blu) * 0.5);
  margin: unset;
  grid-column: span 16 !important;
  text-align: center;
}
#index-list tr.author-item:not([status=open]) {
  display: none;
}
#index-list tr.author-item td {
  text-align: left;
  font-size: var(--p-fs);
  line-height: var(--p-lh);
  font-weight: 400;
}
#index-list tr:hover {
  background: var(--CG-100);
}

/* Foundry */
#index-list tr > td:nth-child(1), #index-navi div:nth-child(1) {
  grid-column: span 3;
}

/* Collection */
#index-list tr > td:nth-child(2), #index-navi div:nth-child(2) {
  grid-column: span 3;
}

/* Family */
#index-list tr > td:nth-child(3), #index-navi div:nth-child(3) {
  grid-column: span 6;
}

/* Collection size */
#index-list tr > td:nth-child(4), #index-navi div:nth-child(4) {
  grid-column: span 2;
}

/* Styles */
#index-list tr > td:nth-child(5), #index-navi div:nth-child(5) {
  grid-column: span 2;
}

body.sorting {
  overflow-y: hidden;
}
body.sorting #index-list tr {
  border-color: var(--CG-069);
}
body.sorting #index-list * {
  color: var(--CG-069);
}

.animated-loader {
  display: none;
  position: fixed;
  width: var(--navi-outer);
  height: var(--navi-outer);
  z-index: 600;
  -webkit-animation: rotating 2s linear infinite;
          animation: rotating 2s linear infinite;
}

.animated-loader::before,
.animated-loader::after {
  content: "";
  display: block;
  width: var(--blu);
  height: var(--blu);
  background: var(--CG-069);
  position: absolute;
  border-radius: 100vh;
  left: 50%;
  transform: translateX(-50%);
}

.animated-loader::before {
  top: var(--blu);
}

.animated-loader::after {
  bottom: var(--blu);
}

#load-related-container .animated-loader {
  top: calc(50% - var(--navi-outer) * 0.2);
  left: calc(50% - var(--navi-outer) * 0.2);
  z-index: 700;
}

#load-related-container.loading .animated-loader {
  display: block;
}
#load-related-container.loading .interaction-blocker {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 600;
}

@-webkit-keyframes rotating {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes rotating {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Info Edit */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#view-font-edit #settings-container #settings-preview .type-sample-container {
  height: calc(100% - var(--blu) * 2.9);
}
#view-font-edit #settings-container #settings-preview[edit-state=no] .type-sample-container.init {
  display: none;
}
#view-font-edit #settings-container #settings-preview[edit-state=yes] .type-sample-container {
  height: calc(50% - var(--blu) * 1.45);
}
#view-font-edit #settings-container #settings-preview[edit-state=yes] .type-sample-container.init {
  border-bottom: solid var(--line) var(--COL-TE);
  background: var(--CG-063);
}
#view-font-edit #settings-container #settings-preview[edit-state=yes] .type-sample-container.sample {
  top: unset;
  bottom: 0;
}
#view-font-edit #settings-container #settings-preview[edit-state=yes] #font-names-container .initial {
  background: var(--CG-063);
}
#view-font-edit #settings-container #settings-preview[edit-state=yes] #font-names-container:not(.unequal) {
  background: var(--CG-063);
}
#view-font-edit #settings-panel #parameter-navi-container .navi-sub-container select,
#view-font-edit #settings-panel #parameter-navi-container .navi-sub-container input {
  background: none;
  border: none;
  text-transform: inherit;
  font-size: inherit;
}
#view-font-edit #settings-panel #parameter-navi-container .navi-sub-container select option,
#view-font-edit #settings-panel #parameter-navi-container .navi-sub-container input option {
  color: red;
}
#view-font-edit #settings-panel #parameter-settings-container {
  height: calc(100% - var(--navi-outer) - var(--qlh));
}
#view-font-edit #settings-panel #parameter-settings-container #acti-parameter-container .parameter-container .labels input,
#view-font-edit #settings-panel #parameter-settings-container #acti-parameter-container .parameter-container .labels select {
  background: none;
  border: none;
  font-size: inherit;
  color: var(--CG-057);
  padding-left: var(--blu);
  display: inline;
  cursor: pointer;
}
#view-font-edit #settings-panel #parameter-settings-container #acti-parameter-container .parameter-container .labels input:hover,
#view-font-edit #settings-panel #parameter-settings-container #acti-parameter-container .parameter-container .labels select:hover {
  color: var(--CG-069);
}
#view-font-edit #settings-panel #parameter-settings-container #acti-parameter-container .parameter-container .labels select option {
  width: 100px;
}
#view-font-edit #settings-panel #parameter-settings-container #acti-parameter-container .parameter-container .labels .remove {
  position: relative;
}
#view-font-edit #settings-panel #parameter-settings-container #idle-parameter-container .parameter-container:hover * {
  color: var(--CG-063);
}
#view-font-edit #settings-panel #queue-list {
  position: absolute;
  bottom: 0;
  width: 100%;
  border-spacing: 0;
  background: var(--CG-069);
  z-index: 200;
}
#view-font-edit #settings-panel #queue-list tr * {
  font-weight: 400;
  font-style: normal;
  font-size: var(--n-fs);
  line-height: var(--n-lh);
  margin-left: calc(0px - var(--n-lh) * 0.08);
  margin-top: calc(0px - var(--n-lh) * 0.07);
  text-align: left;
  color: var(--COL-TE);
  border-top: solid var(--line) var(--COL-TE);
  padding-top: calc(var(--blu) * 0.25);
  padding-bottom: calc(var(--blu) * 0.25);
}
#view-font-edit #settings-panel #queue-list tr * input {
  background: none;
  border: none;
  color: var(--CG-057);
  cursor: pointer;
}
#view-font-edit #settings-panel #queue-list tr *:nth-child(1) {
  padding-left: calc(var(--blu) * 1);
}
#view-font-edit #settings-panel #queue-list tr *:nth-child(3) {
  text-align: right;
  padding-right: calc(var(--blu) * 1);
}
#view-font-edit #settings-panel #queue-list tr th {
  text-transform: uppercase;
  padding-top: calc(var(--blu) * 0.5);
  padding-bottom: calc(var(--blu) * 0.5);
}
#view-font-edit #settings-panel #queue-list tr th:nth-child(3) {
  color: transparent;
}
#view-font-edit #settings-panel #queue-list tr:not(:nth-child(1)):hover {
  background: var(--CG-093);
}
#view-font-edit #settings-panel #queue-list tr:not(:nth-child(1)):hover input {
  color: var(--CF-RED);
}
#view-font-edit #settings-panel #queue-list tr:not(:nth-child(1)):hover input:hover {
  color: var(--COL-TE);
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Login */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#view-login #navi-container #navi-save, #view-login #navi-container #navi-sear, #view-login #navi-container #navi-logi {
  display: none;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Profile */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#view-profile {
  --transDur: 0.5s;
}
#view-profile #navi-container #navi-save, #view-profile #navi-container #navi-sear, #view-profile #navi-container #navi-logi {
  display: none;
}
#view-profile #profile-navi-container {
  border-left: solid var(--line) var(--COL-TE);
  width: calc(37.5% + var(--line));
  transition-property: width;
  transition-duration: var(--transDur);
  transition-timing-function: ease-in-out;
}
#view-profile #profile-container {
  --colWidth: calc(100vw / 8 * 2);
  --navHeight: calc((var(--blu) * 2) + (var(--p-fs) * 1));
  position: fixed;
  bottom: 0;
  left: 0;
  height: calc(100% - var(--navi-outer));
  width: 100vw;
  overflow: hidden;
}
#view-profile #profile-container .profile-grid {
  display: flex;
  height: 100%;
  width: 100%;
}
#view-profile #profile-container .profile-grid .user-column {
  display: block;
  width: 62.5vw;
  height: 100%;
  overflow: hidden;
  border-right: solid var(--line) var(--COL-TE);
}
#view-profile #profile-container .profile-grid .user-column .user-container {
  width: 62.5vw;
  height: 100%;
  display: grid;
  grid-template-rows: 1fr auto;
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-name {
  border-bottom: solid var(--line) var(--COL-TE);
  position: relative;
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-name span {
  font-size: calc(var(--blu) * 10);
  line-height: 1;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding-bottom: calc(var(--blu) * 1);
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item {
  padding-left: calc(var(--blu) * 1);
  padding-top: calc(var(--blu) * 1);
  overflow: hidden;
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item .title .edit {
  display: none;
  cursor: pointer;
  color: var(--CF-RED);
  margin-left: calc(var(--blu) * 1);
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item .title .edit:hover {
  color: var(--COL-TE);
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item > .content {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item .overlay .popup-container {
  z-index: 200;
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item .overlay .popup-container form select {
  border: none;
  border-radius: 0;
  width: 100%;
  display: block;
  grid-column: span 2;
  font-family: var(--univers);
  font-size: var(--h1-fs);
  line-height: var(--h1-lh);
  font-weight: 300;
  text-align: center;
  padding-top: calc(var(--h1-fs) * 0.15);
  height: var(--navi-outer);
  background: var(--CG-093);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item .overlay .popup-container form select option {
  font-size: var(--p-fs);
  line-height: var(--p-lh);
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item .overlay .popup-container form select:hover {
  background: var(--CG-100);
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item .overlay.open .popup-container {
  display: block;
}
#view-profile #profile-container .profile-grid .user-column .user-container .user-details .user-item:hover .title .edit {
  display: inline;
}
#view-profile #profile-container .profile-grid .collection-column {
  position: relative;
}
#view-profile #profile-container .profile-grid .collection-column .library-container {
  width: var(--colWidth);
  height: 100vh;
  overflow-y: scroll;
  position: fixed;
  top: 0;
  padding-top: calc(var(--navi-outer) + var(--navHeight) - var(--blu) * 0.15);
}
#view-profile #profile-container .profile-grid .collection-column .library-container:not(:first-child) {
  border-left: solid var(--line) var(--COL-TE);
  margin-left: calc(var(--colWidth) - var(--line));
}
#view-profile #profile-container .profile-grid .collection-column .library-container .library-container {
  display: none;
}
#view-profile #profile-container .profile-grid .collection-column .library-container .active {
  background: var(--COL-HI);
}
#view-profile #profile-container .profile-grid .collection-column .library-container .active > .library-container {
  display: unset;
}
#view-profile #profile-container .profile-grid .collection-column .library-container .header, #view-profile #profile-container .profile-grid .collection-column .library-container .footer {
  position: fixed;
  width: calc(var(--colWidth) - var(--line));
  height: var(--navHeight);
  margin-left: 0;
  background: var(--COL-BG);
  padding: calc(var(--blu) * 1);
  line-height: 1;
}
#view-profile #profile-container .profile-grid .collection-column .library-container .header {
  top: var(--navi-outer);
  border-bottom: solid var(--line) var(--COL-TE);
}
#view-profile #profile-container .profile-grid .collection-column .library-container .footer {
  bottom: 0;
  border-top: solid var(--line) var(--COL-TE);
  cursor: pointer;
  color: var(--COL-HO);
}
#view-profile #profile-container .profile-grid .collection-column .library-container .footer:hover {
  background: var(--COL-HI);
  color: var(--COL-TE);
}
#view-profile #profile-container .profile-grid .collection-column .library-container .block {
  border-bottom: solid var(--line) var(--COL-TE);
  cursor: pointer;
}
#view-profile #profile-container .profile-grid .collection-column .library-container .block .name,
#view-profile #profile-container .profile-grid .collection-column .library-container .block .specs {
  display: block;
  width: var(--colWidth);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#view-profile #profile-container .profile-grid .collection-column .library-container .block:hover {
  background: var(--COL-HI);
}
#view-profile #profile-container .profile-grid .collection-column .library-container.collections-container {
  margin: 0;
}
#view-profile[profile=start] #profile-navi-container .navi-sub.profile {
  pointer-events: none;
  color: var(--COL-AC);
}
#view-profile[profile=library] #profile-navi-container {
  width: calc(50% + var(--line));
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Saved Fonts */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#saved-container {
  display: none;
}

.toggle-saved-fonts::before {
  content: "Show ";
}

.saved-list:not(#view-compass .saved-list) {
  position: absolute;
  top: var(--navi-outer);
  left: 0;
  /* height: calc(100% - (var(--navi-outer)*3)); Temp. change until "print" return */
  height: calc(100% - var(--navi-outer) * 2);
  width: 100%;
  padding: var(--blu);
  overflow: scroll;
}

.saved-header {
  position: absolute;
  height: var(--navi-outer);
  border-bottom: solid var(--line) var(--CG-000);
  top: 0;
  left: 0;
  width: 100%;
  padding: var(--blu);
}

.saved-sub-navi {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}
.saved-sub-navi .sub-nav {
  padding: var(--blu);
  text-align: center;
  border-top: solid var(--line) var(--CG-000);
  height: var(--navi-outer);
  cursor: pointer;
}
.saved-sub-navi .sub-nav:hover {
  background: var(--CG-057);
}

.saved-font {
  position: relative;
  padding-bottom: var(--blu);
  cursor: pointer;
}
.saved-font .sf-remove {
  visibility: hidden;
  position: absolute;
  color: var(--CF-RED);
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  top: 0;
  right: 0;
}
.saved-font .sf-remove:hover {
  color: var(--CG-000);
}

.saved-font:hover .sf-remove {
  visibility: visible;
}
.saved-font:hover *:not(.sf-remove) {
  color: var(--CG-057);
}

.sf-none-message {
  display: none;
  position: absolute;
  top: var(--navi-outer);
  left: 0;
  padding: var(--blu);
}
.sf-none-message h9 {
  display: block;
  margin-bottom: var(--n-lh);
}

body:not(#view-compass) .sf-none-message.show {
  display: block;
}

#view-compass #saved-container {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  display: block;
  position: absolute;
  width: 100%;
  height: calc(100% - var(--navi-outer));
  bottom: 0;
  left: 0;
  overflow: hidden;
}
#view-compass #saved-container .saved-font {
  display: none;
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 400;
  width: var(--blu);
  height: var(--blu);
  cursor: pointer;
  z-index: 400;
}
#view-compass #saved-container .saved-font .sf-family {
  color: var(--CG-100);
}
#view-compass #saved-container .saved-font .sf-foundry {
  display: none;
}
#view-compass #saved-container .saved-font .sf-remove {
  top: calc(var(--blu) * 1);
  color: var(--CF-RIN);
}
#view-compass #saved-container .saved-font .sf-remove:hover {
  color: var(--CG-100);
}
#view-compass #saved-container .saved-font * {
  visibility: hidden;
  font-size: var(--n-fs);
  line-height: var(--n-lh);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  height: -webkit-max-content;
  height: -moz-max-content;
  height: max-content;
  position: absolute;
  padding-top: calc(var(--blu) * 0.2);
}
#view-compass #saved-container .saved-font.left * {
  padding-left: calc(var(--blu) * 1.5);
  left: 0;
}
#view-compass #saved-container .saved-font.right * {
  padding-right: calc(var(--blu) * 1.5);
  right: 0;
}
#view-compass #saved-container .saved-font::before {
  content: "";
  display: block;
  width: var(--blu);
  height: var(--blu);
  background: var(--CF-RED);
  position: absolute;
  border-radius: 100vh;
  top: 0;
  left: 0;
}
#view-compass #saved-container .saved-font:hover {
  mix-blend-mode: difference;
}
#view-compass #saved-container .saved-font:hover * {
  visibility: visible;
}
#view-compass #saved-container .saved-font:hover::before {
  background: var(--CG-100);
}
#view-compass .saved-header,
#view-compass .saved-sub-navi {
  display: none;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
body[saved=open] #collection-navi-container {
  right: var(--wi-saved);
  width: calc(50% - var(--wi-saved) / 2);
}
body[saved=open] #collection-header-container,
body[saved=open] #collection-overview-container {
  width: calc(100% - var(--wi-saved));
}
body[saved=open] #collection-buy-container {
  width: calc(100% - var(--wi-saved));
}
body[saved=open] #collection-buy-container h1 {
  font-size: 17.8vw;
  margin-left: calc(0px - 1.2vw);
  margin-top: calc(0px - 0.5vw);
}
body[saved=open] #settings-container {
  width: calc(100% - var(--wi-saved));
}
body[saved=open] #return-btn {
  right: calc(var(--wi-settings) + var(--wi-saved));
}
body[saved=open] #parameter-navi-container {
  right: var(--wi-saved);
}
body[saved=open] #search-navi-container {
  right: var(--wi-saved);
  width: calc(50% + var(--line) * 0.5 - var(--wi-saved) * 0.5);
}
body[saved=open] #results-container {
  width: calc(100% - var(--wi-saved));
}
body[saved=open] #related-fonts-container {
  width: calc(100% - var(--wi-saved));
}
body[saved=open] #related-navi-container {
  right: var(--wi-saved);
  width: var(--wi-settings);
}
body[saved=open] .toggle-saved-fonts::before {
  content: "Hide ";
}

body[saved=open].related-open #related-navi-container {
  right: var(--wi-saved);
  width: calc(var(--wi-related) - var(--wi-saved) / 2);
  white-space: nowrap;
}
body[saved=open].related-open #return-btn {
  right: calc(var(--wi-related) + var(--wi-saved) / 2);
}
body[saved=open].related-open #parameter-navi-container {
  right: calc(var(--wi-related) + var(--wi-saved) / 2 - var(--wi-settings));
}

body[saved=open]#view-font-settings #select-sample-container {
  right: calc(var(--wi-settings) + var(--wi-saved));
}

body[saved=open].related-open#view-font-settings #select-sample-container {
  right: calc(var(--wi-related) + var(--wi-saved) / 2);
}

body:not(#view-compass)[saved=open] #saved-container {
  position: fixed;
  display: block;
  width: var(--wi-saved);
  height: 100vh;
  top: 0;
  right: 0;
  border-left: solid var(--line) var(--CG-000);
  background: var(--CG-033);
  z-index: 600;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Overlays */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.overlay {
  position: fixed;
  z-index: 600;
}
.overlay .overlay-content {
  display: none;
  z-index: 900;
}
.overlay .overlay-content .title {
  position: relative;
  width: 100%;
  border-bottom: solid var(--line) var(--CG-000);
  height: var(--navi-outer);
  padding: var(--blu);
  z-index: 100;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.overlay.open,
#search-container,
#login-container {
  position: fixed;
  display: flex;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  z-index: 900;
}

.overlay.open .overlay-content {
  display: block;
}
.overlay.open .info-open-btn {
  pointer-events: none;
}

.close-overlay-area {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100;
}

#login-start.hide {
  display: none;
}

/* Popups */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.popup-container {
  display: none;
  background: var(--CG-093);
  border: solid var(--line) var(--CG-000);
  width: 80%;
  max-width: calc(var(--blu) * 55);
}
.popup-container.green {
  background: var(--CF-GRE);
}
.popup-container.green .header .close:hover h1 {
  color: var(--CG-000);
  opacity: 0.5;
}
.popup-container .header {
  border-bottom: solid var(--line) var(--CG-000);
  display: grid;
  grid-template-columns: auto -webkit-max-content;
  grid-template-columns: auto max-content;
  height: var(--navi-outer);
  overflow: hidden;
}
.popup-container .header .title,
.popup-container .header .close {
  padding: calc(var(--blu) * 1);
  padding-bottom: 0;
}
.popup-container .header .close {
  border-left: solid var(--line) var(--CG-000);
  cursor: pointer;
}
.popup-container .header .close:hover h1 {
  color: var(--CG-069);
}
.popup-container .content {
  padding: calc(var(--blu) * 1);
}
.popup-container .footer {
  border-top: solid var(--line) var(--CG-000);
}
.popup-container .footer form input {
  border: none;
}
.popup-container .footer form input:not(.circ-btn) {
  width: 100%;
  margin-top: 0 !important;
}
.popup-container .footer form .form-submit {
  right: 0 !important;
}
.popup-container .footer form.grid-form {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  background: var(--CG-000);
  grid-gap: var(--line);
}
.popup-container .footer form.grid-form input:not(.half) {
  grid-column: span 2;
}
.popup-container .footer form.grid-form input.form-text[type=submit] {
  padding-top: calc(var(--h1-fs) * 0.2);
  background: var(--CG-069);
  cursor: pointer;
}
.popup-container .footer form.grid-form input.form-text[type=submit]:hover {
  background: var(--CF-GRE);
}
.popup-container.open {
  display: block;
}

/* Overlay – Search */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#search-container,
#login-container {
  display: none;
}
#search-container form,
#login-container form {
  width: 100%;
  display: flex;
  justify-content: center;
}

#search-container.open,
#login-container {
  display: flex;
}

#login-container {
  z-index: 0;
}
#login-container form {
  flex-direction: column;
  align-items: center;
  position: relative;
}
#login-container form input {
  margin-top: calc(0px - var(--line));
}
#login-container form .form-submit {
  position: absolute;
  bottom: 0;
  right: 10%;
  margin: var(--blu);
  transform: rotate(90deg);
}

#view-compass #search-container form {
  margin-top: var(--navi-outer);
}

.form-text {
  font-size: var(--h1-fs);
  line-height: var(--h1-lh);
  font-weight: 300;
  border: solid var(--line) var(--CG-000);
  text-align: center;
  height: var(--navi-outer);
  width: 80%;
  background: var(--CG-093);
  padding-top: calc(var(--h1-fs) * 0.25);
}

.form-text:focus {
  outline: none;
  background: var(--CG-100);
}

.form-text::-moz-placeholder {
  opacity: 1;
  color: var(--CG-069);
}

.form-text:-ms-input-placeholder {
  opacity: 1;
  color: var(--CG-069);
}

.form-text::placeholder {
  opacity: 1;
  color: var(--CG-069);
}

.form-text:focus::-moz-placeholder {
  color: var(--CG-093);
}

.form-text:focus:-ms-input-placeholder {
  color: var(--CG-093);
}

.form-text:focus::placeholder {
  color: var(--CG-093);
}

.form-submit {
  transform: translateX(calc(0px - 100% - var(--blu) * 2)) rotate(90deg);
  background: url("graphics/circ-arr.svg");
}

.form-text + .form-submit:hover {
  background-color: var(--CG-100);
}

.form-text:focus + .form-submit:hover {
  background-color: var(--CG-093);
}

div[role=status] {
  display: none;
}

.ui-autocomplete {
  background: var(--CG-093);
  width: 80% !important;
  border: solid var(--line) var(--CG-000);
  border-top: 0;
  z-index: 900;
}
.ui-autocomplete li {
  list-style-type: none;
  text-align: center;
  padding: calc(var(--blu) * 0.5);
  border-bottom: solid var(--line) var(--CG-000);
  font-size: var(--p-fs);
  line-height: var(--p-lh);
  cursor: pointer;
}
.ui-autocomplete li:hover {
  background: var(--CG-100);
}

/* Overlay – Info */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.info-open-btn {
  position: fixed;
  height: var(--navi-inner);
  width: var(--navi-inner);
  border: 0;
  padding: 0;
  background: url("graphics/circ-inf.svg") no-repeat center;
  cursor: pointer;
  border-radius: 100vh;
  margin: var(--blu);
  top: 0;
  right: 0;
  z-index: 600;
}

.info .overlay-content {
  position: relative;
  width: calc(var(--blu) * 50);
  background: var(--CG-093);
  border: solid var(--line) var(--CG-000);
}

.info-next-btn,
.info-prev-btn {
  position: absolute;
  top: 0;
  height: var(--navi-inner);
  width: var(--navi-inner);
  padding: 0;
  background: url("graphics/circ-inf.svg") no-repeat center;
  cursor: pointer;
  border-radius: 100vh;
  margin: var(--blu);
  z-index: 200;
}

.info-next-btn {
  background: url("graphics/circ-nex.svg") no-repeat center;
  right: 0;
}

.info-prev-btn {
  background: url("graphics/circ-pre.svg") no-repeat center;
  right: calc((var(--navi-inner) + var(--blu)) * 1);
}

.last .info-next-btn,
.first .info-prev-btn {
  pointer-events: none;
  opacity: 0.5;
}

.info-next-btn:hover,
.info-prev-btn:hover {
  background-color: var(--CG-100);
}

.info-slider {
  position: relative;
  width: 100%;
  height: calc(var(--blu) * 30);
}

.slide {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  padding: var(--blu);
  visibility: hidden;
}
.slide .image {
  width: calc(100% - var(--blu) * 2);
  position: absolute;
  bottom: var(--blu);
  left: var(--blu);
}
.slide .image svg {
  overflow: visible;
}

.slide.active {
  visibility: visible;
}

/* Overlay – Active */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
.overlay-active {
  overflow: hidden;
  background: var(--CG-033);
  color: var(--CG-000);
}
.overlay-active #navi-container {
  background: var(--CG-033);
  color: var(--CG-000);
}
.overlay-active #coll-overview-navi {
  background: var(--CG-033);
  color: var(--CG-000);
}
.overlay-active #coll-overview-navi .family.active {
  background: var(--CG-033);
}
.overlay-active #compass-container .marker {
  border: solid var(--line) var(--CG-000);
  mix-blend-mode: unset;
  opacity: 0;
  transition-duration: 0s;
  transition-delay: 0s;
}
.overlay-active #compass-container .blocker {
  opacity: 0;
  transition-duration: 0s;
  transition-delay: 0s;
}
.overlay-active #save-this-font svg * {
  fill: var(--CG-014);
}
.overlay-active #index-navi {
  background: var(--CG-033);
}
.overlay-active #footer-container {
  background: var(--CG-033);
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Footer */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#footer-container {
  position: relative;
  height: calc(100vh - var(--navi-outer) + var(--line) * 2);
  width: 100%;
  border-top: solid var(--line) var(--CG-000);
  padding: var(--blu);
  background: var(--CF-RED);
}
#footer-container * {
  color: var(--CG-000);
}
#footer-container #footer-header h2 {
  max-width: calc(var(--blu) * 70);
}
#footer-container #footer-header p {
  margin-bottom: var(--p-lh);
}
#footer-container #footer-footer {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  position: absolute;
  bottom: var(--blu);
  width: calc(100% - var(--blu) * 2);
}
#footer-container #footer-footer a:hover {
  color: var(--CG-000);
  opacity: 0.5;
}
#footer-container #footer-footer > div:last-child {
  position: absolute;
  right: 0;
}

#donate-button-container {
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#donate-button-container #donate-button img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

#donate-button-container:hover {
  opacity: 0.5;
}

.separator {
  width: calc(100% + var(--blu) * 2);
  left: calc(0px - var(--blu));
  position: relative;
  border-bottom: solid var(--line) var(--CG-000);
  margin-top: calc(var(--blu) * 5);
  margin-bottom: var(--blu);
}

#footer-signup {
  max-width: calc(var(--blu) * 70);
}
#footer-signup input[type=email] {
  width: 100%;
  border: none;
  outline: none;
  border-radius: 0;
  background: none;
  font-size: var(--p-fs);
  line-height: var(--p-lh);
  font-weight: 400;
  height: calc(var(--blu) * 2);
  min-height: calc(var(--blu) * 2);
  resize: vertical;
  transition: height 0.3s ease-out;
}
#footer-signup input[type=email]::-moz-placeholder {
  color: var(--CG-000);
  opacity: 0.5;
}
#footer-signup input[type=email]:-ms-input-placeholder {
  color: var(--CG-000);
  opacity: 0.5;
}
#footer-signup input[type=email]::placeholder {
  color: var(--CG-000);
  opacity: 0.5;
}
#footer-signup input[type=submit],
#footer-signup input[type=button] {
  border: none;
  border-radius: 0;
  background: none;
  font-size: var(--n-fs);
  line-height: var(--n-lh);
  font-weight: 400;
  cursor: pointer;
}

body[saved=open]:not(#view-info) #footer-container {
  width: calc(100% - var(--wi-saved));
}

#view-signup #navi-container,
.footer-active #navi-container {
  background: var(--CF-RED);
}
#view-signup #navi-container,
#view-signup #collection-navi-container,
.footer-active #navi-container,
.footer-active #collection-navi-container {
  border-color: var(--CG-000);
  color: var(--CG-000) !important;
}
#view-signup #navi-container *,
#view-signup #collection-navi-container *,
.footer-active #navi-container *,
.footer-active #collection-navi-container * {
  color: var(--CG-000) !important;
}
#view-signup #return-btn .arrow-container::before,
.footer-active #return-btn .arrow-container::before {
  background: var(--CG-000);
}
#view-signup #return-btn .arrow-container::after,
.footer-active #return-btn .arrow-container::after {
  border-color: var(--CG-000);
}
#view-signup #return-btn:hover .arrow-container,
.footer-active #return-btn:hover .arrow-container {
  opacity: 0.5 !important;
}
#view-signup #return-btn:hover .arrow-container::before,
.footer-active #return-btn:hover .arrow-container::before {
  background: var(--CG-000);
}
#view-signup #return-btn:hover .arrow-container::after,
.footer-active #return-btn:hover .arrow-container::after {
  border-color: var(--CG-000);
}
#view-signup .navi-sub,
#view-signup #navi-container :hover,
#view-signup #navi-container *:hover,
#view-signup #navi-comp:hover *,
#view-signup #return-btn:hover *,
.footer-active .navi-sub,
.footer-active #navi-container :hover,
.footer-active #navi-container *:hover,
.footer-active #navi-comp:hover *,
.footer-active #return-btn:hover * {
  color: var(--CG-000) !important;
}
#view-signup #return-btn:hover::after,
.footer-active #return-btn:hover::after {
  border-color: var(--CG-000) !important;
}
#view-signup .navi-sub:hover,
#view-signup #navi-comp:hover,
#view-signup #return-btn:hover,
.footer-active .navi-sub:hover,
.footer-active #navi-comp:hover,
.footer-active #return-btn:hover {
  opacity: 0.5 !important;
}

#view-signup {
  background: var(--CF-RED);
}

#view-font-settings:not(.related-open) #footer-container {
  display: none;
}

/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Mobile Message */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
#mobile-message {
  display: none;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr auto;
  grid-gap: var(--line);
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100%;
  background: var(--CG-000);
  top: 0;
  left: 0;
}
#mobile-message > div {
  padding: var(--blu);
  background: var(--CF-RED);
}
#mobile-message h2 {
  padding-top: var(--blu);
}
#mobile-message .close {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
#mobile-message .close button {
  cursor: pointer;
  display: block;
  background: none;
  border: solid var(--CG-000) var(--line);
  padding: calc(var(--blu) * 1) calc(var(--blu) * 2) calc(var(--blu) * 0.3);
  margin-bottom: calc(var(--blu) * 2);
}
#mobile-message .close button:hover {
  background: var(--CG-000);
  color: var(--CF-RED);
}
#mobile-message[override=close] {
  display: none;
}

/* ////////////////////////////////////////////////////////////// */
/* Media */
/* ////////////////////////////////////////////////////////////// */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
/* 1 / Mobile / XS / */
/* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
:root {
  --media: XS-Mobile;
  --blu: calc(var(--scr)*10);
}

@media all and (min-width: 35em) {
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  /* 2 / Tablet / S / */
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  :root {
    --media: S-Tablet;
    --blu: calc(var(--scr)*12);
  }
}
@media all and (min-width: 55em) {
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  /* 3 / Laptop and Tablet / M / */
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  :root {
    --media: M-Tablet-Laptop;
    --blu: calc(var(--scr)*14);
  }
}
@media all and (min-width: 75em) {
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  /* 4 / Laptop / L / */
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  :root {
    --media: L-Laptop-Desktop;
    --blu: calc(var(--scr)*16);
  }
}
@media all and (min-width: 120em) {
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  /* 5 / Desktop / XL / */
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  :root {
    --media: XL-Desktop;
    --blu: calc(var(--scr) * 18);
  }

  .settings-navi-btn {
    font-size: var(--h1-fs);
    line-height: calc(var(--blu) * 3.4);
    font-weight: 300;
  }

  #settings-preview-navi {
    height: var(--navi-outer);
  }

  .settings-navi-save {
    width: var(--navi-outer);
  }

  #view-font-settings #settings-preview .type-sample-container, #view-font-edit #settings-preview .type-sample-container {
    height: calc(100% - var(--blu) * 7.4);
  }

  #acti-parameter-container .parameter-container[par-select=single].odd .option {
    border-right: solid var(--line) var(--CG-000);
    border-bottom: solid var(--line) var(--CG-000);
    border-left: none;
  }
  #acti-parameter-container .parameter-container[par-select=single].odd .option:nth-child(3n) {
    border-right: none;
  }
  #acti-parameter-container .parameter-container[par-select=single].odd .option:nth-child(3n+1):nth-last-child(-n+3), #acti-parameter-container .parameter-container[par-select=single].odd .option:nth-child(3n+1):nth-last-child(-n+3) ~ .option {
    border-bottom: none;
  }
  #acti-parameter-container .parameter-container[par-select=single].odd .options {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media all and (max-width: 50em), (max-height: 40em) {
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  /* !!! / Mobile only / !!! / */
  /* –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– */
  :root {
    --media: XS-Mobile-Only;
  }

  body {
    overflow: hidden;
  }

  #mobile-message {
    display: grid;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FBQ2hCLG1FQUFtRTtBQUNuRSxjQUFjO0FBQ2QsbUVBQW1FO0FBQ25FLG1FQUFtRTtBQUNuRSxrQkFBa0I7QUFDbEIsbUVBQW1FO0FBQ25FLHlIQUF5SDtBQUN6SDtFQUNFLHNCQUFzQjtFQUN0Qiw2Q0FBNkM7RUFDN0Msd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0UsNkNBQTZDO0VBQzdDLHdDQUF3QztFQUN4Qyx3Q0FBd0M7RUFDeEMscUJBQXFCO0VBQ3JCLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsVUFBVTtBQUNaOztBQUVBO0VBQ0UsNkNBQTZDO0VBQzdDLHdDQUF3QztBQUMxQzs7QUFFQSxtRUFBbUU7QUFDbkUsWUFBWTtBQUNaLG1FQUFtRTtBQUNuRSw2QkFBNkI7QUFDN0I7RUFDRSwyQkFBMkI7RUFDM0IsMktBQTJLO0VBQzNLLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7QUFDQSwyQkFBMkI7QUFDM0I7RUFDRSwyQkFBMkI7RUFDM0IsMktBQTJLO0VBQzNLLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7QUFDQSxtRUFBbUU7QUFDbkUsVUFBVTtBQUNWLG1FQUFtRTtBQUNuRTtFQUNFLHlDQUF5QztFQUN6Qyw2QkFBNkI7RUFDN0Isc0NBQXNDO0VBQ3RDLDhEQUE4RDtFQUM5RCxpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLHVEQUF1RDtFQUN2RCxXQUFXO0VBQ1gsNEJBQTRCO0VBQzVCLHNDQUFzQztFQUN0Qyx1Q0FBdUM7RUFDdkMsc0NBQXNDO0VBQ3RDLHdDQUF3QztFQUN4Qyx3Q0FBd0M7RUFDeEMsd0NBQXdDO0VBQ3hDLHdDQUF3QztFQUN4QyxvQkFBb0I7RUFDcEIsNkJBQTZCO0VBQzdCLG1GQUFtRjtFQUNuRixrRkFBa0Y7RUFDbEYsK0JBQStCO0VBQy9CLFlBQVk7QUFDZDs7QUFFQSxtRUFBbUU7QUFDbkUscUJBQXFCO0FBQ3JCLG1FQUFtRTtBQUNuRTtFQUNFLDJCQUEyQjtFQUMzQixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7O0VBRUUsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQix1QkFBdUI7RUFDdkIseUJBQXlCO0VBQ3pCLDRDQUE0QztFQUM1QywyQ0FBMkM7QUFDN0M7O0FBRUE7O0VBRUUsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQix1QkFBdUI7RUFDdkIseUJBQXlCO0VBQ3pCLDRDQUE0QztFQUM1QywyQ0FBMkM7QUFDN0M7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsMkNBQTJDO0VBQzNDLDBDQUEwQztBQUM1Qzs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QiwyQ0FBMkM7RUFDM0MsMENBQTBDO0FBQzVDOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLG1GQUFtRjtBQUNyRjs7QUFFQTtFQUNFLGlFQUFpRTtBQUNuRTtBQUNBO0VBQ0UsZ0VBQWdFO0FBQ2xFO0FBQ0E7RUFDRSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLGdFQUFnRTtBQUNsRTtBQUNBO0VBQ0UsZ0VBQWdFO0FBQ2xFO0FBQ0E7RUFDRSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLGdFQUFnRTtBQUNsRTtBQUNBO0VBQ0UsK0RBQStEO0FBQ2pFO0FBQ0E7RUFDRSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLGdFQUFnRTtBQUNsRTtBQUNBO0VBQ0UsbUVBQW1FO0VBQ25FLG1CQUFtQjtFQUNuQixjQUFjO0VBQ2QsV0FBVztBQUNiO0FBQ0E7RUFDRSxnR0FBZ0c7QUFDbEc7QUFDQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGdFQUFnRTtBQUNsRTtBQUNBO0VBQ0UsZ0VBQWdFO0FBQ2xFO0FBQ0E7RUFDRSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLGdFQUFnRTtBQUNsRTtBQUNBO0VBQ0UsZ0VBQWdFO0FBQ2xFO0FBQ0E7RUFDRSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLGlFQUFpRTtBQUNuRTtBQUNBO0VBQ0UsK0RBQStEO0FBQ2pFO0FBQ0E7RUFDRSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLG1FQUFtRTtBQUNyRTtBQUNBO0VBQ0UsZ0VBQWdFO0FBQ2xFO0FBQ0E7RUFDRSwrRkFBK0Y7QUFDakc7O0FBRUEsbUVBQW1FO0FBQ25FLFdBQVc7QUFDWCxtRUFBbUU7QUFDbkU7RUFDRSx1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtBQUN6Qjs7QUFFQSxxQ0FBcUM7QUFDckM7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSwrQkFBK0I7QUFDakM7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQSxtRUFBbUU7QUFDbkUsV0FBVztBQUNYLG1FQUFtRTtBQUNuRTtFQUNFLGtEQUFrRDtBQUNwRDs7QUFFQTtFQUNFLGlDQUE2QjtNQUE3Qiw2QkFBNkI7QUFDL0I7O0FBRUEsV0FBVztBQUNYLG1FQUFtRTtBQUNuRTtFQUNFLDZEQUE2RDtFQUM3RCwwQ0FBMEM7RUFDMUMsaURBQWlEO0FBQ25EOztBQUVBLHFCQUFxQjtBQUNyQixtRUFBbUU7QUFDbkU7RUFDRSx5QkFBeUI7RUFDekIsd0JBQXdCO0VBQ3hCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsNEJBQTRCO0VBQzVCLDJCQUEyQjtFQUMzQixlQUFlO0VBQ2YsNkJBQTZCO0VBQzdCLG9CQUFvQjtFQUNwQixrQkFBa0I7QUFDcEI7O0FBRUEsY0FBYztBQUNkLG1FQUFtRTtBQUNuRTtFQUNFLHlCQUFpQjtLQUFqQixzQkFBaUI7TUFBakIscUJBQWlCO1VBQWpCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLE9BQU87RUFDUCxZQUFZO0VBQ1osYUFBYTtFQUNiLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsYUFBYTtBQUNmO0FBQ0E7RUFDRSxjQUFjO0VBQ2Qsb0JBQW9CO0FBQ3RCOztBQUVBLGlCQUFpQjtBQUNqQixtRUFBbUU7QUFDbkU7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFNBQVM7RUFDVCxnQ0FBZ0M7QUFDbEM7O0FBRUEsd0JBQXdCO0FBQ3hCLG1FQUFtRTtBQUNuRTtFQUNFLGVBQWU7RUFDZixVQUFVO0VBQ1YsV0FBVztFQUNYLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBLG1FQUFtRTtBQUNuRSxlQUFlO0FBQ2YsbUVBQW1FO0FBQ25FO0VBQ0UsZUFBZTtFQUNmLGFBQWE7RUFDYixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIsOENBQThDO0VBQzlDLG1CQUFtQjtFQUNuQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsZUFBZTtFQUNmLHlCQUF5QjtFQUN6Qix5Q0FBeUM7QUFDM0M7QUFDQTtFQUNFLCtCQUErQjtFQUMvQixnQkFBZ0I7RUFDaEIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSx1Q0FBdUM7QUFDekM7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsZ0NBQWdDO0VBQ2hDLHNDQUFzQztBQUN4QztBQUNBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBOzs7O0VBSUUsb0JBQW9CO0VBQ3BCLG9CQUFvQjtBQUN0Qjs7QUFFQTs7RUFFRSx5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIscUNBQWdDO09BQWhDLGdDQUFnQztFQUNoQywrQkFBK0I7RUFDL0Isc0JBQXNCO0VBQ3RCLDBDQUEwQztBQUM1QztBQUNBOztFQUVFLGNBQWM7RUFDZCx5QkFBaUI7S0FBakIsc0JBQWlCO01BQWpCLHFCQUFpQjtVQUFqQixpQkFBaUI7RUFDakIsMEJBQWtCO0VBQWxCLHVCQUFrQjtFQUFsQixrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLHFDQUFxQztFQUNyQyxlQUFlO0FBQ2pCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLFlBQVk7QUFDZDs7QUFFQTs7Ozs7O0VBTUUsZUFBZTtFQUNmLE1BQU07RUFDTixRQUFRO0VBQ1IseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixZQUFZO0FBQ2Q7QUFDQTs7Ozs7O0VBTUUseUJBQXlCO0VBQ3pCLDBDQUEwQztBQUM1Qzs7QUFFQTtFQUNFLFVBQVU7RUFDViw0Q0FBNEM7QUFDOUM7O0FBRUEsd0JBQXdCO0FBQ3hCLG1FQUFtRTtBQUNuRTtFQUNFLGVBQWU7RUFDZixZQUFZO0VBQ1osY0FBYztFQUNkLE1BQU07QUFDUjtBQUNBO0VBQ0UsdUNBQXVDO0FBQ3pDO0FBQ0E7RUFDRSxzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLGVBQWU7QUFDakI7QUFDQTtFQUNFLG9CQUFvQjtFQUNwQixzQkFBc0I7RUFDdEIsb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsV0FBVztFQUNYLHlCQUF5QjtFQUN6Qix1Q0FBdUM7RUFDdkMsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsK0JBQStCO0VBQy9CLGtDQUFrQztBQUNwQztBQUNBO0VBQ0Usb0JBQW9CO0VBQ3BCLFVBQVU7QUFDWjtBQUhBO0VBQ0Usb0JBQW9CO0VBQ3BCLFVBQVU7QUFDWjtBQUhBO0VBQ0Usb0JBQW9CO0VBQ3BCLFVBQVU7QUFDWjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6QixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQiw2Q0FBNkM7RUFDN0MsZUFBZTtFQUNmLHlCQUFpQjtLQUFqQixzQkFBaUI7TUFBakIscUJBQWlCO1VBQWpCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLDZDQUE2QztFQUM3QyxtQ0FBbUM7QUFDckM7QUFDQTtFQUNFLFdBQVc7RUFDWCw0QkFBNEI7RUFDNUIsNkJBQTZCO0VBQzdCLHdCQUF3QjtFQUN4Qiw4Q0FBOEM7RUFDOUMsNkNBQTZDO0VBQzdDLGtCQUFrQjtFQUNsQiwyQkFBMkI7RUFDM0IsOEJBQThCO0VBQzlCLHNDQUFzQztFQUN0Qyx5QkFBeUI7RUFDekIsdUNBQXVDO0FBQ3pDO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQix1Q0FBdUM7RUFDdkMsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLFNBQVM7RUFDVCxxREFBcUQ7QUFDdkQ7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIseUJBQXlCO0FBQzNCOztBQUVBLG1FQUFtRTtBQUNuRSxpQkFBaUI7QUFDakIsbUVBQW1FO0FBQ25FO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxXQUFXO0VBQ1gsc0NBQXNDO0VBQ3RDLFNBQVM7RUFDVCxPQUFPO0VBQ1AsZUFBZTtFQUNmLFlBQVk7QUFDZDtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLFNBQVM7RUFDVCxNQUFNO0VBQ04sMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsV0FBVztFQUNYLFFBQVE7RUFDUixPQUFPO0VBQ1AsMkJBQTJCO0FBQzdCO0FBQ0E7O0VBRUUsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixnQ0FBZ0M7RUFDaEMsU0FBUztFQUNULFFBQVE7QUFDVjtBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLDRCQUE0QjtFQUM1Qix5QkFBeUI7RUFDekIsWUFBWTtBQUNkO0FBQ0E7RUFDRSw2QkFBNkI7RUFDN0IsOEJBQThCO0VBQzlCLHVDQUF1QztFQUN2QywwQkFBMEI7RUFDMUIsWUFBWTtBQUNkOztBQUVBOztFQUVFLHlCQUFpQjtLQUFqQixzQkFBaUI7TUFBakIscUJBQWlCO1VBQWpCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsU0FBUztFQUNULGdDQUFnQztFQUNoQyxtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsc0ZBQXNGO0VBQ3RGLGVBQWU7RUFDZix5Q0FBeUM7RUFDekMscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixxQ0FBcUM7RUFDckMsb0VBQW9FO0VBQ3BFLHFFQUFxRTtFQUNyRSw4Q0FBOEM7RUFDOUMsMERBQTBEO0VBQzFELGtGQUFrRjtFQUNsRixrRUFBa0U7RUFDbEUsOElBQThJO0VBQzlJLHVDQUF1QztFQUN2Qyw2REFBNkQ7RUFDN0QsMkJBQTJCO0VBQzNCLGtGQUFrRjtFQUNsRix3QkFBd0I7RUFDeEIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxjQUFjO0VBQ2Qsc0JBQXNCO0VBQ3RCLHFDQUFxQztFQUNyQywyQkFBMkI7RUFDM0IsMENBQTBDO0FBQzVDOztBQUVBO0VBQ0U7SUFDRSxlQUFlO0VBQ2pCO0FBQ0Y7QUFDQTtFQUNFLGVBQWU7RUFDZiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixZQUFZO0FBQ2Q7O0FBRUEsbUVBQW1FO0FBQ25FLGtCQUFrQjtBQUNsQixtRUFBbUU7QUFDbkU7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsYUFBYTtFQUNiLDhDQUE4QztFQUM5QyxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsMkJBQTJCO0VBQzNCLE9BQU87RUFDUCxXQUFXO0VBQ1gscUNBQXFDO0VBQ3JDLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLE9BQU87RUFDUCxXQUFXO0FBQ2I7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFVBQVU7RUFDVixRQUFRO0FBQ1Y7QUFDQTtFQUNFLFFBQVE7QUFDVjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixzQ0FBc0M7RUFDdEMsc0NBQXNDO0VBQ3RDLDZDQUE2QztFQUM3QyxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLE1BQU07RUFDTixRQUFRO0VBQ1IsWUFBWTtBQUNkOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxTQUFTO0VBQ1QsOEJBQThCO0VBQzlCLGFBQWE7RUFDYiwyQ0FBMkM7QUFDN0M7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixlQUFlO0VBQ2YsV0FBVztFQUNYLGFBQWE7RUFDYixxQ0FBcUM7RUFDckMsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsNkNBQTZDO0FBQy9DO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usb0JBQW9CO0VBQ3BCLHdCQUF3QjtFQUN4QixlQUFlO0VBQ2YsYUFBYTtBQUNmO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSw2Q0FBNkM7RUFDN0Msa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsbUNBQW1DO0VBQ25DLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsK0NBQStDO0FBQ2pEO0FBQ0E7RUFDRSwrQ0FBK0M7QUFDakQ7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSw2QkFBNkI7RUFDN0IsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixtQkFBbUI7QUFDckI7O0FBRUE7O0VBRUUsbUJBQW1CO0VBQ25CLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsWUFBWTtBQUNkO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUEsdUJBQXVCO0FBQ3ZCLG1FQUFtRTtBQUNuRTtFQUNFLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsT0FBTztFQUNQLFdBQVc7RUFDWCxzQ0FBc0M7RUFDdEMsa0JBQWtCO0VBQ2xCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSx5QkFBaUI7S0FBakIsc0JBQWlCO01BQWpCLHFCQUFpQjtVQUFqQixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsV0FBVztFQUNYLFlBQVk7QUFDZDtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsMkJBQTJCO0VBQzNCLHdCQUF3QjtFQUN4QixvQkFBb0I7RUFDcEIsZUFBZTtBQUNqQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLG9DQUFvQztFQUNwQywrQkFBK0I7RUFDL0IseUNBQXlDO0VBQ3pDLG1DQUFtQztBQUNyQztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsK0JBQStCO0VBQy9CLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsbUNBQW1DO0VBQ25DLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFFBQVE7RUFDUixrQkFBa0I7RUFDbEIsbUNBQW1DO0VBQ25DLGVBQWU7RUFDZixzQ0FBc0M7RUFDdEMsWUFBWTtBQUNkO0FBQ0E7RUFDRSxPQUFPO0FBQ1Q7QUFDQTtFQUNFLE9BQU87RUFDUCxrQkFBa0I7RUFDbEIsbUNBQW1DO0VBQ25DLGVBQWU7RUFDZixzQ0FBc0M7RUFDdEMsWUFBWTtBQUNkO0FBQ0E7RUFDRSxRQUFRO0FBQ1Y7QUFDQTtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsU0FBUztFQUNULDZCQUE2QjtFQUM3QixtQ0FBbUM7RUFDbkMsbUJBQW1CO0VBQ25CLHVDQUF1QztFQUN2QyxZQUFZO0VBQ1osaUNBQWlDO0VBQ2pDLGtCQUFrQjtFQUNsQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLHNDQUFzQztBQUN4QztBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQiw0QkFBNEI7RUFDNUIsNkJBQTZCO0VBQzdCLDhDQUE4QztFQUM5Qyw2Q0FBNkM7RUFDN0MsUUFBUTtBQUNWO0FBQ0E7RUFDRSxrQ0FBa0M7RUFDbEMseUNBQXlDO0FBQzNDO0FBQ0E7RUFDRSxtQ0FBbUM7RUFDbkMsMENBQTBDO0FBQzVDO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLGNBQWM7RUFDZCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLFlBQVk7RUFDWiwyQ0FBMkM7QUFDN0M7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUiwyQkFBMkI7RUFDM0Isd0JBQXdCO0VBQ3hCLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsK0JBQStCO0VBQy9CLHVCQUF1QjtFQUN2QixtQ0FBbUM7RUFDbkMsZ0JBQWdCO0VBQ2hCLG1DQUFtQztFQUNuQywwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFdBQVc7RUFDWCw0QkFBNEI7RUFDNUIsNkJBQTZCO0VBQzdCLHdCQUF3QjtFQUN4Qiw4Q0FBOEM7RUFDOUMsNkNBQTZDO0VBQzdDLGtCQUFrQjtFQUNsQiwyQkFBMkI7RUFDM0IsOEJBQThCO0VBQzlCLHNDQUFzQztFQUN0Qyx5QkFBeUI7RUFDekIsdUNBQXVDO0FBQ3pDO0FBQ0E7RUFDRSw2Q0FBNkM7QUFDL0M7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsU0FBUztFQUNULDhCQUE4QjtFQUM5Qiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UscUNBQXFDO0FBQ3ZDO0FBQ0E7RUFDRSxxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixvQkFBb0I7RUFDcEIsc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sNkJBQTZCO0VBQzdCLHNHQUFzRztFQUN0RyxrQ0FBa0M7RUFDbEMseUJBQXlCO0VBQ3pCLG9DQUFvQztBQUN0QztBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7Ozs7RUFJRSxhQUFhO0FBQ2Y7QUFDQTs7RUFFRSxZQUFZO0VBQ1osa0NBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsV0FBVztFQUNYLG1DQUFtQztBQUNyQzs7QUFFQTtFQUNFLGFBQWE7RUFDYixxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2YsWUFBWTtFQUNaLDJDQUEyQztBQUM3QztBQUNBOztFQUVFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQiwyQ0FBMkM7RUFDM0MsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixXQUFXO0VBQ1gsV0FBVztFQUNYLHFDQUFxQztBQUN2QztBQUNBO0VBQ0Usc0JBQXNCO0VBQ3RCLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTs7RUFFRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLG1DQUFtQztBQUNyQzs7QUFFQSxtRUFBbUU7QUFDbkUsdUJBQXVCO0FBQ3ZCLG1FQUFtRTtBQUNuRTtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsMkNBQTJDO0VBQzNDLHNDQUFzQztFQUN0QyxXQUFXO0VBQ1gsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsbURBQW1EO0VBQ25ELHdCQUF3QjtFQUN4QixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxRQUFRO0VBQ1IsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSx3QkFBd0I7RUFDeEIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLG1EQUFtRDtFQUNuRCxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLDBCQUEwQjtFQUMxQiw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMsa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixlQUFlO0VBQ2YsTUFBTTtFQUNOLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1oseUJBQXlCO0VBQ3pCLHdCQUF3QjtFQUN4Qiw2Q0FBNkM7RUFDN0MsZ0JBQWdCO0VBQ2hCLGVBQWU7QUFDakI7QUFDQTtFQUNFLDBCQUEwQjtFQUMxQixrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7RUFDWixvQ0FBb0M7QUFDdEM7QUFDQTtFQUNFLFdBQVc7RUFDWCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixTQUFTO0VBQ1QsZ0NBQWdDO0VBQ2hDLG1DQUFtQztFQUNuQyxvQkFBb0I7RUFDcEIseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSw0QkFBNEI7RUFDNUIsV0FBVztFQUNYLHlDQUF5QztFQUN6QyxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLDJCQUEyQjtFQUMzQixTQUFTO0VBQ1Qsd0JBQXdCO0VBQ3hCLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixxQ0FBcUM7RUFDckMsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UscUNBQXFDO0VBQ3JDLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLDhDQUE4QztFQUM5Qyw2Q0FBNkM7RUFDN0MsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQiw4REFBOEQ7RUFDOUQsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxtQ0FBbUM7RUFDbkMsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixnQkFBZ0I7RUFDaEIsa0NBQWtDO0VBQ2xDLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsU0FBUztFQUNULGdDQUFnQztFQUNoQyxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixvRUFBb0U7RUFDcEUscUVBQXFFO0VBQ3JFLDhDQUE4QztFQUM5QywwREFBMEQ7RUFDMUQsa0ZBQWtGO0VBQ2xGLGtFQUFrRTtFQUNsRSw4SUFBOEk7RUFDOUksdUNBQXVDO0VBQ3ZDLDZEQUE2RDtFQUM3RCwyQkFBMkI7RUFDM0Isa0ZBQWtGO0VBQ2xGLHdCQUF3QjtFQUN4QixrQkFBa0I7RUFDbEIscUZBQXFGO0FBQ3ZGO0FBQ0E7RUFDRSwyQkFBMkI7RUFDM0IsMENBQTBDO0FBQzVDO0FBQ0E7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsU0FBUztFQUNULE9BQU87QUFDVDtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLDRCQUE0QjtFQUM1QixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLHNDQUFzQztBQUN4QztBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLHFDQUFxQztBQUN2QztBQUNBO0VBQ0UscUNBQXFDO0VBQ3JDLDhEQUE4RDtBQUNoRTtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsU0FBUztFQUNULGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQSxtRUFBbUU7QUFDbkUsb0JBQW9CO0FBQ3BCLG1FQUFtRTtBQUNuRTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gscURBQXFEO0FBQ3ZEO0FBQ0E7RUFDRSwrRkFBK0Y7RUFDL0Ysa0JBQWtCO0VBQ2xCLDBCQUFrQjtFQUFsQix1QkFBa0I7RUFBbEIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQiwrQkFBK0I7RUFDL0IsU0FBUztFQUNULGdDQUFnQztFQUNoQyxtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixvRUFBb0U7RUFDcEUscUVBQXFFO0VBQ3JFLDhDQUE4QztFQUM5QywwREFBMEQ7RUFDMUQsa0ZBQWtGO0VBQ2xGLGtFQUFrRTtFQUNsRSw4SUFBOEk7RUFDOUksdUNBQXVDO0VBQ3ZDLDZEQUE2RDtFQUM3RCwyQkFBMkI7RUFDM0Isa0ZBQWtGO0VBQ2xGLHdCQUF3QjtFQUN4QixrQkFBa0I7RUFDbEIscUZBQXFGO0FBQ3ZGO0FBQ0E7RUFDRSxzQkFBc0I7RUFDdEIscUNBQXFDO0VBQ3JDLDJCQUEyQjtFQUMzQiwwQ0FBMEM7QUFDNUM7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsT0FBTztFQUNQLFdBQVc7RUFDWCxhQUFhO0VBQ2IscUNBQXFDO0VBQ3JDLDJCQUEyQjtFQUMzQix3QkFBd0I7RUFDeEIseUJBQXlCO0VBQ3pCLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLG1DQUFtQztBQUNyQztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLDJCQUEyQjtFQUMzQiw0QkFBNEI7RUFDNUIsU0FBUztFQUNULFFBQVE7RUFDUixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsNEJBQTRCO0VBQzVCLDZCQUE2QjtFQUM3Qix3QkFBd0I7RUFDeEIsOENBQThDO0VBQzlDLDZDQUE2QztFQUM3QyxrQkFBa0I7RUFDbEIsMkJBQTJCO0VBQzNCLDhCQUE4QjtFQUM5QiwyQkFBMkI7RUFDM0IseUJBQXlCO0VBQ3pCLHVDQUF1QztBQUN6QztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSxxQkFBcUI7RUFDckIsb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsMkNBQTJDO0FBQzdDO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLDZCQUE2QjtFQUM3Qiw4Q0FBOEM7QUFDaEQ7QUFDQTtFQUNFLGFBQWE7RUFDYiwyQkFBMkI7RUFDM0Isc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxvQ0FBb0M7QUFDdEM7QUFDQTtFQUNFLDRCQUE0QjtFQUM1QixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTiw0Q0FBNEM7RUFDNUMsOENBQThDO0VBQzlDLGFBQWE7QUFDZjtBQUNBO0VBQ0UsK0JBQStCO0VBQy9CLGVBQWU7QUFDakI7QUFDQTtFQUNFLFFBQVE7RUFDUixVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLHNEQUFzRDtFQUN0RCw0QkFBNEI7RUFDNUIsa0NBQWtDO0VBQ2xDLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsK0JBQStCO0VBQy9CLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsUUFBUTtFQUNSLDJCQUEyQjtFQUMzQixXQUFXO0VBQ1gsdUNBQXVDO0VBQ3ZDLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2Ysb0VBQW9FO0VBQ3BFLHFFQUFxRTtFQUNyRSw4Q0FBOEM7RUFDOUMsMERBQTBEO0VBQzFELGtGQUFrRjtFQUNsRixrRUFBa0U7RUFDbEUsOElBQThJO0VBQzlJLHVDQUF1QztFQUN2Qyw2REFBNkQ7RUFDN0QsMkJBQTJCO0VBQzNCLGtGQUFrRjtFQUNsRix3QkFBd0I7RUFDeEIsa0JBQWtCO0VBQ2xCLHFGQUFxRjtBQUN2RjtBQUNBO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osV0FBVztFQUNYLGdCQUFnQjtFQUNoQiw4Q0FBOEM7RUFDOUMsaUNBQWlDO0VBQ2pDLDJCQUEyQjtFQUMzQiwwQ0FBMEM7QUFDNUM7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixvQkFBb0I7QUFDdEI7QUFIQTtFQUNFLGdCQUFnQjtFQUNoQixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGVBQWU7RUFDZixvQkFBb0I7RUFDcEIscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLDBCQUEwQjtFQUMxQixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSx3R0FBd0c7QUFDMUc7QUFDQTtFQUNFLGNBQWM7RUFDZCwwREFBMEQ7QUFDNUQ7O0FBRUE7RUFDRSw0Q0FBNEM7RUFDNUMsb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSx1Q0FBdUM7RUFDdkMsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSx3QkFBZ0I7RUFBaEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw4Q0FBOEM7RUFDOUMsMENBQTBDO0VBQzFDLHlCQUF5QjtFQUN6QixZQUFZO0FBQ2Q7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixtQkFBbUI7RUFDbkIsNkNBQTZDO0VBQzdDLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsNEJBQTRCO0VBQzVCLG1DQUFtQztFQUNuQyxtQkFBbUI7RUFDbkIsNkNBQTZDO0VBQzdDLFNBQVM7QUFDWDtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixzQ0FBc0M7RUFDdEMsV0FBVztFQUNYLDZCQUE2QjtFQUM3Qix5QkFBeUI7RUFDekIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsa0NBQWtDO0VBQ2xDLGtDQUFrQztFQUNsQyxtQkFBbUI7RUFDbkIsOEJBQThCO0VBQzlCLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1AsV0FBVztBQUNiO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7O0VBRUUsd0JBQXdCO0FBQzFCOztBQUVBOztFQUVFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFVBQVU7RUFDVixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQSxtRUFBbUU7QUFDbkUsZ0JBQWdCO0FBQ2hCLG1FQUFtRTtBQUNuRTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLG1DQUFtQztBQUNyQztBQUNBO0VBQ0UsMkNBQTJDO0VBQzNDLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsY0FBYztFQUNkLFlBQVk7RUFDWixhQUFhO0VBQ2IsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLDRDQUE0QztFQUM1QyxvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsc0NBQXNDO0FBQ3hDOztBQUVBO0VBQ0UsV0FBVztFQUNYLHFEQUFxRDtFQUNyRCxrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0FBQ3BCOztBQUVBLG1FQUFtRTtBQUNuRSxjQUFjO0FBQ2QsbUVBQW1FO0FBQ25FO0VBQ0UsbUJBQW1CO0VBQ25CLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0Usc0NBQXNDO0VBQ3RDLGtEQUFrRDtBQUNwRDs7QUFFQTtFQUNFLFdBQVc7RUFDWCxhQUFhO0VBQ2Isc0NBQXNDO0VBQ3RDLHdCQUF3QjtFQUN4Qix5QkFBeUI7RUFDekIsOENBQThDO0VBQzlDLDhCQUE4QjtFQUM5QixlQUFlO0VBQ2YsMkNBQTJDO0VBQzNDLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6Qix3QkFBZ0I7RUFBaEIsZ0JBQWdCO0VBQ2hCLDBDQUEwQztFQUMxQyx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLDhCQUE4QjtFQUM5QixrQkFBa0I7RUFDbEIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsV0FBVztFQUNYLDRCQUE0QjtFQUM1Qiw2QkFBNkI7RUFDN0Isd0JBQXdCO0VBQ3hCLDhDQUE4QztFQUM5Qyw2Q0FBNkM7RUFDN0Msa0JBQWtCO0VBQ2xCLHNDQUFzQztFQUN0Qyx5QkFBeUI7RUFDekIsdUNBQXVDO0VBQ3ZDLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsK0JBQStCO0FBQ2pDO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsY0FBYztBQUNoQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLHNDQUFzQztFQUN0Qyx3QkFBd0I7RUFDeEIseUJBQXlCO0VBQ3pCLDhDQUE4QztFQUM5Qyw4QkFBOEI7RUFDOUIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsK0JBQStCO0VBQy9CLHlDQUF5QztFQUN6QyxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLG1DQUFtQztFQUNuQyxhQUFhO0VBQ2IsK0JBQStCO0VBQy9CLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQSxZQUFZO0FBQ1o7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUEsZUFBZTtBQUNmO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBLFdBQVc7QUFDWDtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQSxvQkFBb0I7QUFDcEI7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUEsV0FBVztBQUNYO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2Ysd0JBQXdCO0VBQ3hCLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osOENBQXNDO1VBQXRDLHNDQUFzQztBQUN4Qzs7QUFFQTs7RUFFRSxXQUFXO0VBQ1gsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsU0FBUztFQUNULDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSx3Q0FBd0M7RUFDeEMseUNBQXlDO0VBQ3pDLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGVBQWU7RUFDZixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osWUFBWTtBQUNkOztBQUVBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtBQUNGOztBQVBBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtBQUNGO0FBQ0EsbUVBQW1FO0FBQ25FLGNBQWM7QUFDZCxtRUFBbUU7QUFDbkU7RUFDRSxxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UscUNBQXFDO0FBQ3ZDO0FBQ0E7RUFDRSw4Q0FBOEM7RUFDOUMseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsU0FBUztBQUNYO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBOztFQUVFLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLGtCQUFrQjtBQUNwQjtBQUNBOztFQUVFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsbURBQW1EO0FBQ3JEO0FBQ0E7O0VBRUUsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLHdCQUF3QjtFQUN4QixlQUFlO0VBQ2YsZUFBZTtBQUNqQjtBQUNBOztFQUVFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLHlCQUF5QjtFQUN6QixZQUFZO0FBQ2Q7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QiwyQ0FBMkM7RUFDM0MsMENBQTBDO0VBQzFDLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsMkNBQTJDO0VBQzNDLG9DQUFvQztFQUNwQyx1Q0FBdUM7QUFDekM7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLGVBQWU7QUFDakI7QUFDQTtFQUNFLGtDQUFrQztBQUNwQztBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLG1DQUFtQztBQUNyQztBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLG1DQUFtQztFQUNuQyxzQ0FBc0M7QUFDeEM7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0Qjs7QUFFQSxtRUFBbUU7QUFDbkUsVUFBVTtBQUNWLG1FQUFtRTtBQUNuRTtFQUNFLGFBQWE7QUFDZjs7QUFFQSxtRUFBbUU7QUFDbkUsWUFBWTtBQUNaLG1FQUFtRTtBQUNuRTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSw0Q0FBNEM7RUFDNUMsZ0NBQWdDO0VBQ2hDLDBCQUEwQjtFQUMxQixvQ0FBb0M7RUFDcEMsdUNBQXVDO0FBQ3pDO0FBQ0E7RUFDRSwrQkFBK0I7RUFDL0IsdURBQXVEO0VBQ3ZELGVBQWU7RUFDZixTQUFTO0VBQ1QsT0FBTztFQUNQLHNDQUFzQztFQUN0QyxZQUFZO0VBQ1osZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLFdBQVc7QUFDYjtBQUNBO0VBQ0UsY0FBYztFQUNkLGFBQWE7RUFDYixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLDZDQUE2QztBQUMvQztBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7RUFDWixhQUFhO0VBQ2IsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSw4Q0FBOEM7RUFDOUMsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQ0FBZ0M7RUFDaEMsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFNBQVM7RUFDVCxnQ0FBZ0M7RUFDaEMsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxhQUFhO0VBQ2IscUNBQXFDO0VBQ3JDLG9DQUFvQztBQUN0QztBQUNBO0VBQ0Usa0NBQWtDO0VBQ2xDLGlDQUFpQztFQUNqQyxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLGlDQUFpQztBQUNuQztBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLDJCQUEyQjtFQUMzQix1QkFBdUI7RUFDdkIseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsc0NBQXNDO0VBQ3RDLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIsd0JBQWdCO0tBQWhCLHFCQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsZUFBZTtBQUNqQjtBQUNBO0VBQ0Usc0JBQXNCO0VBQ3RCLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixNQUFNO0VBQ04sMkVBQTJFO0FBQzdFO0FBQ0E7RUFDRSw0Q0FBNEM7RUFDNUMsZ0RBQWdEO0FBQ2xEO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLDBDQUEwQztFQUMxQyx3QkFBd0I7RUFDeEIsY0FBYztFQUNkLHlCQUF5QjtFQUN6Qiw2QkFBNkI7RUFDN0IsY0FBYztBQUNoQjtBQUNBO0VBQ0Usc0JBQXNCO0VBQ3RCLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0UsU0FBUztFQUNULDJDQUEyQztFQUMzQyxlQUFlO0VBQ2Ysb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSw4Q0FBOEM7RUFDOUMsZUFBZTtBQUNqQjtBQUNBOztFQUVFLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQix1QkFBdUI7QUFDekI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsU0FBUztBQUNYO0FBQ0E7RUFDRSxvQkFBb0I7RUFDcEIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7O0FBRUEsbUVBQW1FO0FBQ25FLGdCQUFnQjtBQUNoQixtRUFBbUU7QUFDbkU7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLE9BQU87RUFDUCxrRkFBa0Y7RUFDbEYsMENBQTBDO0VBQzFDLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6Qiw4Q0FBOEM7RUFDOUMsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsV0FBVztBQUNiO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLDJDQUEyQztFQUMzQyx5QkFBeUI7RUFDekIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLDBCQUEwQjtFQUMxQixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQix5QkFBaUI7S0FBakIsc0JBQWlCO01BQWpCLHFCQUFpQjtVQUFqQixpQkFBaUI7RUFDakIsTUFBTTtFQUNOLFFBQVE7QUFDVjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixPQUFPO0VBQ1AsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLHlCQUFpQjtLQUFqQixzQkFBaUI7TUFBakIscUJBQWlCO1VBQWpCLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxzQ0FBc0M7RUFDdEMsU0FBUztFQUNULE9BQU87RUFDUCxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsZ0NBQWdDO0VBQ2hDLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixZQUFZO0FBQ2Q7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLDBCQUFrQjtFQUFsQix1QkFBa0I7RUFBbEIsa0JBQWtCO0VBQ2xCLDJCQUFtQjtFQUFuQix3QkFBbUI7RUFBbkIsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixtQ0FBbUM7QUFDckM7QUFDQTtFQUNFLG9DQUFvQztFQUNwQyxPQUFPO0FBQ1Q7QUFDQTtFQUNFLHFDQUFxQztFQUNyQyxRQUFRO0FBQ1Y7QUFDQTtFQUNFLFdBQVc7RUFDWCxjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixNQUFNO0VBQ04sT0FBTztBQUNUO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7O0VBRUUsYUFBYTtBQUNmOztBQUVBLG1FQUFtRTtBQUNuRTtFQUNFLHNCQUFzQjtFQUN0QixzQ0FBc0M7QUFDeEM7QUFDQTs7RUFFRSxtQ0FBbUM7QUFDckM7QUFDQTtFQUNFLG1DQUFtQztBQUNyQztBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qiw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLG1DQUFtQztBQUNyQztBQUNBO0VBQ0UsaURBQWlEO0FBQ25EO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHNCQUFzQjtFQUN0Qiw0REFBNEQ7QUFDOUQ7QUFDQTtFQUNFLG1DQUFtQztBQUNyQztBQUNBO0VBQ0UsbUNBQW1DO0FBQ3JDO0FBQ0E7RUFDRSxzQkFBc0I7RUFDdEIseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsb0RBQW9EO0VBQ3BELG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usb0RBQW9EO0FBQ3REO0FBQ0E7RUFDRSx5RUFBeUU7QUFDM0U7O0FBRUE7RUFDRSxpREFBaUQ7QUFDbkQ7O0FBRUE7RUFDRSxvREFBb0Q7QUFDdEQ7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2IsTUFBTTtFQUNOLFFBQVE7RUFDUiw0Q0FBNEM7RUFDNUMseUJBQXlCO0VBQ3pCLFlBQVk7QUFDZDs7QUFFQSxtRUFBbUU7QUFDbkUsYUFBYTtBQUNiLG1FQUFtRTtBQUNuRTtFQUNFLGVBQWU7RUFDZixZQUFZO0FBQ2Q7QUFDQTtFQUNFLGFBQWE7RUFDYixZQUFZO0FBQ2Q7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsOENBQThDO0VBQzlDLHlCQUF5QjtFQUN6QixtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLHlCQUFpQjtLQUFqQixzQkFBaUI7TUFBakIscUJBQWlCO1VBQWpCLGlCQUFpQjtBQUNuQjs7QUFFQTs7O0VBR0UsZUFBZTtFQUNmLGFBQWE7RUFDYixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtFQUNaLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQSxXQUFXO0FBQ1gsbUVBQW1FO0FBQ25FO0VBQ0UsYUFBYTtFQUNiLHlCQUF5QjtFQUN6Qix1Q0FBdUM7RUFDdkMsVUFBVTtFQUNWLGdDQUFnQztBQUNsQztBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxvQkFBb0I7RUFDcEIsWUFBWTtBQUNkO0FBQ0E7RUFDRSw4Q0FBOEM7RUFDOUMsYUFBYTtFQUNiLCtDQUF1QztFQUF2Qyx1Q0FBdUM7RUFDdkMseUJBQXlCO0VBQ3pCLGdCQUFnQjtBQUNsQjtBQUNBOztFQUVFLDZCQUE2QjtFQUM3QixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLDRDQUE0QztFQUM1QyxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsMkNBQTJDO0FBQzdDO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFdBQVc7RUFDWCx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usd0JBQXdCO0VBQ3hCLHFDQUFxQztFQUNyQyx5QkFBeUI7RUFDekIscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLHFDQUFxQztFQUNyQyx5QkFBeUI7RUFDekIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUVBLHFCQUFxQjtBQUNyQixtRUFBbUU7QUFDbkU7O0VBRUUsYUFBYTtBQUNmO0FBQ0E7O0VBRUUsV0FBVztFQUNYLGFBQWE7RUFDYix1QkFBdUI7QUFDekI7O0FBRUE7O0VBRUUsYUFBYTtBQUNmOztBQUVBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsbUNBQW1DO0FBQ3JDO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFVBQVU7RUFDVixrQkFBa0I7RUFDbEIsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsdUNBQXVDO0VBQ3ZDLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsVUFBVTtFQUNWLHlCQUF5QjtFQUN6QixzQ0FBc0M7QUFDeEM7O0FBRUE7RUFDRSxhQUFhO0VBQ2IseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLG9CQUFvQjtBQUN0Qjs7QUFIQTtFQUNFLFVBQVU7RUFDVixvQkFBb0I7QUFDdEI7O0FBSEE7RUFDRSxVQUFVO0VBQ1Ysb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0Usb0JBQW9CO0FBQ3RCOztBQUZBO0VBQ0Usb0JBQW9CO0FBQ3RCOztBQUZBO0VBQ0Usb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0Usc0VBQXNFO0VBQ3RFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLCtCQUErQjtBQUNqQzs7QUFFQTtFQUNFLCtCQUErQjtBQUNqQzs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixxQkFBcUI7RUFDckIsdUNBQXVDO0VBQ3ZDLGFBQWE7RUFDYixZQUFZO0FBQ2Q7QUFDQTtFQUNFLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsK0JBQStCO0VBQy9CLDhDQUE4QztFQUM5QyxzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLGVBQWU7QUFDakI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQSxtQkFBbUI7QUFDbkIsbUVBQW1FO0FBQ25FO0VBQ0UsZUFBZTtFQUNmLHlCQUF5QjtFQUN6Qix3QkFBd0I7RUFDeEIsU0FBUztFQUNULFVBQVU7RUFDVix5REFBeUQ7RUFDekQsZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFFBQVE7RUFDUixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsNEJBQTRCO0VBQzVCLHlCQUF5QjtFQUN6Qix1Q0FBdUM7QUFDekM7O0FBRUE7O0VBRUUsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTix5QkFBeUI7RUFDekIsd0JBQXdCO0VBQ3hCLFVBQVU7RUFDVix5REFBeUQ7RUFDekQsZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsWUFBWTtBQUNkOztBQUVBO0VBQ0UseURBQXlEO0VBQ3pELFFBQVE7QUFDVjs7QUFFQTtFQUNFLHlEQUF5RDtFQUN6RCxpREFBaUQ7QUFDbkQ7O0FBRUE7O0VBRUUsb0JBQW9CO0VBQ3BCLFlBQVk7QUFDZDs7QUFFQTs7RUFFRSwrQkFBK0I7QUFDakM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsbUJBQW1CO0VBQ25CLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0NBQWtDO0VBQ2xDLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUEscUJBQXFCO0FBQ3JCLG1FQUFtRTtBQUNuRTtFQUNFLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHVDQUF1QztFQUN2QyxxQkFBcUI7RUFDckIsVUFBVTtFQUNWLHVCQUF1QjtFQUN2QixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFVBQVU7RUFDVix1QkFBdUI7RUFDdkIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBLG1FQUFtRTtBQUNuRSxXQUFXO0FBQ1gsbUVBQW1FO0FBQ25FO0VBQ0Usa0JBQWtCO0VBQ2xCLHlEQUF5RDtFQUN6RCxXQUFXO0VBQ1gsMkNBQTJDO0VBQzNDLG1CQUFtQjtFQUNuQix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsZ0NBQWdDO0FBQ2xDO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLGFBQWE7RUFDYixxQ0FBcUM7RUFDckMsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixrQ0FBa0M7QUFDcEM7QUFDQTtFQUNFLG9CQUFvQjtFQUNwQixZQUFZO0FBQ2Q7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0FBQ1Y7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsMEJBQWtCO0VBQWxCLHVCQUFrQjtFQUFsQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osVUFBVTtBQUNaOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0Usa0NBQWtDO0VBQ2xDLDRCQUE0QjtFQUM1QixrQkFBa0I7RUFDbEIsOENBQThDO0VBQzlDLGdDQUFnQztFQUNoQyx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsNEJBQTRCO0VBQzVCLGdDQUFnQztFQUNoQyxnQkFBZ0I7RUFDaEIsZ0NBQWdDO0FBQ2xDO0FBQ0E7RUFDRSxvQkFBb0I7RUFDcEIsWUFBWTtBQUNkO0FBSEE7RUFDRSxvQkFBb0I7RUFDcEIsWUFBWTtBQUNkO0FBSEE7RUFDRSxvQkFBb0I7RUFDcEIsWUFBWTtBQUNkO0FBQ0E7O0VBRUUsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLG1DQUFtQztBQUNyQzs7QUFFQTs7RUFFRSx5QkFBeUI7QUFDM0I7QUFDQTs7OztFQUlFLDJCQUEyQjtFQUMzQiwrQkFBK0I7QUFDakM7QUFDQTs7OztFQUlFLCtCQUErQjtBQUNqQztBQUNBOztFQUVFLHlCQUF5QjtBQUMzQjtBQUNBOztFQUVFLDJCQUEyQjtBQUM3QjtBQUNBOztFQUVFLHVCQUF1QjtBQUN6QjtBQUNBOztFQUVFLHlCQUF5QjtBQUMzQjtBQUNBOztFQUVFLDJCQUEyQjtBQUM3QjtBQUNBOzs7Ozs7Ozs7O0VBVUUsK0JBQStCO0FBQ2pDO0FBQ0E7O0VBRUUsc0NBQXNDO0FBQ3hDO0FBQ0E7Ozs7OztFQU1FLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQSxtRUFBbUU7QUFDbkUsbUJBQW1CO0FBQ25CLG1FQUFtRTtBQUNuRTtFQUNFLGFBQWE7RUFDYiwwQkFBMEI7RUFDMUIsaUNBQWlDO0VBQ2pDLHFCQUFxQjtFQUNyQixlQUFlO0VBQ2YsWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZO0VBQ1oseUJBQXlCO0VBQ3pCLE1BQU07RUFDTixPQUFPO0FBQ1Q7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsY0FBYztFQUNkLGdCQUFnQjtFQUNoQix1Q0FBdUM7RUFDdkMseUVBQXlFO0VBQ3pFLG1DQUFtQztBQUNyQztBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsYUFBYTtBQUNmOztBQUVBLG1FQUFtRTtBQUNuRSxVQUFVO0FBQ1YsbUVBQW1FO0FBQ25FLG1FQUFtRTtBQUNuRSxzQkFBc0I7QUFDdEIsbUVBQW1FO0FBQ25FO0VBQ0Usa0JBQWtCO0VBQ2xCLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLG1FQUFtRTtFQUNuRSxxQkFBcUI7RUFDckIsbUVBQW1FO0VBQ25FO0lBQ0UsaUJBQWlCO0lBQ2pCLDBCQUEwQjtFQUM1QjtBQUNGO0FBQ0E7RUFDRSxtRUFBbUU7RUFDbkUsZ0NBQWdDO0VBQ2hDLG1FQUFtRTtFQUNuRTtJQUNFLHdCQUF3QjtJQUN4QiwwQkFBMEI7RUFDNUI7QUFDRjtBQUNBO0VBQ0UsbUVBQW1FO0VBQ25FLHFCQUFxQjtFQUNyQixtRUFBbUU7RUFDbkU7SUFDRSx5QkFBeUI7SUFDekIsMEJBQTBCO0VBQzVCO0FBQ0Y7QUFDQTtFQUNFLG1FQUFtRTtFQUNuRSx1QkFBdUI7RUFDdkIsbUVBQW1FO0VBQ25FO0lBQ0UsbUJBQW1CO0lBQ25CLDRCQUE0QjtFQUM5Qjs7RUFFQTtJQUNFLHVCQUF1QjtJQUN2QixtQ0FBbUM7SUFDbkMsZ0JBQWdCO0VBQ2xCOztFQUVBO0lBQ0UseUJBQXlCO0VBQzNCOztFQUVBO0lBQ0Usd0JBQXdCO0VBQzFCOztFQUVBO0lBQ0UscUNBQXFDO0VBQ3ZDOztFQUVBO0lBQ0UsNkNBQTZDO0lBQzdDLDhDQUE4QztJQUM5QyxpQkFBaUI7RUFDbkI7RUFDQTtJQUNFLGtCQUFrQjtFQUNwQjtFQUNBO0lBQ0UsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxxQ0FBcUM7RUFDdkM7QUFDRjtBQUNBO0VBQ0UsbUVBQW1FO0VBQ25FLDhCQUE4QjtFQUM5QixtRUFBbUU7RUFDbkU7SUFDRSx1QkFBdUI7RUFDekI7O0VBRUE7SUFDRSxnQkFBZ0I7RUFDbEI7O0VBRUE7SUFDRSxhQUFhO0VBQ2Y7QUFDRiIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gKi9cbi8qIFVuaXZlcnNhbCAqL1xuLyogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogR2xvYmFsIFJlc2V0cyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZmFzdC5mb250cy5uZXQvbHQvMS5jc3M/YXBpVHlwZT1jc3MmYz0wZmIxZmU2OC05YjAyLTQ5MWYtOWY0Mi0wOWViOTk5ZjA1MGUmZm9udGlkcz01NjU2MjY4LDU2NTYyNzVcIik7XG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4qLCAqOjpiZWZvcmUsICo6OmFmdGVyIHtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBzY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uLCB0ZXh0YXJlYSwgaW5wdXQsIHNlbGVjdCwgYSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4vKiBGb250cyAvICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbi8qIFVuaXZlcnMgTmV4dCBQcm8gUmVndWxhciAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlVuaXZlcnMgTmV4dFwiO1xuICBzcmM6IHVybChcImZvbnRzL1VuaXZlcnNOZXh0LzVkYWM4NjI2LTE3MmUtNGY3Mi05OGRmLTg2NjdkZjk4OTQ5My53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvVW5pdmVyc05leHQvMDMzODU0NzgtMGEyNy00MGE3LWI2MjgtZjI0MWIxMTIyNzRhLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyogVW5pdmVycyBOZXh0IFBybyBMaWdodCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlVuaXZlcnMgTmV4dFwiO1xuICBzcmM6IHVybChcImZvbnRzL1VuaXZlcnNOZXh0LzU0YTdmOWQzLTY2MDctNGM2OS04MThlLWMyNGVhMjQ2ZDRiOS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvVW5pdmVyc05leHQvNmMyMGMzODgtN2RlNy00MWE3LTk0ZGMtOWI5NjQ0ODExZmVjLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4vKiBSb290cyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG46cm9vdCB7XG4gIC0tc2NyOiBjYWxjKCgoOTBweCArICgxMDB2dyAvIDEwMCkpLzEwMCkpO1xuICAtLWxpbmU6IGNhbGModmFyKC0tYmx1KSowLjA4KTtcbiAgLS1uYXZpLWlubmVyOiBjYWxjKCB2YXIoLS1oMS1mcykqMC43Myk7XG4gIC0tbmF2aS1vdXRlcjogY2FsYygwcHggKyAodmFyKC0tYmx1KSoyKSArICh2YXIoLS1oMS1mcykqMC43MykpO1xuICAtLUNGLVJFRDogI2ZmMDAwMDtcbiAgLS1DRi1HUkU6ICMwMGU2ODY7XG4gIC0tQ0YtUklOOiAjMTllMWZmO1xuICAtLUNHLTAwMDogIzAwMDAwMDtcbiAgLS1DRy0wMTQ6ICMyNDI0MjQ7XG4gIC0tQ0ctMDMzOiAjNGU1MTUzO1xuICAtLUNHLTA1NzogIzkxOTE4ZTtcbiAgLS1DRy0wNjM6ICM5ZWEwOWY7XG4gIC0tQ0ctMDY5OiAjYWViMGIwO1xuICAtLUNHLTA5MzogI2VkZWNlYjtcbiAgLS1DRy0xMDA6ICNmZmZmZmY7XG4gIC0tdW5pdmVyczogXCJVbml2ZXJzIE5leHRcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgLS1MSFI6IDAuODU7XG4gIC0tbi1saDogY2FsYyh2YXIoLS1ibHUpICogMSk7XG4gIC0tbi1mczogY2FsYyh2YXIoLS1uLWxoKSAqIHZhcigtLUxIUikpO1xuICAtLXAtbGg6IGNhbGModmFyKC0tYmx1KSAqIDEuNjQyODU3MTQyOSk7XG4gIC0tcC1mczogY2FsYyh2YXIoLS1wLWxoKSAqIHZhcigtLUxIUikpO1xuICAtLWgzLWxoOiBjYWxjKHZhcigtLWJsdSkgKiAyLjY0Mjg1NzE0MjkpO1xuICAtLWgzLWZzOiBjYWxjKHZhcigtLWgzLWxoKSAqIHZhcigtLUxIUikpO1xuICAtLWgxLWxoOiBjYWxjKHZhcigtLWJsdSkgKiA0LjIxNDI4NTcxNDMpO1xuICAtLWgxLWZzOiBjYWxjKHZhcigtLWgxLWxoKSAqIHZhcigtLUxIUikpO1xuICAtLXRyYW5zLWR1cmF0aW9uOiAxcztcbiAgLS10cmFucy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIC0td2ktc2V0dGluZ3M6IGNsYW1wKGNhbGModmFyKC0tYmx1KSozMyksIGNhbGMoMTAwdncgLyA4ICogMyksIGNhbGModmFyKC0tYmx1KSo0MCkpO1xuICAtLXdpLXJlbGF0ZWQ6IGNsYW1wKGNhbGModmFyKC0tYmx1KSo0NyksIGNhbGMoMTAwdncgLyA4ICogNCksIGNhbGModmFyKC0tYmx1KSo5MCkpO1xuICAtLXdpLXNhdmVkOiBjYWxjKHZhcigtLWJsdSkqMTMpO1xuICAtLWJsdXI6IDEwcHg7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogQmFzaWMgdHlwb2dyYXBoeSAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG5ib2R5LCBwLCAucCwgKiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11bml2ZXJzKTtcbiAgY29sb3I6IHZhcigtLUNPTC1URSk7XG59XG5cbmgxLCAuaDEge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5oMSwgLmgxLFxuaDIsIC5oMiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiB2YXIoLS1oMS1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1oMS1saCk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDBweCAtIHZhcigtLWgxLWxoKSAqIDAuMDgpO1xuICBtYXJnaW4tdG9wOiBjYWxjKDBweCAtIHZhcigtLWgxLWxoKSAqIDAuMDcpO1xufVxuXG5oMywgaDQsIGg1LCBoNiwgaDcsIGg4LFxuLmgzLCAuaDQsIC5oNSwgLmg2LCAuaDcsIC5oOCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiB2YXIoLS1oMy1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1oMy1saCk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDBweCAtIHZhcigtLWgzLWxoKSAqIDAuMDgpO1xuICBtYXJnaW4tdG9wOiBjYWxjKDBweCAtIHZhcigtLWgzLWxoKSAqIDAuMDcpO1xufVxuXG5wLCAucCB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiB2YXIoLS1wLWZzKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXAtbGgpO1xuICBtYXJnaW4tbGVmdDogY2FsYygwcHggLSB2YXIoLS1wLWxoKSAqIDAuMDgpO1xuICBtYXJnaW4tdG9wOiBjYWxjKDBweCAtIHZhcigtLXAtbGgpICogMC4wNyk7XG59XG5cbmg5LCAuaDkge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbi1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1uLWxoKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMHB4IC0gdmFyKC0tbi1saCkgKiAwLjA4KTtcbiAgbWFyZ2luLXRvcDogY2FsYygwcHggLSB2YXIoLS1uLWxoKSAqIDAuMDcpO1xufVxuXG5hLCBhOmxpbmssIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiB2YXIoLS1DT0wtVEUpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnR5cGUtc2FtcGxlLCAudHlwZS1zYW1wbGUgZGl2IHtcbiAgZm9udC1mYW1pbHk6IFwibWFpbi1keW5hbWljLWZvbnRcIiwgXCJVbml2ZXJzIE5leHQgTWFpblwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG4jY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249YWFdLCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWFhXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDM1KSwgY2FsYyh2YXIoLS12aCkgKiA3MCkpO1xufVxuI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWNoYW1waW9uc10sICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Y2hhbXBpb25zXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDgpLCBjYWxjKHZhcigtLXZoKSAqIDE1KSk7XG59XG4jY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249d2FmZmxlc10sICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249d2FmZmxlc10ge1xuICAtLWNhcGl0YWwtaGVpZ2h0OiBtaW4oY2FsYyh2YXIoLS12dykgKiA5KSwgY2FsYyh2YXIoLS12aCkgKiAyMCkpO1xufVxuI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWhhbmRnbG92ZXNdLCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWhhbmRnbG92ZXNdIHtcbiAgLS1jYXBpdGFsLWhlaWdodDogbWluKGNhbGModmFyKC0tdncpICogOSksIGNhbGModmFyKC0tdmgpICogMjApKTtcbn1cbiNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1taW5pbW9tXSwgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1taW5pbW9tXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDkpLCBjYWxjKHZhcigtLXZoKSAqIDIwKSk7XG59XG4jY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249c3BoaW54XSwgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1zcGhpbnhdIHtcbiAgLS1jYXBpdGFsLWhlaWdodDogbWluKGNhbGModmFyKC0tdncpICogOCksIGNhbGModmFyKC0tdmgpICogMTUpKTtcbn1cbiNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1mb3hdLCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWZveF0ge1xuICAtLWNhcGl0YWwtaGVpZ2h0OiBtaW4oY2FsYyh2YXIoLS12dykgKiA2KSwgY2FsYyh2YXIoLS12aCkgKiAxNSkpO1xufVxuI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWFscGhhYmV0XSwgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1hbHBoYWJldF0ge1xuICAtLWNhcGl0YWwtaGVpZ2h0OiBtaW4oY2FsYyh2YXIoLS12dykgKiA3KSwgY2FsYyh2YXIoLS12aCkgKiA3KSk7XG59XG4jY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249bnVtZXJhbHNdLCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPW51bWVyYWxzXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDkpLCBjYWxjKHZhcigtLXZoKSAqIDIwKSk7XG59XG4jY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Y29sbG5hbWVdLCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWNvbGxuYW1lXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDYpLCBjYWxjKHZhcigtLXZoKSAqIDE1KSk7XG59XG4jY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249aG9lZmxlcl0sICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249aG9lZmxlcl0ge1xuICAtLWNhcGl0YWwtaGVpZ2h0OiBtaW4oY2FsYyh2YXIoLS12dykgKiAxLjQpLCBjYWxjKHZhcigtLXZoKSAqIDEuNCkpO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBtYXgtd2lkdGg6IDgwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG4jY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Y3VzdG9tXSwgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1jdXN0b21dIHtcbiAgLS1jYXBpdGFsLWhlaWdodDogbWluKGNhbGModmFyKC0tdncpICogKDEwIC0gKHZhcigtLW11bHRpcGxpZXIpICogMC4yNSkpKSwgY2FsYyh2YXIoLS12aCkgKiAyNSkpO1xufVxuI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWNoYW1waW9uc10gc3BhbiwgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPXdhZmZsZXNdIHNwYW4sICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1zcGhpbnhdIHNwYW4sICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1mb3hdIHNwYW4sICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1hbHBoYWJldF0gc3BhbiwgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1jaGFtcGlvbnNdIHNwYW4sICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249d2FmZmxlc10gc3BhbiwgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1zcGhpbnhdIHNwYW4sICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Zm94XSBzcGFuLCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWFscGhhYmV0XSBzcGFuIHtcbiAgdmVydGljYWwtYWxpZ246IHVuc2V0O1xufVxuXG4jdmlldy1mb250LXNldHRpbmdzICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj13YWZmbGVzXSwgI3ZpZXctZm9udC1zZXR0aW5ncyAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPXdhZmZsZXNdLCAjdmlldy1mb250LWVkaXQgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPXdhZmZsZXNdLCAjdmlldy1mb250LWVkaXQgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj13YWZmbGVzXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDcpLCBjYWxjKHZhcigtLXZoKSAqIDE1KSk7XG59XG4jdmlldy1mb250LXNldHRpbmdzICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1jaGFtcGlvbnNdLCAjdmlldy1mb250LXNldHRpbmdzICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Y2hhbXBpb25zXSwgI3ZpZXctZm9udC1lZGl0ICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1jaGFtcGlvbnNdLCAjdmlldy1mb250LWVkaXQgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1jaGFtcGlvbnNdIHtcbiAgLS1jYXBpdGFsLWhlaWdodDogbWluKGNhbGModmFyKC0tdncpICogNSksIGNhbGModmFyKC0tdmgpICogMTApKTtcbn1cbiN2aWV3LWZvbnQtc2V0dGluZ3MgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWhhbmRnbG92ZXNdLCAjdmlldy1mb250LXNldHRpbmdzICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249aGFuZGdsb3Zlc10sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249aGFuZGdsb3Zlc10sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWhhbmRnbG92ZXNdIHtcbiAgLS1jYXBpdGFsLWhlaWdodDogbWluKGNhbGModmFyKC0tdncpICogNiksIGNhbGModmFyKC0tdmgpICogMjApKTtcbn1cbiN2aWV3LWZvbnQtc2V0dGluZ3MgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPW1pbmltb21dLCAjdmlldy1mb250LXNldHRpbmdzICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249bWluaW1vbV0sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249bWluaW1vbV0sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPW1pbmltb21dIHtcbiAgLS1jYXBpdGFsLWhlaWdodDogbWluKGNhbGModmFyKC0tdncpICogNyksIGNhbGModmFyKC0tdmgpICogMjApKTtcbn1cbiN2aWV3LWZvbnQtc2V0dGluZ3MgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPXNwaGlueF0sICN2aWV3LWZvbnQtc2V0dGluZ3MgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1zcGhpbnhdLCAjdmlldy1mb250LWVkaXQgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPXNwaGlueF0sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPXNwaGlueF0ge1xuICAtLWNhcGl0YWwtaGVpZ2h0OiBtaW4oY2FsYyh2YXIoLS12dykgKiA1KSwgY2FsYyh2YXIoLS12aCkgKiAxMCkpO1xufVxuI3ZpZXctZm9udC1zZXR0aW5ncyAjY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Zm94XSwgI3ZpZXctZm9udC1zZXR0aW5ncyAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWZveF0sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Zm94XSwgI3ZpZXctZm9udC1lZGl0ICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Zm94XSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDQpLCBjYWxjKHZhcigtLXZoKSAqIDE1KSk7XG59XG4jdmlldy1mb250LXNldHRpbmdzICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1hYV0sICN2aWV3LWZvbnQtc2V0dGluZ3MgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1hYV0sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249YWFdLCAjdmlldy1mb250LWVkaXQgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1hYV0ge1xuICAtLWNhcGl0YWwtaGVpZ2h0OiBtaW4oY2FsYyh2YXIoLS12dykgKiAyMCksIGNhbGModmFyKC0tdmgpICogNzApKTtcbn1cbiN2aWV3LWZvbnQtc2V0dGluZ3MgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWFscGhhYmV0XSwgI3ZpZXctZm9udC1zZXR0aW5ncyAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWFscGhhYmV0XSwgI3ZpZXctZm9udC1lZGl0ICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1hbHBoYWJldF0sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWFscGhhYmV0XSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDcpLCBjYWxjKHZhcigtLXZoKSAqIDUpKTtcbn1cbiN2aWV3LWZvbnQtc2V0dGluZ3MgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPW51bWVyYWxzXSwgI3ZpZXctZm9udC1zZXR0aW5ncyAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPW51bWVyYWxzXSwgI3ZpZXctZm9udC1lZGl0ICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1udW1lcmFsc10sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPW51bWVyYWxzXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDcpLCBjYWxjKHZhcigtLXZoKSAqIDE1KSk7XG59XG4jdmlldy1mb250LXNldHRpbmdzICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1ob2VmbGVyXSwgI3ZpZXctZm9udC1zZXR0aW5ncyAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWhvZWZsZXJdLCAjdmlldy1mb250LWVkaXQgI2NvbXAtdHlwZS1zYW1wbGVbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWhvZWZsZXJdLCAjdmlldy1mb250LWVkaXQgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1ob2VmbGVyXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqIDAuNiksIGNhbGModmFyKC0tdmgpICogMS40KSk7XG59XG4jdmlldy1mb250LXNldHRpbmdzICNjb21wLXR5cGUtc2FtcGxlW3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1jb2xsbmFtZV0sICN2aWV3LWZvbnQtc2V0dGluZ3MgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1jb2xsbmFtZV0sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Y29sbG5hbWVdLCAjdmlldy1mb250LWVkaXQgI2NvbXAtdHlwZS1pbml0W3R5cGUtc2FtcGxlLXNlbGVjdGlvbj1jb2xsbmFtZV0ge1xuICAtLWNhcGl0YWwtaGVpZ2h0OiBtaW4oY2FsYyh2YXIoLS12dykgKiA2KSwgY2FsYyh2YXIoLS12aCkgKiAxNSkpO1xufVxuI3ZpZXctZm9udC1zZXR0aW5ncyAjY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Y3VzdG9tXSwgI3ZpZXctZm9udC1zZXR0aW5ncyAjY29tcC10eXBlLWluaXRbdHlwZS1zYW1wbGUtc2VsZWN0aW9uPWN1c3RvbV0sICN2aWV3LWZvbnQtZWRpdCAjY29tcC10eXBlLXNhbXBsZVt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Y3VzdG9tXSwgI3ZpZXctZm9udC1lZGl0ICNjb21wLXR5cGUtaW5pdFt0eXBlLXNhbXBsZS1zZWxlY3Rpb249Y3VzdG9tXSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqICg5IC0gKHZhcigtLW11bHRpcGxpZXIpICogMC4yNSkpKSwgY2FsYyh2YXIoLS12aCkgKiAxNSkpO1xufVxuXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbi8qIENvbG9ycyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4uQ0ctMDAwIHtcbiAgLS1DT0wtSEk6IHZhcigtLUNHLTAxNCk7XG4gIC0tQ09MLUJHOiB2YXIoLS1DRy0wMDApO1xuICAtLUNPTC1ITzogdmFyKC0tQ0ctMDkzKTtcbiAgLS1DT0wtQUM6IHZhcigtLUNHLTA5Myk7XG4gIC0tQ09MLVRFOiB2YXIoLS1DRy0wNjMpO1xufVxuXG4uQ0ctMDMzIHtcbiAgLS1DT0wtSEk6IHZhcigtLUNHLTA2Myk7XG4gIC0tQ09MLUJHOiB2YXIoLS1DRy0wMzMpO1xuICAtLUNPTC1ITzogdmFyKC0tQ0ctMDU3KTtcbiAgLS1DT0wtQUM6IHZhcigtLUNHLTA2Myk7XG4gIC0tQ09MLVRFOiB2YXIoLS1DRy0wMDApO1xufVxuXG4uQ0ctMDU3IHtcbiAgLS1DT0wtSEk6IHZhcigtLUNHLTA2Myk7XG4gIC0tQ09MLUJHOiB2YXIoLS1DRy0wNTcpO1xuICAtLUNPTC1ITzogdmFyKC0tQ0ctMDMzKTtcbiAgLS1DT0wtQUM6IHZhcigtLUNHLTAxNCk7XG4gIC0tQ09MLVRFOiB2YXIoLS1DRy0wMDApO1xufVxuXG4uQ0ctMDYzIHtcbiAgLS1DT0wtSEk6IHZhcigtLUNHLTA2OSk7XG4gIC0tQ09MLUJHOiB2YXIoLS1DRy0wNjMpO1xuICAtLUNPTC1ITzogdmFyKC0tQ0ctMDMzKTtcbiAgLS1DT0wtQUM6IHZhcigtLUNHLTAxNCk7XG4gIC0tQ09MLVRFOiB2YXIoLS1DRy0wMDApO1xufVxuXG4uQ0ctMDY5IHtcbiAgLS1DT0wtSEk6IHZhcigtLUNHLTA5Myk7XG4gIC0tQ09MLUJHOiB2YXIoLS1DRy0wNjkpO1xuICAtLUNPTC1ITzogdmFyKC0tQ0ctMDU3KTtcbiAgLS1DT0wtQUM6IHZhcigtLUNHLTA1Nyk7XG4gIC0tQ09MLVRFOiB2YXIoLS1DRy0wMDApO1xufVxuXG4uQ0ctMDkzIHtcbiAgLS1DT0wtSEk6IHZhcigtLUNHLTEwMCk7XG4gIC0tQ09MLUJHOiB2YXIoLS1DRy0wOTMpO1xuICAtLUNPTC1ITzogdmFyKC0tQ0ctMDY5KTtcbiAgLS1DT0wtQUM6IHZhcigtLUNHLTA1Nyk7XG4gIC0tQ09MLVRFOiB2YXIoLS1DRy0wMDApO1xufVxuXG4uQ0ctMTAwIHtcbiAgLS1DT0wtSEk6IHZhcigtLUNHLTA5Myk7XG4gIC0tQ09MLUJHOiB2YXIoLS1DRy0xMDApO1xuICAtLUNPTC1ITzogdmFyKC0tQ0ctMDY5KTtcbiAgLS1DT0wtQUM6IHZhcigtLUNHLTA1Nyk7XG4gIC0tQ09MLVRFOiB2YXIoLS1DRy0wMDApO1xufVxuXG4ub3ZlcmxheS1hY3RpdmUge1xuICAtLUNPTC1ISTogdmFyKC0tQ0ctMDAwKTtcbiAgLS1DT0wtQkc6IHZhcigtLUNHLTAzMyk7XG4gIC0tQ09MLUhPOiB2YXIoLS1DRy0wMDApO1xuICAtLUNPTC1BQzogdmFyKC0tQ0ctMDAwKTtcbiAgLS1DT0wtVEU6IHZhcigtLUNHLTAwMCk7XG59XG5cbi8qIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICovXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ09MLUJHKTtcbn1cbmJvZHkgYTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1DT0wtSE8pO1xufVxuYm9keSAjbmF2aS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0wtQkcpO1xufVxuYm9keSAjbmF2aS1jb250YWluZXIgKjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1DT0wtSE8pO1xufVxuYm9keSAjbmF2aS1jb21wOmhvdmVyICoge1xuICBjb2xvcjogdmFyKC0tQ09MLUhPKTtcbn1cbmJvZHkgLm5hdmktc3ViOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLUNPTC1ITyk7XG59XG5ib2R5IC5pbmZvLW9wZW4tYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MLUhPKTtcbn1cbmJvZHkgLnNldHRpbmdzLW5hdmktYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ09MLUhJKTtcbn1cbmJvZHkgLnNldHRpbmdzLW5hdmktc2F2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1ISSk7XG59XG5ib2R5ICNzYXZlLXRoaXMtZm9udCBzdmcgKiB7XG4gIGZpbGw6IHZhcigtLUNPTC1ITyk7XG59XG5ib2R5ICNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0wtSEkpO1xufVxuYm9keSAjYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyIC5vcHRpb25zIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ09MLUhJKTtcbn1cbmJvZHkgI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIC5vcHRpb246aG92ZXIge1xuICBjb2xvcjogdmFyKC0tQ09MLUFDKTtcbn1cbmJvZHkgI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIC5vcHRpb24uYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLUNPTC1BQyk7XG59XG5ib2R5ICNzZWxlY3Qtc2FtcGxlLWNvbnRhaW5lciAub3B0aW9ucy1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ09MLUhJKTtcbn1cbmJvZHkgI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIC5uYXZpZ2F0aW9uOmhvdmVyICoge1xuICBjb2xvcjogdmFyKC0tQ09MLUFDKTtcbn1cbmJvZHkgI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIC5uYXZpZ2F0aW9uOmhvdmVyOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tQ09MLUFDKTtcbn1cbmJvZHkgI3JldHVybi1idG46aG92ZXIgLmFycm93LWNvbnRhaW5lcjo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLUNPTC1ITyk7XG59XG5ib2R5ICNyZXR1cm4tYnRuOmhvdmVyIC5hcnJvdy1jb250YWluZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1ITyk7XG59XG5ib2R5IC5yZWxhdGVkLWNvbnRhaW5lcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1ISSk7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogR2xvYmFsICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbmJvZHkge1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1uYXZpLW91dGVyKSAtIHZhcigtLWxpbmUpKTtcbn1cblxuLnNuYXAge1xuICBzY3JvbGwtc25hcC10eXBlOiB5IHByb3hpbWl0eTtcbn1cblxuLyogRmFkZXJzICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbi5mYWRlciB7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQsIGNvbG9yLCBvcGFjaXR5LCByaWdodCwgd2lkdGg7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zLWR1cmF0aW9uKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRyYW5zLWZ1bmN0aW9uKTtcbn1cblxuLyogQ2lyY3VsYXIgYnV0dG9ucyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4uY2lyYy1idG4ge1xuICBoZWlnaHQ6IHZhcigtLW5hdmktaW5uZXIpO1xuICB3aWR0aDogdmFyKC0tbmF2aS1pbm5lcik7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAxMDB2aDtcbiAgbWFyZ2luOiB2YXIoLS1ibHUpO1xufVxuXG4vKiBUeXBlIGRhdGEgKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLnR5cGUtZGF0YSB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyh2YXIoLS1ibHUpICogMyk7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxODBweDtcbiAgaGVpZ2h0OiAyMzBweDtcbiAgei1pbmRleDogOTk5OTtcbiAgcGFkZGluZzogdmFyKC0tYmx1KTtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50eXBlLWRhdGEgc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLUNHLTA2OSk7XG59XG5cbi8qIFR5cGUgc2FtcGxlcyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4udHlwZS1zYW1wbGUgc3ZnIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLyogTWVhc3VyZW1lbnQgb2JqZWN0cyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4jbWVhc3VyZW1lbnQtb2JqZWN0cyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAtMjAwJTtcbiAgbGVmdDogLTIwMCU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbiNtZWFzdXJlbWVudC1vYmplY3RzIC5ibHUge1xuICB3aWR0aDogdmFyKC0tYmx1KTtcbn1cblxuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4vKiBOYXZpZ2F0aW9uICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiNuYXZpLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogZmxleDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgcGFkZGluZzogdmFyKC0tYmx1KTtcbiAgei1pbmRleDogNjAwO1xufVxuXG4jbmF2aS1jb21wIHtcbiAgZGlzcGxheTogZmxleDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IHZhcigtLW5hdmktaW5uZXIpO1xuICBtYXJnaW4tdG9wOiBjYWxjKDBweCAtIHZhcigtLWJsdSkgKiAwLjE3KTtcbn1cbiNuYXZpLWNvbXAgaDEge1xuICB3aWR0aDogY2FsYyh2YXIoLS1oMS1mcykgKiAwLjUpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IHZhcigtLWgxLWZzKTtcbn1cbiNuYXZpLWNvbXAgaDE6Zmlyc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1oMS1mcykgKiAwLjE1KTtcbn1cbiNuYXZpLWNvbXAgaDE6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1ibHUpO1xufVxuI25hdmktY29tcCBoMS5sb25nOmZpcnN0LW9mLXR5cGUge1xuICB3aWR0aDogY2FsYyh2YXIoLS1oMS1mcykgKiAyLjYyKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWgxLWZzKSAqIDAuNCk7XG59XG4jbmF2aS1jb21wIGgxLmxvbmc6bGFzdC1vZi10eXBlIHtcbiAgd2lkdGg6IGNhbGModmFyKC0taDEtZnMpICogMy41Mik7XG59XG5cbiN2aWV3LWNvbXBhc3MgI25hdmktY29tcCxcbiN2aWV3LWNvbXBhc3MgI25hdmktaG9tZSxcbiN2aWV3LWZvbnQtc2V0dGluZ3MgI25hdmktc2V0dCxcbiN2aWV3LWluZm8gI25hdmktaW5mbyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogdmFyKC0tQ09MLUFDKTtcbn1cblxuLm5hdmktc3ViLWNvbnRhaW5lcixcbi5uYXZpLWVudi1jb250YWluZXIge1xuICBoZWlnaHQ6IHZhcigtLW5hdmktaW5uZXIpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGNvbHVtbi1nYXA6IGNhbGModmFyKC0tYmx1KSAqIDEpO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAxZnIgMWZyO1xuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICBtYXJnaW4tdG9wOiBjYWxjKDBweCAtIHZhcigtLW4tbGgpICogMC4yNSk7XG59XG4ubmF2aS1zdWItY29udGFpbmVyIC5uYXZpLXN1Yixcbi5uYXZpLWVudi1jb250YWluZXIgLm5hdmktc3ViIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbi1mcyk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLW4tbGgpICogMC45OCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm5hdmktZW52LWNvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjM7XG59XG5cbiNwYXJhbWV0ZXItbmF2aS1jb250YWluZXIsXG4jcmVsYXRlZC1uYXZpLWNvbnRhaW5lcixcbiNjb2xsZWN0aW9uLW5hdmktY29udGFpbmVyLFxuI3NlYXJjaC1uYXZpLWNvbnRhaW5lcixcbiNsb2dpbi1uYXZpLWNvbnRhaW5lcixcbiNwcm9maWxlLW5hdmktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogdmFyKC0td2ktc2V0dGluZ3MpO1xuICBoZWlnaHQ6IHZhcigtLW5hdmktb3V0ZXIpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICBkaXNwbGF5OiBmbGV4O1xuICB6LWluZGV4OiA2MDA7XG59XG4jcGFyYW1ldGVyLW5hdmktY29udGFpbmVyIGgxLFxuI3JlbGF0ZWQtbmF2aS1jb250YWluZXIgaDEsXG4jY29sbGVjdGlvbi1uYXZpLWNvbnRhaW5lciBoMSxcbiNzZWFyY2gtbmF2aS1jb250YWluZXIgaDEsXG4jbG9naW4tbmF2aS1jb250YWluZXIgaDEsXG4jcHJvZmlsZS1uYXZpLWNvbnRhaW5lciBoMSB7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLWJsdSk7XG4gIG1hcmdpbi10b3A6IGNhbGMoMHB4IC0gdmFyKC0taDEtbGgpICogMC4xKTtcbn1cblxuI2xvZ2luLW5hdmktY29udGFpbmVyIHtcbiAgd2lkdGg6IDUwJTtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG59XG5cbi8qIFR5cGUgc2FtcGxlIG9wdGlvbnMgKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA2MDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDA7XG59XG4jc2VsZWN0LXNhbXBsZS1jb250YWluZXIgLnRpdGxlIHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tYmx1KSAqIDAuNjUpO1xufVxuI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIC5vcHRpb24ge1xuICBmb250LXNpemU6IHZhcigtLXAtZnMpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tcC1saCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNzZWxlY3Qtc2FtcGxlLWNvbnRhaW5lciAub3B0aW9uW3R5cGUtc2FtcGxlLXNlbGVjdG9yPWFhXTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIihEZWZhdWx0KVwiO1xuICBmb250LXNpemU6IHZhcigtLW4tZnMpO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tYmx1KSAqIDAuNSk7XG59XG4jc2VsZWN0LXNhbXBsZS1jb250YWluZXIgLm9wdGlvblt0eXBlLXNhbXBsZS1zZWxlY3Rvcj1jdXN0b21dIGlucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1CRyk7XG4gIGJvcmRlcjogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgZm9udC1zaXplOiB2YXIoLS1uLWZzKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLW4tbGgpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWJsdSkgKiAwLjUpO1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWJsdSkgKiAwLjUpO1xufVxuI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIC5vcHRpb25bdHlwZS1zYW1wbGUtc2VsZWN0b3I9Y3VzdG9tXSBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tQ09MLUFDKTtcbiAgb3BhY2l0eTogMTtcbn1cbiNzZWxlY3Qtc2FtcGxlLWNvbnRhaW5lciAub3B0aW9uW3R5cGUtc2FtcGxlLXNlbGVjdG9yPWN1c3RvbV0uYWN0aXZlIGlucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4jc2VsZWN0LXNhbXBsZS1jb250YWluZXIgLm5hdmlnYXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogdmFyKC0tbmF2aS1vdXRlcik7XG4gIHBhZGRpbmc6IHZhcigtLWJsdSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBlbmQ7XG4gIGJvcmRlci1yaWdodDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiNzZWxlY3Qtc2FtcGxlLWNvbnRhaW5lciAubmF2aWdhdGlvbiBoOSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMHB4IC0gdmFyKC0tbi1mcykgKiAwLjM1KTtcbiAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1ibHUpICogMik7XG59XG4jc2VsZWN0LXNhbXBsZS1jb250YWluZXIgLm5hdmlnYXRpb246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IGNhbGModmFyKC0tbi1mcykgKiAxKTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLW4tZnMpICogMSk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAxKTtcbiAgYm90dG9tOiBjYWxjKHZhcigtLWJsdSkgKiAxLjIpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIC5vcHRpb25zLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jc2VsZWN0LXNhbXBsZS1jb250YWluZXIgLm9wdGlvbnMtc2VjdGlvbiB7XG4gIHBhZGRpbmc6IHZhcigtLWJsdSk7XG4gIGJvcmRlcjogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyLm9wZW4gLm9wdGlvbnMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiN2aWV3LWNvbXBhc3MgI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyh2YXIoLS1saW5lKSAqIDAuNSAtIDEwMCUpKTtcbn1cblxuI3ZpZXctZm9udC1zZXR0aW5ncyAjc2VsZWN0LXNhbXBsZS1jb250YWluZXIsICN2aWV3LWZvbnQtZWRpdCAjc2VsZWN0LXNhbXBsZS1jb250YWluZXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICByaWdodDogdmFyKC0td2ktc2V0dGluZ3MpO1xufVxuXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbi8qIENvbXBhc3MgVmlldyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4jY29tcGFzcy1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1uYXZpLW91dGVyKSk7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiA0MDA7XG59XG4jY29tcGFzcy1jb250YWluZXIgLmxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0wtVEUpO1xuICB6LWluZGV4OiAxMDA7XG59XG4jY29tcGFzcy1jb250YWluZXIgLmxpbmUudmVydCB7XG4gIHdpZHRoOiB2YXIoLS1saW5lKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuI2NvbXBhc3MtY29udGFpbmVyIC5saW5lLmhvcmkge1xuICBoZWlnaHQ6IHZhcigtLWxpbmUpO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbiNjb21wYXNzLWNvbnRhaW5lciAubWFya2VyLFxuI2NvbXBhc3MtY29udGFpbmVyIC5ibG9ja2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiAxMDB2aDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG59XG4jY29tcGFzcy1jb250YWluZXIgLmJsb2NrZXIge1xuICB3aWR0aDogY2FsYyh2YXIoLS1ibHUpICogMyk7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1CRyk7XG4gIHotaW5kZXg6IDIwMDtcbn1cbiNjb21wYXNzLWNvbnRhaW5lciAubWFya2VyIHtcbiAgd2lkdGg6IGNhbGModmFyKC0tYmx1KSAqIDEuNSk7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMS41KTtcbiAgYm9yZGVyOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtQkcpO1xuICBtaXgtYmxlbmQtbW9kZTogZGlmZmVyZW5jZTtcbiAgei1pbmRleDogNDAwO1xufVxuXG4jY29tcGFzcy1jb250YWluZXIsXG4jY29tcGFzcy1jb250YWluZXIgKiB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4jY29tcC10eXBlLXNhbXBsZSwgI2NvbXAtdHlwZS1pbml0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAzMDA7XG4gIC8qIGZvbnQgbWV0cmljcyAqL1xuICAtLW1haW4tZHluYW1pYy1mb250OiBcIm1haW4tZHluYW1pYy1mb250XCIsIFwiVW5pdmVycyBOZXh0XCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIC0tZm0tbGluZWdhcDogMDtcbiAgLyogZGVzaXJlZCBmb250LXNpemUgZm9yIGNhcGl0YWwgaGVpZ2h0ICovXG4gIC0tY2FwaXRhbC1oZWlnaHQ6IDIwMDtcbiAgLyogYXBwbHkgZm9udC1mYW1pbHkgKi9cbiAgZm9udC1mYW1pbHk6IHZhcigtLW1haW4tZHluYW1pYy1mb250KTtcbiAgLyogY29tcHV0ZSBmb250LXNpemUgdG8gZ2V0IGNhcGl0YWwgaGVpZ2h0IGVxdWFsIGRlc2lyZWQgZm9udC1zaXplICovXG4gIC0tY29tcHV0ZWRGb250U2l6ZTogKHZhcigtLWNhcGl0YWwtaGVpZ2h0KSAvIHZhcigtLWZtLWNhcGl0YWxIZWlnaHQpKTtcbiAgZm9udC1zaXplOiBjYWxjKHZhcigtLWNvbXB1dGVkRm9udFNpemUpICogMXB4KTtcbiAgLyogY29tcHV0ZSBsaW5lLWhlaWdodDogbm9ybWFsIGFuZCBjb250ZW50LWFyZWHigJlzIGhlaWdodCAqL1xuICAtLWxpbmVoZWlnaHROb3JtYWw6ICh2YXIoLS1mbS1hc2NlbmRlcikgKyB2YXIoLS1mbS1kZXNjZW5kZXIpICsgdmFyKC0tZm0tbGluZWdhcCkpO1xuICAtLWNvbnRlbnRBcmVhOiAodmFyKC0tbGluZWhlaWdodE5vcm1hbCkgKiB2YXIoLS1jb21wdXRlZEZvbnRTaXplKSk7XG4gIC8qIGNvbXB1dGUgZGlzdGFuY2UgZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBjYXBpdGFsIGxldHRlciB0byB0aGUgYm90dG9tIGVkZ2UgYW5kIGRpc3RhbmNlIGZyb20gdGhlIHRvcCBvZiB0aGUgY2FwaXRhbCBsZXR0ZXIgdG8gdGhlIHRvcCBlZGdlICovXG4gIC0tZGlzdGFuY2VCb3R0b206ICh2YXIoLS1mbS1kZXNjZW5kZXIpKTtcbiAgLS1kaXN0YW5jZVRvcDogKHZhcigtLWZtLWFzY2VuZGVyKSAtIHZhcigtLWZtLWNhcGl0YWxIZWlnaHQpKTtcbiAgLyogY29tcHV0ZSB2ZXJ0aWNhbC1hbGlnbiAqL1xuICAtLXZhbGlnbjogKCh2YXIoLS1kaXN0YW5jZUJvdHRvbSkgLSB2YXIoLS1kaXN0YW5jZVRvcCkpICogdmFyKC0tY29tcHV0ZWRGb250U2l6ZSkpO1xuICAvKiBkZXNpcmVkIGxpbmUtaGVpZ2h0ICovXG4gIGxpbmUtaGVpZ2h0OiAxZW07XG59XG4jY29tcC10eXBlLXNhbXBsZSBzcGFuLCAjY29tcC10eXBlLWluaXQgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvKiBhcHBseSBmb250LWZhbWlseSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWFpbi1keW5hbWljLWZvbnQpO1xuICAvKiBjb21wdXRlIHZlcnRpY2FsLWFsaWduICovXG4gIHZlcnRpY2FsLWFsaWduOiBjYWxjKHZhcigtLXZhbGlnbikgKiAtMXB4KTtcbn1cblxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcbiAgI2NvbXAtdHlwZS1zYW1wbGUgc3BhbiwgI2NvbXAtdHlwZS1pbml0IHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxufVxuI2NvbXAtY2xpY2staW5mbyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1ibHUpICogMSk7XG4gIGNvbG9yOiB2YXIoLS1DT0wtVEUpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB6LWluZGV4OiA0MDA7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogU2V0dGluZ3MgVmlldyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4jc2V0dGluZ3MtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBzY3JvbGwtc25hcC1hbGlnbjogZW5kO1xufVxuXG4jdmlldy1mb250LXNldHRpbmdzICNzZXR0aW5ncy1wcmV2aWV3IC50eXBlLXNhbXBsZS1jb250YWluZXIsICN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcHJldmlldyAudHlwZS1zYW1wbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGModmFyKC0tYmx1KSAqIDIuOSk7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLWJsdSkgKiA2LjYpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuI3ZpZXctZm9udC1zZXR0aW5ncyAjc2V0dGluZ3MtcHJldmlldyAudHlwZS1zYW1wbGUtY29udGFpbmVyIC5zcGxpdC1sZWZ0LCAjdmlldy1mb250LWVkaXQgI3NldHRpbmdzLXByZXZpZXcgLnR5cGUtc2FtcGxlLWNvbnRhaW5lciAuc3BsaXQtbGVmdCB7XG4gIHdpZHRoOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xufVxuI3ZpZXctZm9udC1zZXR0aW5ncyAjc2V0dGluZ3MtcHJldmlldyAudHlwZS1zYW1wbGUtY29udGFpbmVyIC5zcGxpdC1sZWZ0ID4gLnR5cGUtc2FtcGxlLCAjdmlldy1mb250LWVkaXQgI3NldHRpbmdzLXByZXZpZXcgLnR5cGUtc2FtcGxlLWNvbnRhaW5lciAuc3BsaXQtbGVmdCA+IC50eXBlLXNhbXBsZSB7XG4gIGxlZnQ6IDEwMCU7XG59XG4jdmlldy1mb250LXNldHRpbmdzICNzZXR0aW5ncy1wcmV2aWV3IC50eXBlLXNhbXBsZS1jb250YWluZXIgLnNwbGl0LXJpZ2h0LCAjdmlldy1mb250LWVkaXQgI3NldHRpbmdzLXByZXZpZXcgLnR5cGUtc2FtcGxlLWNvbnRhaW5lciAuc3BsaXQtcmlnaHQge1xuICB3aWR0aDogNTAlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbn1cbiN2aWV3LWZvbnQtc2V0dGluZ3MgI3NldHRpbmdzLXByZXZpZXcgLnR5cGUtc2FtcGxlLWNvbnRhaW5lciAuc3BsaXQtcmlnaHQgPiAudHlwZS1zYW1wbGUsICN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcHJldmlldyAudHlwZS1zYW1wbGUtY29udGFpbmVyIC5zcGxpdC1yaWdodCA+IC50eXBlLXNhbXBsZSB7XG4gIGxlZnQ6IDAlO1xufVxuXG4jc2V0dGluZ3MtcHJldmlldyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1uYXZpLW91dGVyKSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS13aS1zZXR0aW5ncykpO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHRvcDogdmFyKC0tbmF2aS1vdXRlcik7XG59XG4jc2V0dGluZ3MtcHJldmlld1tzYXZlLXN0YXRlPXllc10gI3NhdmUtdGhpcy1mb250IHN2ZyAqIHtcbiAgZmlsbDogdmFyKC0tQ0YtUkVEKTtcbn1cbiNzZXR0aW5ncy1wcmV2aWV3W3NhdmUtc3RhdGU9eWVzXSAjc2F2ZS10aGlzLWZvbnQ6aG92ZXIgc3ZnICoge1xuICBmaWxsOiB2YXIoLS1DRi1SRUQpO1xufVxuI3NldHRpbmdzLXByZXZpZXcgI2J1eS10aGlzLWZvbnQ6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tQ09MLVRFKTtcbn1cblxuI3NldHRpbmdzLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogdmFyKC0td2ktc2V0dGluZ3MpO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbiNzZXR0aW5ncy1wcmV2aWV3LW5hdmkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMy43KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXRvcDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbn1cblxuI2ZvbnQtbmFtZXMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDQwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1uLWZzKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLW4tbGgpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xufVxuI2ZvbnQtbmFtZXMtY29udGFpbmVyID4gZGl2IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4jZm9udC1uYW1lcy1jb250YWluZXIgZGl2IHtcbiAgcGFkZGluZzogdmFyKC0tYmx1KTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAyLjkpO1xufVxuI2ZvbnQtbmFtZXMtY29udGFpbmVyIGRpdjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbn1cbiNmb250LW5hbWVzLWNvbnRhaW5lciBkaXY6aG92ZXIgLnJlc2V0IHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuI2ZvbnQtbmFtZXMtY29udGFpbmVyIC5pbml0aWFsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNmb250LW5hbWVzLWNvbnRhaW5lciAuaW5pdGlhbDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1ISSk7XG59XG4jZm9udC1uYW1lcy1jb250YWluZXIgLnJlc2V0IHtcbiAgY29sb3I6IHZhcigtLUNGLVJFRCk7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tYmx1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBub25lO1xufVxuI2ZvbnQtbmFtZXMtY29udGFpbmVyIC5yZXNldDpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1DT0wtVEUpO1xufVxuI2ZvbnQtbmFtZXMtY29udGFpbmVyLnVuZXF1YWwgLmluaXRpYWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnNldHRpbmdzLW5hdmktYnRuIHtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogdmFyKC0taDMtZnMpO1xuICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMi4xKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgd2lkdGg6IGNhbGMoKDEwMCUgLSB2YXIoLS1ibHUpICogMy43KSAvIDEyICogMyk7XG59XG4uc2V0dGluZ3MtbmF2aS1idG4jb3Blbi1yZWxhdGVkLWZvbnQge1xuICB3aWR0aDogY2FsYygoMTAwJSAtIHZhcigtLWJsdSkgKiAzLjcpIC8gMTIgKiA2KTtcbn1cblxuYS5zZXR0aW5ncy1uYXZpLWJ0biB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNldHRpbmdzLW5hdmktc2F2ZSB7XG4gIHdpZHRoOiBjYWxjKHZhcigtLWJsdSkgKiAzLjcpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNldHRpbmdzLW5hdmktc2F2ZSxcbi5zZXR0aW5ncy1uYXZpLWJ0biB7XG4gIHBhZGRpbmc6IHZhcigtLWJsdSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3NhdmUtdGhpcy1mb250IHN2ZyB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jc2F2ZS10aGlzLWZvbnQ6aG92ZXIgc3ZnICoge1xuICBmaWxsOiB2YXIoLS1DT0wtQUMpO1xufVxuXG4vKiBQYXJhbWV0ZXIgU2V0dGluZ3MgKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuI3BhcmFtZXRlci1zZXR0aW5ncy1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogdmFyKC0tbmF2aS1vdXRlcik7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLW5hdmktb3V0ZXIpKTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIge1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyICoge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLnRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLmxhYmVscyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMjAwO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubGFiZWxzIGg5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubGFiZWxzIGg5IC5yZW1vdmUge1xuICBjb250ZW50OiBcIlJlbW92ZVwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcmlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ibHUpO1xuICBjb2xvcjogdmFyKC0tQ0YtUkVEKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAudHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ibHUpICogMC43KTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAyLjY1KTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMHB4IC0gdmFyKC0tYmx1KSAqIDAuMyk7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tYmx1KSAqIDAuMjUpO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAudHJhY2sgLmRyYWctYXJlYSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLnRyYWNrLmhvdmVyIC5kcmFnLWFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLnNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAyLjY1KTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGZvbnQtc2l6ZTogdmFyKC0taDEtZnMpO1xuICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMy41KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubW9yZSB7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tYmx1KSAqIDIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi10b3A6IGNhbGMoMHB4IC0gdmFyKC0tYmx1KSAqIDEpO1xuICB6LWluZGV4OiAxMDA7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyIC5tb3JlIC5kcmFnLWFyZWEge1xuICBsZWZ0OiAwO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubGVzcyB7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1ibHUpICogMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXRvcDogY2FsYygwcHggLSB2YXIoLS1ibHUpICogMSk7XG4gIHotaW5kZXg6IDEwMDtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLmxlc3MgLmRyYWctYXJlYSB7XG4gIHJpZ2h0OiAwO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAub3B0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiBjYWxjKDBweCAtIHZhcigtLWxpbmUpKTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWxpbmUpICogMik7XG4gIHBhZGRpbmc6IHZhcigtLWJsdSk7XG4gIGJvcmRlcjogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgei1pbmRleDogMTAwO1xuICBtYXgtaGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAxMCk7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAub3B0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAub3B0aW9uLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1DT0wtQUMpO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAub3B0aW9uLmFjdGl2ZTpob3Zlcjo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLm9wdGlvbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1DT0wtSE8pO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAuYWxsLW5vIHtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1ibHUpICogMC4yNSk7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyIC5hbGwtbm86aG92ZXIge1xuICBjb2xvcjogdmFyKC0tQ0YtUkVEKTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLm1vcmU6OmJlZm9yZSwgI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubGVzczo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHdpZHRoOiBjYWxjKHZhcigtLW4tZnMpICogMSk7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1uLWZzKSAqIDEpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHRvcDogNTAlO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubW9yZTo6YmVmb3JlIHtcbiAgbGVmdDogY2FsYygwcHggLSB2YXIoLS1ibHUpICogMC4yKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVYKDUwJSk7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyIC5sZXNzOjpiZWZvcmUge1xuICByaWdodDogY2FsYygwcHggKyB2YXIoLS1ibHUpICogMC40KTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGVYKC01MCUpO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubW9yZTpob3Zlcjo6YmVmb3JlLCAjYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyIC5sZXNzOmhvdmVyOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLUNPTC1ITyk7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyLm9wZW4gLm9wdGlvbnMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyLnVuZXF1YWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0wtSEkpO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lci51bmVxdWFsLnJlc2V0ICoge1xuICBjb2xvcjogdmFyKC0tQ0YtUkVEKTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIudW5lcXVhbC5yZXNldCAuYWN0aXZlOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tQ0YtUkVEKTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXI6aG92ZXIgLmxhYmVscyBoOSAucmVtb3ZlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXI6aG92ZXIgLmxhYmVscyBoOSAucmVtb3ZlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLUNPTC1URSk7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyOmhvdmVyIC5tb3JlOjpiZWZvcmUsICNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXI6aG92ZXIgLmxlc3M6OmJlZm9yZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItdHlwZT1kcm9wZG93bl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXR5cGU9ZHJvcGRvd25dIC50aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItdHlwZT1kcm9wZG93bl0gLnJlbW92ZSB7XG4gIGNvbnRlbnQ6IFwiUmVtb3ZlXCI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICByaWdodDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWJsdSk7XG4gIGNvbG9yOiB2YXIoLS1DRi1SRUQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDEwMDtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXR5cGU9ZHJvcGRvd25dIC5zZWxlY3QtYXJlYSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItdHlwZT1kcm9wZG93bl0gPiAuYWN0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDIuNjUpO1xuICBmb250LXNpemU6IHZhcigtLWgxLWZzKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDMuNSk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tYmx1KSAqIDAuMjUpO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXR5cGU9ZHJvcGRvd25dID4gLmFjdGl2ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogY2FsYyh2YXIoLS1uLWZzKSAqIDEpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tbi1mcykgKiAxKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDEpO1xuICBib3R0b206IGNhbGModmFyKC0tYmx1KSAqIDEuMik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgYm90dG9tO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyW3Bhci10eXBlPWRyb3Bkb3duXTpudGgtY2hpbGQob2RkKSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXR5cGU9ZHJvcGRvd25dOmhvdmVyIC5yZW1vdmUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItdHlwZT1kcm9wZG93bl06aG92ZXIgLnJlbW92ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1DT0wtVEUpO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItc2VsZWN0PXNpbmdsZV0gLm9wdGlvbnMge1xuICBwYWRkaW5nOiB1bnNldDtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXNlbGVjdD1zaW5nbGVdIC5vcHRpb24ge1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMy4yKTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXNlbGVjdD1zaW5nbGVdIC5vcHRpb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXNlbGVjdD1zaW5nbGVdIC5vcHRpb24uYWN0aXZlOmhvdmVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItc2VsZWN0PXNpbmdsZV0uZXZlbiAub3B0aW9ucyB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyW3Bhci1zZWxlY3Q9c2luZ2xlXS5vZGQgLm9wdGlvbnMge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItc2VsZWN0PW11bHRpXSAub3B0aW9uLmFjdGl2ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1DRi1SRUQpO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItc2VsZWN0PW11bHRpXSAub3B0aW9uLmFjdGl2ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlJlbW92ZVwiO1xuICBkaXNwbGF5OiBub25lO1xuICBjb2xvcjogdmFyKC0tQ0YtUkVEKTtcbiAgZm9udC1zaXplOiB2YXIoLS1uLWZzKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiBjYWxjKDBweCAtIHZhcigtLWJsdSkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHJnYigyNTUsIDI1NSwgMjU1KSBjYWxjKHZhcigtLWJsdSkgKiAyKSk7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1ibHUpICogMik7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLWJsdSk7XG4gIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWJsdSkgKiAwLjE0KTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXNlbGVjdD1tdWx0aV0gLm9wdGlvbi5hY3RpdmU6aG92ZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogdW5zZXQ7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyW3Bhci12YWx1ZT1cIlwiXSAuYWxsLW5vOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLUNPTC1ITyk7XG59XG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyW3Bhci12YWx1ZT1cIjBcIl0gLmxlc3M6OmJlZm9yZSxcbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXZhbHVlPVwiMTAwXCJdIC5tb3JlOjpiZWZvcmUsXG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyW3Bhci12YWx1ZT1cIjBcIl0gLmxlc3MgLmRyYWctYXJlYSxcbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXZhbHVlPVwiMTAwXCJdIC5tb3JlIC5kcmFnLWFyZWEge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItdmFsdWU9XCIxXCJdIC5sZXNzOjpiZWZvcmUsXG4jYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyW3Bhci12YWx1ZT1cIjJcIl0gLmxlc3M6OmJlZm9yZSB7XG4gIHJpZ2h0OiB1bnNldDtcbiAgbGVmdDogY2FsYygwcHggLSB2YXIoLS1ibHUpICogMC45KTtcbn1cbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXZhbHVlPVwiOTlcIl0gLm1vcmU6OmJlZm9yZSxcbiNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXZhbHVlPVwiOThcIl0gLm1vcmU6OmJlZm9yZSB7XG4gIGxlZnQ6IHVuc2V0O1xuICByaWdodDogY2FsYygwcHggLSB2YXIoLS1ibHUpICogMC4xKTtcbn1cblxuI2FjdGktcGFyYW1ldGVyLWRyb3Bkb3duIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbn1cbiNhY3RpLXBhcmFtZXRlci1kcm9wZG93biAuZW5kLWNhcCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbn1cbiNhY3RpLXBhcmFtZXRlci1kcm9wZG93biAuZW5kLWNhcDpudGgtb2YtdHlwZShvZGQpLFxuI2FjdGktcGFyYW1ldGVyLWRyb3Bkb3duIC5lbmQtY2FwOm50aC1jaGlsZCgxKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNpZGxlLXBhcmFtZXRlci1jb250YWluZXIge1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICBib3JkZXItdG9wOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAxMik7XG59XG4jaWRsZS1wYXJhbWV0ZXItY29udGFpbmVyIC5yZW1vdmUsICNpZGxlLXBhcmFtZXRlci1jb250YWluZXIgLmxhYmVscywgI2lkbGUtcGFyYW1ldGVyLWNvbnRhaW5lciAuYWN0aXZlLCAjaWRsZS1wYXJhbWV0ZXItY29udGFpbmVyIC5zZWxlY3QtYXJlYSwgI2lkbGUtcGFyYW1ldGVyLWNvbnRhaW5lciAub3B0aW9ucywgI2lkbGUtcGFyYW1ldGVyLWNvbnRhaW5lciAudHJhY2sge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2lkbGUtcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNsZWFyOiBub25lO1xuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAwLjMpO1xufVxuI2lkbGUtcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAqIHtcbiAgZm9udC1zaXplOiB2YXIoLS1wLWZzKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXAtbGgpO1xufVxuI2lkbGUtcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcjpub3QoOmxhc3QtY2hpbGQpIC50aXRsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIixcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI2lkbGUtcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lci51bmVxdWFsICoge1xuICBjb2xvcjogdmFyKC0tQ09MLVRFKTtcbn1cbiNpZGxlLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIudW5lcXVhbC5yZXNldCAqIHtcbiAgY29sb3I6IHZhcigtLUNGLVJFRCk7XG59XG4jaWRsZS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyLnVuZXF1YWwgKjo6YWZ0ZXIsXG4jaWRsZS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyLnVuZXF1YWwucmVzZXQgKjo6YWZ0ZXIge1xuICBjb2xvcjogdmFyKC0tQ09MLVRFKTtcbn1cbiNpZGxlLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXI6aG92ZXIgKiB7XG4gIGNvbG9yOiB2YXIoLS1DT0wtSE8pO1xufVxuXG4jaWRsZS1wYXJhbWV0ZXJzIHtcbiAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1ibHUpICogMC4yNSk7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogUmVsYXRlZCBGb250cyB2aWV3ICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiNyZWxhdGVkLWZvbnRzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogY2FsYygxMDB2aCAtIHZhcigtLW5hdmktb3V0ZXIpKTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygwcHggLSB2YXIoLS1saW5lKSk7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbiNyZWxhdGVkLW5hdmktY29udGFpbmVyIHtcbiAgcmlnaHQ6IGNhbGModmFyKC0td2ktc2V0dGluZ3MpIC0gdmFyKC0td2ktcmVsYXRlZCkpO1xuICB3aWR0aDogdmFyKC0td2ktcmVsYXRlZCk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnJlbGF0ZWQtb3BlbiAjcmVsYXRlZC1uYXZpLWNvbnRhaW5lciB7XG4gIHJpZ2h0OiAwO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnJlbGF0ZWQtb3BlbiAjcmV0dXJuLWJ0biB7XG4gIHJpZ2h0OiB2YXIoLS13aS1yZWxhdGVkKTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5yZWxhdGVkLW9wZW4gI3JldHVybi1idG4gLmFycm93LWNvbnRhaW5lciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xufVxuLnJlbGF0ZWQtb3BlbiAjcGFyYW1ldGVyLW5hdmktY29udGFpbmVyIHtcbiAgcmlnaHQ6IGNhbGModmFyKC0td2ktcmVsYXRlZCkgLSB2YXIoLS13aS1zZXR0aW5ncykpO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4ucmVsYXRlZC1vcGVuICNzZWxlY3Qtc2FtcGxlLWNvbnRhaW5lciAubmF2aWdhdGlvbjo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgYm90dG9tOiBjYWxjKHZhcigtLWJsdSkgKiAwLjgpO1xufVxuLnJlbGF0ZWQtb3BlbiN2aWV3LWZvbnQtc2V0dGluZ3MgI3NlbGVjdC1zYW1wbGUtY29udGFpbmVyIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICByaWdodDogdmFyKC0td2ktcmVsYXRlZCk7XG59XG5cbiNyZXR1cm4tYnRuIHtcbiAgLS1zdHJva2U6IGNhbGModmFyKC0taDEtbGgpICogMC4wNik7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiB2YXIoLS13aS1zZXR0aW5ncyk7XG4gIHotaW5kZXg6IDYwMDtcbiAgaGVpZ2h0OiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgd2lkdGg6IHZhcigtLW5hdmktb3V0ZXIpO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNHLTAwMCk7XG4gIGFsaWduLWl0ZW1zOiBlbmQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNyZXR1cm4tYnRuIC5hcnJvdy1jb250YWluZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgZWFzZS1pbi1vdXQ7XG59XG4jcmV0dXJuLWJ0biAuYXJyb3ctY29udGFpbmVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1ibHUpICogMik7XG4gIHdpZHRoOiB2YXIoLS1zdHJva2UpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0wtVEUpO1xufVxuI3JldHVybi1idG4gLmFycm93LWNvbnRhaW5lcjo6YWZ0ZXIge1xuICAtLXNpZGU6IGNhbGModmFyKC0tYmx1KSAqIDIpO1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXI6IHNvbGlkIHZhcigtLUNPTC1URSkgdmFyKC0tc3Ryb2tlKTtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICB3aWR0aDogdmFyKC0tc2lkZSk7XG4gIGhlaWdodDogdmFyKC0tc2lkZSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKHZhcigtLWJsdSkgKiAwLjcpO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG59XG5cbiNyZWxhdGVkLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tbGluZSkpO1xufVxuXG4ucmVsYXRlZC1jb250YWluZXIge1xuICAtLWNhcGl0YWwtaGVpZ2h0OiBjYWxjKHZhcigtLXZ3KSAqIDcpO1xuICBkaXNwbGF5OiBncmlkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBlbmQ7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIGJvcmRlci1yaWdodDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDQgKyAxcHggKiB2YXIoLS1jYXBpdGFsLWhlaWdodCkgKiAyKTtcbiAgbWluLWhlaWdodDogMTAwJTtcbn1cbi5yZWxhdGVkLWNvbnRhaW5lciAudHlwZS1zYW1wbGUtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1ibHUpICogNCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiB2YXIoLS1ibHUpO1xuICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tYmx1KSAqIDIpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xufVxuLnJlbGF0ZWQtY29udGFpbmVyIC50eXBlLXNhbXBsZS1jb250YWluZXIgLnR5cGUtc2FtcGxlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiBmb250IG1ldHJpY3MgKi9cbiAgLS1mbS1saW5lZ2FwOiAwO1xuICAvKiBjb21wdXRlIGZvbnQtc2l6ZSB0byBnZXQgY2FwaXRhbCBoZWlnaHQgZXF1YWwgZGVzaXJlZCBmb250LXNpemUgKi9cbiAgLS1jb21wdXRlZEZvbnRTaXplOiAodmFyKC0tY2FwaXRhbC1oZWlnaHQpIC8gdmFyKC0tZm0tY2FwaXRhbEhlaWdodCkpO1xuICBmb250LXNpemU6IGNhbGModmFyKC0tY29tcHV0ZWRGb250U2l6ZSkgKiAxcHgpO1xuICAvKiBjb21wdXRlIGxpbmUtaGVpZ2h0OiBub3JtYWwgYW5kIGNvbnRlbnQtYXJlYeKAmXMgaGVpZ2h0ICovXG4gIC0tbGluZWhlaWdodE5vcm1hbDogKHZhcigtLWZtLWFzY2VuZGVyKSArIHZhcigtLWZtLWRlc2NlbmRlcikgKyB2YXIoLS1mbS1saW5lZ2FwKSk7XG4gIC0tY29udGVudEFyZWE6ICh2YXIoLS1saW5laGVpZ2h0Tm9ybWFsKSAqIHZhcigtLWNvbXB1dGVkRm9udFNpemUpKTtcbiAgLyogY29tcHV0ZSBkaXN0YW5jZSBmcm9tIHRoZSBib3R0b20gb2YgdGhlIGNhcGl0YWwgbGV0dGVyIHRvIHRoZSBib3R0b20gZWRnZSBhbmQgZGlzdGFuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZSBjYXBpdGFsIGxldHRlciB0byB0aGUgdG9wIGVkZ2UgKi9cbiAgLS1kaXN0YW5jZUJvdHRvbTogKHZhcigtLWZtLWRlc2NlbmRlcikpO1xuICAtLWRpc3RhbmNlVG9wOiAodmFyKC0tZm0tYXNjZW5kZXIpIC0gdmFyKC0tZm0tY2FwaXRhbEhlaWdodCkpO1xuICAvKiBjb21wdXRlIHZlcnRpY2FsLWFsaWduICovXG4gIC0tdmFsaWduOiAoKHZhcigtLWRpc3RhbmNlQm90dG9tKSAtIHZhcigtLWRpc3RhbmNlVG9wKSkgKiB2YXIoLS1jb21wdXRlZEZvbnRTaXplKSk7XG4gIC8qIGRlc2lyZWQgbGluZS1oZWlnaHQgKi9cbiAgLS1saW5lLWhlaWdodDogMWVtO1xuICBsaW5lLWhlaWdodDogY2FsYygodmFyKC0tbGluZS1oZWlnaHQpICogdmFyKC0tY2FwaXRhbC1oZWlnaHQpIC0gdmFyKC0tdmFsaWduKSkgKiAxcHgpO1xufVxuLnJlbGF0ZWQtY29udGFpbmVyIC50eXBlLXNhbXBsZS1jb250YWluZXIgLnR5cGUtc2FtcGxlIHNwYW4ge1xuICAvKiBjb21wdXRlIHZlcnRpY2FsLWFsaWduICovXG4gIHZlcnRpY2FsLWFsaWduOiBjYWxjKHZhcigtLXZhbGlnbikgKiAtMXB4KTtcbn1cbi5yZWxhdGVkLWNvbnRhaW5lciAuc3BlY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IHZhcigtLWJsdSk7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG59XG4ucmVsYXRlZC1jb250YWluZXIgLnNwZWNzIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ucmVsYXRlZC1jb250YWluZXIgLnNwZWNzIGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiRm9udCBkZXRhaWxzXCI7XG59XG4ucmVsYXRlZC1jb250YWluZXIgLnNwZWNzIC5zcGVjIHtcbiAgZm9udC1zaXplOiB2YXIoLS1uLWZzKTtcbn1cbi5yZWxhdGVkLWNvbnRhaW5lciAuc3BlY3MgLnNwZWM6bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLWJsdSk7XG4gIHdpZHRoOiBjYWxjKHZhcigtLWJsdSkgKiAyMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnJlbGF0ZWQtY29udGFpbmVyIC5zcGVjcyAuc3BlYzpsYXN0LWNoaWxkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogdmFyKC0tYmx1KTtcbn1cbi5yZWxhdGVkLWNvbnRhaW5lci5sYXJnZSB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDQ7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IGNhbGModmFyKC0tdncpICogMTYpO1xufVxuLnJlbGF0ZWQtY29udGFpbmVyLm1lZGl1IHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgLS1jYXBpdGFsLWhlaWdodDogY2FsYyh2YXIoLS12dykgKiA4KTtcbn1cbi5yZWxhdGVkLWNvbnRhaW5lci5zbWFsbCB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IGNhbGModmFyKC0tdncpICogNCk7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogNCArIDFweCAqIHZhcigtLWNhcGl0YWwtaGVpZ2h0KSAqIDMpO1xufVxuLnJlbGF0ZWQtY29udGFpbmVyLnNtYWxsIC5zcGVjIGEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogdmFyKC0tYmx1KTtcbiAgcmlnaHQ6IHZhcigtLWJsdSk7XG59XG4ucmVsYXRlZC1jb250YWluZXIuc21hbGwgLnNwZWMgYTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJEZXRhaWxzXCI7XG59XG4ucmVsYXRlZC1jb250YWluZXIuc21hbGwgLnNwZWM6bGFzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucmVsYXRlZC1jb250YWluZXIuc21hbGwgLnNwZWM6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5yZWxhdGVkLWNvbnRhaW5lci5zbWFsbCArIC5yZWxhdGVkLWNvbnRhaW5lci5sYXJnZSwgLnJlbGF0ZWQtY29udGFpbmVyLnNtYWxsICsgLnJlbGF0ZWQtY29udGFpbmVyLm1lZGl1LCAucmVsYXRlZC1jb250YWluZXIubWVkaXUgKyAucmVsYXRlZC1jb250YWluZXIubGFyZ2Uge1xuICBiYWNrZ3JvdW5kOiByZWQ7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogQ29sbGVjdGlvbiBWaWV3ICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiNjb2xsZWN0aW9uLWhlYWRlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uYXZpLW91dGVyKSArIHZhcigtLWxpbmUpKTtcbn1cbiNjb2xsZWN0aW9uLWhlYWRlci1jb250YWluZXIgLmNvbGwtbmFtZSB7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IG1pbihjYWxjKHZhcigtLXZ3KSAqICgyMCAtICh2YXIoLS1tdWx0aXBsaWVyKSAqIDAuOSkpKSwgY2FsYyh2YXIoLS12aCkgKiAzMCkpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tYmx1KSAqIDIpO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvKiBmb250IG1ldHJpY3MgKi9cbiAgLS1mbS1saW5lZ2FwOiAwO1xuICAvKiBjb21wdXRlIGZvbnQtc2l6ZSB0byBnZXQgY2FwaXRhbCBoZWlnaHQgZXF1YWwgZGVzaXJlZCBmb250LXNpemUgKi9cbiAgLS1jb21wdXRlZEZvbnRTaXplOiAodmFyKC0tY2FwaXRhbC1oZWlnaHQpIC8gdmFyKC0tZm0tY2FwaXRhbEhlaWdodCkpO1xuICBmb250LXNpemU6IGNhbGModmFyKC0tY29tcHV0ZWRGb250U2l6ZSkgKiAxcHgpO1xuICAvKiBjb21wdXRlIGxpbmUtaGVpZ2h0OiBub3JtYWwgYW5kIGNvbnRlbnQtYXJlYeKAmXMgaGVpZ2h0ICovXG4gIC0tbGluZWhlaWdodE5vcm1hbDogKHZhcigtLWZtLWFzY2VuZGVyKSArIHZhcigtLWZtLWRlc2NlbmRlcikgKyB2YXIoLS1mbS1saW5lZ2FwKSk7XG4gIC0tY29udGVudEFyZWE6ICh2YXIoLS1saW5laGVpZ2h0Tm9ybWFsKSAqIHZhcigtLWNvbXB1dGVkRm9udFNpemUpKTtcbiAgLyogY29tcHV0ZSBkaXN0YW5jZSBmcm9tIHRoZSBib3R0b20gb2YgdGhlIGNhcGl0YWwgbGV0dGVyIHRvIHRoZSBib3R0b20gZWRnZSBhbmQgZGlzdGFuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZSBjYXBpdGFsIGxldHRlciB0byB0aGUgdG9wIGVkZ2UgKi9cbiAgLS1kaXN0YW5jZUJvdHRvbTogKHZhcigtLWZtLWRlc2NlbmRlcikpO1xuICAtLWRpc3RhbmNlVG9wOiAodmFyKC0tZm0tYXNjZW5kZXIpIC0gdmFyKC0tZm0tY2FwaXRhbEhlaWdodCkpO1xuICAvKiBjb21wdXRlIHZlcnRpY2FsLWFsaWduICovXG4gIC0tdmFsaWduOiAoKHZhcigtLWRpc3RhbmNlQm90dG9tKSAtIHZhcigtLWRpc3RhbmNlVG9wKSkgKiB2YXIoLS1jb21wdXRlZEZvbnRTaXplKSk7XG4gIC8qIGRlc2lyZWQgbGluZS1oZWlnaHQgKi9cbiAgLS1saW5lLWhlaWdodDogMWVtO1xuICBsaW5lLWhlaWdodDogY2FsYygodmFyKC0tbGluZS1oZWlnaHQpICogdmFyKC0tY2FwaXRhbC1oZWlnaHQpIC0gdmFyKC0tdmFsaWduKSkgKiAxcHgpO1xufVxuI2NvbGxlY3Rpb24taGVhZGVyLWNvbnRhaW5lciAuY29sbC1uYW1lIHNwYW4ge1xuICAvKiBhcHBseSBmb250LWZhbWlseSAqL1xuICBmb250LWZhbWlseTogdmFyKC0tbWFpbi1keW5hbWljLWZvbnQpO1xuICAvKiBjb21wdXRlIHZlcnRpY2FsLWFsaWduICovXG4gIHZlcnRpY2FsLWFsaWduOiBjYWxjKHZhcigtLXZhbGlnbikgKiAtMXB4KTtcbn1cbiNjb2xsZWN0aW9uLWhlYWRlci1jb250YWluZXIgLmNvbGwtc3BlY3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7XG4gIGdyaWQtY29sdW1uLWdhcDogdmFyKC0tYmx1KTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ibHUpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ibHUpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tYmx1KTtcbn1cbiNjb2xsZWN0aW9uLWhlYWRlci1jb250YWluZXIgLmNvbGwtc3BlY3MgZGl2Om50aC1sYXN0LWNoaWxkKDIpIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMztcbiAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1ibHUpICogMSk7XG59XG4jY29sbGVjdGlvbi1oZWFkZXItY29udGFpbmVyIC5jb2xsLXNwZWNzIC5kb3duLWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGNhbGModmFyKC0tYmx1KSAqIDQpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDQpO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jY29sbGVjdGlvbi1oZWFkZXItY29udGFpbmVyIC5jb2xsLXNwZWNzIC5kb3duLWJ0bjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogY2FsYyh2YXIoLS1uLWZzKSAqIDEpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tbi1mcykgKiAxKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDEpO1xuICBib3R0b206IGNhbGModmFyKC0tYmx1KSAqIDEuMik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvdHRvbTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuI2NvbGxlY3Rpb24taGVhZGVyLWNvbnRhaW5lciAuY29sbC1zcGVjcyAuZG93bi1idG46aG92ZXI6OmFmdGVyIHtcbiAgYm90dG9tOiBjYWxjKHZhcigtLWJsdSkgKiAxLjUpO1xufVxuI2NvbGxlY3Rpb24taGVhZGVyLWNvbnRhaW5lciAuY29sbC1zcGVjcyBhW2hyZWY9XCJcIl0sICNjb2xsZWN0aW9uLWhlYWRlci1jb250YWluZXIgLmNvbGwtc3BlY3MgYVtocmVmPVwiI1wiXSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciB7XG4gIGJvcmRlci10b3A6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG59XG4jY29sbGVjdGlvbi1vdmVydmlldy1jb250YWluZXIgI2NvbGwtb3ZlcnZpZXctbGlzdCAuY29sbC1zYW1wbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDEzKTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmNvbGwtc2FtcGxlLW5hdmkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbi1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1uLWxoKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IHZhcigtLWJsdSk7XG4gIHJpZ2h0OiB2YXIoLS1ibHUpO1xuICB6LWluZGV4OiA1MDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4jY29sbGVjdGlvbi1vdmVydmlldy1jb250YWluZXIgI2NvbGwtb3ZlcnZpZXctbGlzdCAuY29sbC1zYW1wbGUtY29udGFpbmVyIC5jb2xsLXNhbXBsZS1uYXZpIGRpdiB7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1ibHUpICogMC41KTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmJ1dHRvbiB7XG4gIC0tc2lkZTogY2FsYyh2YXIoLS1ibHUpICogMyk7XG4gIGhlaWdodDogdmFyKC0tc2lkZSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3JkZXItbGVmdDogc29saWQgdmFyKC0tQ09MLVRFKSB2YXIoLS1saW5lKTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tQ09MLVRFKSB2YXIoLS1saW5lKTtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTC1ITyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmJ1dHRvbi5zYXZlLXRoaXMtZm9udCB7XG4gIHJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogdmFyKC0tc2lkZSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvZ3JhcGhpY3MvaGVhcnQtMDIuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDYwJTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmJ1dHRvbi5zZXR0aW5ncyB7XG4gIHBhZGRpbmc6IDAgY2FsYyh2YXIoLS1ibHUpICogMSk7XG4gIHJpZ2h0OiB2YXIoLS1zaWRlKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmNvbGwtc2FtcGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgd2lkdGg6IDEwMCU7XG4gIC0tY2FwaXRhbC1oZWlnaHQ6IGNhbGModmFyKC0tYmx1UikgKiA2KTtcbiAgLyogZm9udCBtZXRyaWNzICovXG4gIC0tZm0tbGluZWdhcDogMDtcbiAgLyogY29tcHV0ZSBmb250LXNpemUgdG8gZ2V0IGNhcGl0YWwgaGVpZ2h0IGVxdWFsIGRlc2lyZWQgZm9udC1zaXplICovXG4gIC0tY29tcHV0ZWRGb250U2l6ZTogKHZhcigtLWNhcGl0YWwtaGVpZ2h0KSAvIHZhcigtLWZtLWNhcGl0YWxIZWlnaHQpKTtcbiAgZm9udC1zaXplOiBjYWxjKHZhcigtLWNvbXB1dGVkRm9udFNpemUpICogMXB4KTtcbiAgLyogY29tcHV0ZSBsaW5lLWhlaWdodDogbm9ybWFsIGFuZCBjb250ZW50LWFyZWHigJlzIGhlaWdodCAqL1xuICAtLWxpbmVoZWlnaHROb3JtYWw6ICh2YXIoLS1mbS1hc2NlbmRlcikgKyB2YXIoLS1mbS1kZXNjZW5kZXIpICsgdmFyKC0tZm0tbGluZWdhcCkpO1xuICAtLWNvbnRlbnRBcmVhOiAodmFyKC0tbGluZWhlaWdodE5vcm1hbCkgKiB2YXIoLS1jb21wdXRlZEZvbnRTaXplKSk7XG4gIC8qIGNvbXB1dGUgZGlzdGFuY2UgZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBjYXBpdGFsIGxldHRlciB0byB0aGUgYm90dG9tIGVkZ2UgYW5kIGRpc3RhbmNlIGZyb20gdGhlIHRvcCBvZiB0aGUgY2FwaXRhbCBsZXR0ZXIgdG8gdGhlIHRvcCBlZGdlICovXG4gIC0tZGlzdGFuY2VCb3R0b206ICh2YXIoLS1mbS1kZXNjZW5kZXIpKTtcbiAgLS1kaXN0YW5jZVRvcDogKHZhcigtLWZtLWFzY2VuZGVyKSAtIHZhcigtLWZtLWNhcGl0YWxIZWlnaHQpKTtcbiAgLyogY29tcHV0ZSB2ZXJ0aWNhbC1hbGlnbiAqL1xuICAtLXZhbGlnbjogKCh2YXIoLS1kaXN0YW5jZUJvdHRvbSkgLSB2YXIoLS1kaXN0YW5jZVRvcCkpICogdmFyKC0tY29tcHV0ZWRGb250U2l6ZSkpO1xuICAvKiBkZXNpcmVkIGxpbmUtaGVpZ2h0ICovXG4gIC0tbGluZS1oZWlnaHQ6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoKHZhcigtLWxpbmUtaGVpZ2h0KSAqIHZhcigtLWNhcGl0YWwtaGVpZ2h0KSAtIHZhcigtLXZhbGlnbikpICogMXB4KTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmNvbGwtc2FtcGxlIGlucHV0IHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZm9udC1zaXplOiBjYWxjKHZhcigtLWNvbXB1dGVkRm9udFNpemUpICogMXB4KTtcbiAgdGV4dC1pbmRlbnQ6IGNhbGModmFyKC0tYmx1KSAqIDEpO1xuICAvKiBjb21wdXRlIHZlcnRpY2FsLWFsaWduICovXG4gIHZlcnRpY2FsLWFsaWduOiBjYWxjKHZhcigtLXZhbGlnbikgKiAtMXB4KTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmNvbGwtc2FtcGxlIGlucHV0OjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogdmFyKC0tQ0ctMDMzKTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmJ0biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHZhcigtLUNHLTAzMyk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXIgLmJ0bjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1DRy0wNTcpO1xufVxuI2NvbGxlY3Rpb24tb3ZlcnZpZXctY29udGFpbmVyICNjb2xsLW92ZXJ2aWV3LWxpc3QgLmNvbGwtc2FtcGxlLWNvbnRhaW5lciAuYnRuLmFjdGl2ZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0wtSEkpO1xufVxuI2NvbGxlY3Rpb24tb3ZlcnZpZXctY29udGFpbmVyICNjb2xsLW92ZXJ2aWV3LWxpc3QgLmNvbGwtc2FtcGxlLWNvbnRhaW5lcjpob3ZlciAuYnV0dG9uIHtcbiAgZGlzcGxheTogdW5zZXQ7XG59XG4jY29sbGVjdGlvbi1vdmVydmlldy1jb250YWluZXIgI2NvbGwtb3ZlcnZpZXctbGlzdCAuY29sbC1zYW1wbGUtY29udGFpbmVyOmhvdmVyIC5idXR0b24uc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI2NvbGxlY3Rpb24tb3ZlcnZpZXctY29udGFpbmVyICNjb2xsLW92ZXJ2aWV3LWxpc3QgLmNvbGwtc2FtcGxlLWNvbnRhaW5lcjpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHZhcigtLUNHLTA2OSkgY2FsYygxMDAlIC0gdmFyKC0tYmx1KSAqIDMpKTtcbn1cbiNjb2xsZWN0aW9uLW92ZXJ2aWV3LWNvbnRhaW5lciAjY29sbC1vdmVydmlldy1saXN0IC5jb2xsLXNhbXBsZS1jb250YWluZXJbc2F2ZS1zdGF0ZT15ZXNdIC5zYXZlLXRoaXMtZm9udCB7XG4gIGRpc3BsYXk6IHVuc2V0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2dyYXBoaWNzL2hlYXJ0LTAyLXJlZC5zdmdcIik7XG59XG5cbiNjb2xsZWN0aW9uLW5hdmktY29udGFpbmVyIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHdpZHRoOiBjYWxjKDUwJSArIHZhcigtLWxpbmUpICogMC41KTtcbn1cbiNjb2xsZWN0aW9uLW5hdmktY29udGFpbmVyIGgxIHtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1ibHUpICogMTApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuI2NvbGwtb3ZlcnZpZXctbmF2aSB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHRvcDogY2FsYyh2YXIoLS1uYXZpLW91dGVyKSAtIHZhcigtLWxpbmUpKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ09MLUJHKTtcbiAgei1pbmRleDogMTAwO1xufVxuI2NvbGwtb3ZlcnZpZXctbmF2aSBoOSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IHZhcigtLWJsdSk7XG4gIGJvcmRlci1yaWdodDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgd2lkdGg6IGNhbGModmFyKC0tYmx1KSAqIDcpO1xufVxuI2NvbGwtb3ZlcnZpZXctbmF2aSAuZmFtaWx5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMyk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAxLjEpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIG1hcmdpbjogMDtcbn1cbiNjb2xsLW92ZXJ2aWV3LW5hdmkgLmZhbWlseTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1ISSk7XG59XG4jY29sbC1vdmVydmlldy1uYXZpIC5mYW1pbHkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ09MLUhJKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4jY29sbGVjdGlvbi1idXktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKDBweCAtIHZhcigtLWxpbmUpKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMzApO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0wtSE8pO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jY29sbGVjdGlvbi1idXktY29udGFpbmVyICoge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4jY29sbGVjdGlvbi1idXktY29udGFpbmVyIGEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogdmFyKC0tYmx1KTtcbn1cbiNjb2xsZWN0aW9uLWJ1eS1jb250YWluZXIgaDEge1xuICBmb250LXNpemU6IDIwLjV2dztcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiBjYWxjKDBweCAtIHZhcigtLWJsdSkgKiAwLjcpO1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tYmx1KSAqIDIpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXJnaW4tbGVmdDogY2FsYygwcHggLSAxLjR2dyk7XG4gIG1hcmdpbi10b3A6IGNhbGMoMHB4IC0gMC42dncpO1xufVxuI2NvbGxlY3Rpb24tYnV5LWNvbnRhaW5lciBwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IHZhcigtLWJsdSk7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NvbGxlY3Rpb24tYnV5LWNvbnRhaW5lcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1BQyk7XG59XG5cbi5jb2xsLW92ZXJ2aWV3LWZhbWlseSxcbi5jb2xsLW5hbWUuc3ZnLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmNvbGwtb3ZlcnZpZXctZmFtaWx5LmFjdGl2ZSxcbi5jb2xsLW5hbWUuc3ZnLWNvbnRhaW5lci5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4jdmlldy1jb2xsZWN0aW9uICNyZXR1cm4tYnRuIHtcbiAgcmlnaHQ6IDUwJTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbiN2aWV3LWNvbGxlY3Rpb24gI3JldHVybi1idG4gLmFycm93LWNvbnRhaW5lciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogU2VhcmNoIFZpZXcgKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuI3ZpZXctcmVzdWx0cyB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1uYXZpLW91dGVyKTtcbn1cbiN2aWV3LXJlc3VsdHMgLnNlcGFyYXRvciB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDQ7XG4gIG1hcmdpbjogY2FsYygwcHggLSB2YXIoLS1saW5lKSkgMCAwO1xufVxuI3ZpZXctcmVzdWx0cyAucmVsYXRlZC1jb250YWluZXIubGFyZ2UgLnNwZWM6bm90KDpsYXN0LWNoaWxkKSB7XG4gIHdpZHRoOiBjYWxjKCgxMDAlIC0gdmFyKC0tYmx1KSAqIDIpICogMC4yNSk7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tYmx1KTtcbn1cbiN2aWV3LXJlc3VsdHMgLnJlbGF0ZWQtY29udGFpbmVyLnNtYWxsIC5zcGVjOmxhc3QtY2hpbGQge1xuICBkaXNwbGF5OiB1bnNldDtcbiAgd2lkdGg6IHVuc2V0O1xuICBoZWlnaHQ6IHVuc2V0O1xuICBwb3NpdGlvbjogdW5zZXQ7XG59XG5cbiNzZWFyY2gtbmF2aS1jb250YWluZXIge1xuICBib3JkZXItbGVmdDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgd2lkdGg6IGNhbGMoNTAlICsgdmFyKC0tbGluZSkgKiAwLjUpO1xufVxuXG4jcmVzdWx0cy1jb250YWluZXIge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMHB4IC0gdmFyKC0tbGluZSkpO1xufVxuXG4jbm8tcmVzdWx0LWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uYXZpLW91dGVyKSArIHZhcigtLWxpbmUpKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNuby1yZXN1bHQtY29udGFpbmVyIHAge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogdmFyKC0tYmx1KTtcbn1cbiNuby1yZXN1bHQtY29udGFpbmVyIGgxIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4vKiBJbmZvIFZpZXcgKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuI2luZm8taW50cm8ge1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1oMS1saCk7XG59XG4jaW5mby1pbnRybyBoMiB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWgxLWxoKTtcbn1cblxuI2luZGV4LWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoMHB4IC0gdmFyKC0tbGluZSkpO1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1uYXZpLW91dGVyKSAtIHZhcigtLWxpbmUpKTtcbn1cblxuI2luZGV4LW5hdmkge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTYsIDFmcik7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tYmx1KTtcbiAgcGFkZGluZy1yaWdodDogdmFyKC0tYmx1KTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAyLjUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci10b3A6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbi1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1uLWxoKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiBjYWxjKHZhcigtLW5hdmktb3V0ZXIpIC0gdmFyKC0tbGluZSkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wOTMpO1xufVxuI2luZGV4LW5hdmkgZGl2IHtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAwLjkpO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNpbmRleC1uYXZpIGRpdjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1DRy0wNjkpO1xufVxuI2luZGV4LW5hdmkgZGl2OmhvdmVyOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tQ0ctMDY5KTtcbn1cbiNpbmRleC1uYXZpIGRpdjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogY2FsYyh2YXIoLS1uLWZzKSAqIDEpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tbi1mcykgKiAxKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBib3R0b207XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsZWZ0OiB2YXIoLS1ibHUpO1xuICBib3R0b206IGNhbGModmFyKC0tYmx1KSAqIDAuMik7XG59XG4jaW5kZXgtbmF2aSBkaXYucmV2ZXJzZTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuICBib3R0b206IGNhbGModmFyKC0tYmx1KSAqIC0wLjIpO1xufVxuI2luZGV4LW5hdmkgZGl2Om50aC1jaGlsZCgxKSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuI2luZGV4LW5hdmkgZGl2Om50aC1jaGlsZCgxKTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jaW5kZXgtbGlzdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiNpbmRleC1saXN0IHRib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuI2luZGV4LWxpc3QgdHIge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxNiwgMWZyKTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ibHUpO1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1ibHUpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDIuNSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNpbmRleC1saXN0IHRyIHRkIHtcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAxLjM1KTtcbiAgbWFyZ2luLXRvcDogY2FsYygwcHggLSB2YXIoLS1ibHUpICogMC4zNSk7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbiNpbmRleC1saXN0IHRyLmF1dGhvci1oZWFkZXIge1xuICBoZWlnaHQ6IHZhcigtLW5hdmktb3V0ZXIpO1xufVxuI2luZGV4LWxpc3QgdHIuYXV0aG9yLWhlYWRlciB0ZCB7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tYmx1KSAqIDAuNSk7XG4gIG1hcmdpbjogdW5zZXQ7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDE2ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiNpbmRleC1saXN0IHRyLmF1dGhvci1pdGVtOm5vdChbc3RhdHVzPW9wZW5dKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jaW5kZXgtbGlzdCB0ci5hdXRob3ItaXRlbSB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tcC1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLWxoKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbiNpbmRleC1saXN0IHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0ctMTAwKTtcbn1cblxuLyogRm91bmRyeSAqL1xuI2luZGV4LWxpc3QgdHIgPiB0ZDpudGgtY2hpbGQoMSksICNpbmRleC1uYXZpIGRpdjpudGgtY2hpbGQoMSkge1xuICBncmlkLWNvbHVtbjogc3BhbiAzO1xufVxuXG4vKiBDb2xsZWN0aW9uICovXG4jaW5kZXgtbGlzdCB0ciA+IHRkOm50aC1jaGlsZCgyKSwgI2luZGV4LW5hdmkgZGl2Om50aC1jaGlsZCgyKSB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDM7XG59XG5cbi8qIEZhbWlseSAqL1xuI2luZGV4LWxpc3QgdHIgPiB0ZDpudGgtY2hpbGQoMyksICNpbmRleC1uYXZpIGRpdjpudGgtY2hpbGQoMykge1xuICBncmlkLWNvbHVtbjogc3BhbiA2O1xufVxuXG4vKiBDb2xsZWN0aW9uIHNpemUgKi9cbiNpbmRleC1saXN0IHRyID4gdGQ6bnRoLWNoaWxkKDQpLCAjaW5kZXgtbmF2aSBkaXY6bnRoLWNoaWxkKDQpIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbn1cblxuLyogU3R5bGVzICovXG4jaW5kZXgtbGlzdCB0ciA+IHRkOm50aC1jaGlsZCg1KSwgI2luZGV4LW5hdmkgZGl2Om50aC1jaGlsZCg1KSB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDI7XG59XG5cbmJvZHkuc29ydGluZyB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbmJvZHkuc29ydGluZyAjaW5kZXgtbGlzdCB0ciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tQ0ctMDY5KTtcbn1cbmJvZHkuc29ydGluZyAjaW5kZXgtbGlzdCAqIHtcbiAgY29sb3I6IHZhcigtLUNHLTA2OSk7XG59XG5cbi5hbmltYXRlZC1sb2FkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgaGVpZ2h0OiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgei1pbmRleDogNjAwO1xuICBhbmltYXRpb246IHJvdGF0aW5nIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLmFuaW1hdGVkLWxvYWRlcjo6YmVmb3JlLFxuLmFuaW1hdGVkLWxvYWRlcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IHZhcigtLWJsdSk7XG4gIGhlaWdodDogdmFyKC0tYmx1KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0ctMDY5KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiAxMDB2aDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi5hbmltYXRlZC1sb2FkZXI6OmJlZm9yZSB7XG4gIHRvcDogdmFyKC0tYmx1KTtcbn1cblxuLmFuaW1hdGVkLWxvYWRlcjo6YWZ0ZXIge1xuICBib3R0b206IHZhcigtLWJsdSk7XG59XG5cbiNsb2FkLXJlbGF0ZWQtY29udGFpbmVyIC5hbmltYXRlZC1sb2FkZXIge1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0tbmF2aS1vdXRlcikgKiAwLjIpO1xuICBsZWZ0OiBjYWxjKDUwJSAtIHZhcigtLW5hdmktb3V0ZXIpICogMC4yKTtcbiAgei1pbmRleDogNzAwO1xufVxuXG4jbG9hZC1yZWxhdGVkLWNvbnRhaW5lci5sb2FkaW5nIC5hbmltYXRlZC1sb2FkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiNsb2FkLXJlbGF0ZWQtY29udGFpbmVyLmxvYWRpbmcgLmludGVyYWN0aW9uLWJsb2NrZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogNjAwO1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0aW5nIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogSW5mbyBFZGl0ICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtY29udGFpbmVyICNzZXR0aW5ncy1wcmV2aWV3IC50eXBlLXNhbXBsZS1jb250YWluZXIge1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLWJsdSkgKiAyLjkpO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1jb250YWluZXIgI3NldHRpbmdzLXByZXZpZXdbZWRpdC1zdGF0ZT1ub10gLnR5cGUtc2FtcGxlLWNvbnRhaW5lci5pbml0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtY29udGFpbmVyICNzZXR0aW5ncy1wcmV2aWV3W2VkaXQtc3RhdGU9eWVzXSAudHlwZS1zYW1wbGUtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiBjYWxjKDUwJSAtIHZhcigtLWJsdSkgKiAxLjQ1KTtcbn1cbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtY29udGFpbmVyICNzZXR0aW5ncy1wcmV2aWV3W2VkaXQtc3RhdGU9eWVzXSAudHlwZS1zYW1wbGUtY29udGFpbmVyLmluaXQge1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wNjMpO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1jb250YWluZXIgI3NldHRpbmdzLXByZXZpZXdbZWRpdC1zdGF0ZT15ZXNdIC50eXBlLXNhbXBsZS1jb250YWluZXIuc2FtcGxlIHtcbiAgdG9wOiB1bnNldDtcbiAgYm90dG9tOiAwO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1jb250YWluZXIgI3NldHRpbmdzLXByZXZpZXdbZWRpdC1zdGF0ZT15ZXNdICNmb250LW5hbWVzLWNvbnRhaW5lciAuaW5pdGlhbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTA2Myk7XG59XG4jdmlldy1mb250LWVkaXQgI3NldHRpbmdzLWNvbnRhaW5lciAjc2V0dGluZ3MtcHJldmlld1tlZGl0LXN0YXRlPXllc10gI2ZvbnQtbmFtZXMtY29udGFpbmVyOm5vdCgudW5lcXVhbCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wNjMpO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcGFyYW1ldGVyLW5hdmktY29udGFpbmVyIC5uYXZpLXN1Yi1jb250YWluZXIgc2VsZWN0LFxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcGFyYW1ldGVyLW5hdmktY29udGFpbmVyIC5uYXZpLXN1Yi1jb250YWluZXIgaW5wdXQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG4jdmlldy1mb250LWVkaXQgI3NldHRpbmdzLXBhbmVsICNwYXJhbWV0ZXItbmF2aS1jb250YWluZXIgLm5hdmktc3ViLWNvbnRhaW5lciBzZWxlY3Qgb3B0aW9uLFxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcGFyYW1ldGVyLW5hdmktY29udGFpbmVyIC5uYXZpLXN1Yi1jb250YWluZXIgaW5wdXQgb3B0aW9uIHtcbiAgY29sb3I6IHJlZDtcbn1cbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcGFuZWwgI3BhcmFtZXRlci1zZXR0aW5ncy1jb250YWluZXIge1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLW5hdmktb3V0ZXIpIC0gdmFyKC0tcWxoKSk7XG59XG4jdmlldy1mb250LWVkaXQgI3NldHRpbmdzLXBhbmVsICNwYXJhbWV0ZXItc2V0dGluZ3MtY29udGFpbmVyICNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLmxhYmVscyBpbnB1dCxcbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcGFuZWwgI3BhcmFtZXRlci1zZXR0aW5ncy1jb250YWluZXIgI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubGFiZWxzIHNlbGVjdCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tQ0ctMDU3KTtcbiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ibHUpO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcGFuZWwgI3BhcmFtZXRlci1zZXR0aW5ncy1jb250YWluZXIgI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lciAubGFiZWxzIGlucHV0OmhvdmVyLFxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcGFyYW1ldGVyLXNldHRpbmdzLWNvbnRhaW5lciAjYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyIC5sYWJlbHMgc2VsZWN0OmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLUNHLTA2OSk7XG59XG4jdmlldy1mb250LWVkaXQgI3NldHRpbmdzLXBhbmVsICNwYXJhbWV0ZXItc2V0dGluZ3MtY29udGFpbmVyICNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXIgLmxhYmVscyBzZWxlY3Qgb3B0aW9uIHtcbiAgd2lkdGg6IDEwMHB4O1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcGFyYW1ldGVyLXNldHRpbmdzLWNvbnRhaW5lciAjYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyIC5sYWJlbHMgLnJlbW92ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcGFuZWwgI3BhcmFtZXRlci1zZXR0aW5ncy1jb250YWluZXIgI2lkbGUtcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcjpob3ZlciAqIHtcbiAgY29sb3I6IHZhcigtLUNHLTA2Myk7XG59XG4jdmlldy1mb250LWVkaXQgI3NldHRpbmdzLXBhbmVsICNxdWV1ZS1saXN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0ctMDY5KTtcbiAgei1pbmRleDogMjAwO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcXVldWUtbGlzdCB0ciAqIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IHZhcigtLW4tZnMpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbi1saCk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDBweCAtIHZhcigtLW4tbGgpICogMC4wOCk7XG4gIG1hcmdpbi10b3A6IGNhbGMoMHB4IC0gdmFyKC0tbi1saCkgKiAwLjA3KTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6IHZhcigtLUNPTC1URSk7XG4gIGJvcmRlci10b3A6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWJsdSkgKiAwLjI1KTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tYmx1KSAqIDAuMjUpO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcXVldWUtbGlzdCB0ciAqIGlucHV0IHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tQ0ctMDU3KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcXVldWUtbGlzdCB0ciAqOm50aC1jaGlsZCgxKSB7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1ibHUpICogMSk7XG59XG4jdmlldy1mb250LWVkaXQgI3NldHRpbmdzLXBhbmVsICNxdWV1ZS1saXN0IHRyICo6bnRoLWNoaWxkKDMpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDEpO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcXVldWUtbGlzdCB0ciB0aCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWJsdSkgKiAwLjUpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1ibHUpICogMC41KTtcbn1cbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcGFuZWwgI3F1ZXVlLWxpc3QgdHIgdGg6bnRoLWNoaWxkKDMpIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcXVldWUtbGlzdCB0cjpub3QoOm50aC1jaGlsZCgxKSk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wOTMpO1xufVxuI3ZpZXctZm9udC1lZGl0ICNzZXR0aW5ncy1wYW5lbCAjcXVldWUtbGlzdCB0cjpub3QoOm50aC1jaGlsZCgxKSk6aG92ZXIgaW5wdXQge1xuICBjb2xvcjogdmFyKC0tQ0YtUkVEKTtcbn1cbiN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcGFuZWwgI3F1ZXVlLWxpc3QgdHI6bm90KDpudGgtY2hpbGQoMSkpOmhvdmVyIGlucHV0OmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLUNPTC1URSk7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogTG9naW4gKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuI3ZpZXctbG9naW4gI25hdmktY29udGFpbmVyICNuYXZpLXNhdmUsICN2aWV3LWxvZ2luICNuYXZpLWNvbnRhaW5lciAjbmF2aS1zZWFyLCAjdmlldy1sb2dpbiAjbmF2aS1jb250YWluZXIgI25hdmktbG9naSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogUHJvZmlsZSAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4jdmlldy1wcm9maWxlIHtcbiAgLS10cmFuc0R1cjogMC41cztcbn1cbiN2aWV3LXByb2ZpbGUgI25hdmktY29udGFpbmVyICNuYXZpLXNhdmUsICN2aWV3LXByb2ZpbGUgI25hdmktY29udGFpbmVyICNuYXZpLXNlYXIsICN2aWV3LXByb2ZpbGUgI25hdmktY29udGFpbmVyICNuYXZpLWxvZ2kge1xuICBkaXNwbGF5OiBub25lO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1uYXZpLWNvbnRhaW5lciB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICB3aWR0aDogY2FsYygzNy41JSArIHZhcigtLWxpbmUpKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGg7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zRHVyKTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIge1xuICAtLWNvbFdpZHRoOiBjYWxjKDEwMHZ3IC8gOCAqIDIpO1xuICAtLW5hdkhlaWdodDogY2FsYygodmFyKC0tYmx1KSAqIDIpICsgKHZhcigtLXAtZnMpICogMSkpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1uYXZpLW91dGVyKSk7XG4gIHdpZHRoOiAxMDB2dztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAudXNlci1jb2x1bW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDYyLjV2dztcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC51c2VyLWNvbHVtbiAudXNlci1jb250YWluZXIge1xuICB3aWR0aDogNjIuNXZ3O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIGF1dG87XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC51c2VyLWNvbHVtbiAudXNlci1jb250YWluZXIgLnVzZXItbmFtZSB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNPTC1URSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLnVzZXItY29sdW1uIC51c2VyLWNvbnRhaW5lciAudXNlci1uYW1lIHNwYW4ge1xuICBmb250LXNpemU6IGNhbGModmFyKC0tYmx1KSAqIDEwKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLnVzZXItY29sdW1uIC51c2VyLWNvbnRhaW5lciAudXNlci1kZXRhaWxzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tYmx1KSAqIDEpO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAudXNlci1jb2x1bW4gLnVzZXItY29udGFpbmVyIC51c2VyLWRldGFpbHMgLnVzZXItaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1ibHUpICogMSk7XG4gIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWJsdSkgKiAxKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLnVzZXItY29sdW1uIC51c2VyLWNvbnRhaW5lciAudXNlci1kZXRhaWxzIC51c2VyLWl0ZW0gLnRpdGxlIC5lZGl0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdmFyKC0tQ0YtUkVEKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tYmx1KSAqIDEpO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAudXNlci1jb2x1bW4gLnVzZXItY29udGFpbmVyIC51c2VyLWRldGFpbHMgLnVzZXItaXRlbSAudGl0bGUgLmVkaXQ6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tQ09MLVRFKTtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLnVzZXItY29sdW1uIC51c2VyLWNvbnRhaW5lciAudXNlci1kZXRhaWxzIC51c2VyLWl0ZW0gPiAuY29udGVudCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAudXNlci1jb2x1bW4gLnVzZXItY29udGFpbmVyIC51c2VyLWRldGFpbHMgLnVzZXItaXRlbSAub3ZlcmxheSAucG9wdXAtY29udGFpbmVyIHtcbiAgei1pbmRleDogMjAwO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAudXNlci1jb2x1bW4gLnVzZXItY29udGFpbmVyIC51c2VyLWRldGFpbHMgLnVzZXItaXRlbSAub3ZlcmxheSAucG9wdXAtY29udGFpbmVyIGZvcm0gc2VsZWN0IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDI7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11bml2ZXJzKTtcbiAgZm9udC1zaXplOiB2YXIoLS1oMS1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1oMS1saCk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IGNhbGModmFyKC0taDEtZnMpICogMC4xNSk7XG4gIGhlaWdodDogdmFyKC0tbmF2aS1vdXRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTA5Myk7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLnVzZXItY29sdW1uIC51c2VyLWNvbnRhaW5lciAudXNlci1kZXRhaWxzIC51c2VyLWl0ZW0gLm92ZXJsYXkgLnBvcHVwLWNvbnRhaW5lciBmb3JtIHNlbGVjdCBvcHRpb24ge1xuICBmb250LXNpemU6IHZhcigtLXAtZnMpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tcC1saCk7XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC51c2VyLWNvbHVtbiAudXNlci1jb250YWluZXIgLnVzZXItZGV0YWlscyAudXNlci1pdGVtIC5vdmVybGF5IC5wb3B1cC1jb250YWluZXIgZm9ybSBzZWxlY3Q6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0xMDApO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAudXNlci1jb2x1bW4gLnVzZXItY29udGFpbmVyIC51c2VyLWRldGFpbHMgLnVzZXItaXRlbSAub3ZlcmxheS5vcGVuIC5wb3B1cC1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLnVzZXItY29sdW1uIC51c2VyLWNvbnRhaW5lciAudXNlci1kZXRhaWxzIC51c2VyLWl0ZW06aG92ZXIgLnRpdGxlIC5lZGl0IHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAuY29sbGVjdGlvbi1jb2x1bW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC5jb2xsZWN0aW9uLWNvbHVtbiAubGlicmFyeS1jb250YWluZXIge1xuICB3aWR0aDogdmFyKC0tY29sV2lkdGgpO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1uYXZpLW91dGVyKSArIHZhcigtLW5hdkhlaWdodCkgLSB2YXIoLS1ibHUpICogMC4xNSk7XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC5jb2xsZWN0aW9uLWNvbHVtbiAubGlicmFyeS1jb250YWluZXI6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItbGVmdDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY29sV2lkdGgpIC0gdmFyKC0tbGluZSkpO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAuY29sbGVjdGlvbi1jb2x1bW4gLmxpYnJhcnktY29udGFpbmVyIC5saWJyYXJ5LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC5jb2xsZWN0aW9uLWNvbHVtbiAubGlicmFyeS1jb250YWluZXIgLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1ISSk7XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC5jb2xsZWN0aW9uLWNvbHVtbiAubGlicmFyeS1jb250YWluZXIgLmFjdGl2ZSA+IC5saWJyYXJ5LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IHVuc2V0O1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAuY29sbGVjdGlvbi1jb2x1bW4gLmxpYnJhcnktY29udGFpbmVyIC5oZWFkZXIsICN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLmNvbGxlY3Rpb24tY29sdW1uIC5saWJyYXJ5LWNvbnRhaW5lciAuZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogY2FsYyh2YXIoLS1jb2xXaWR0aCkgLSB2YXIoLS1saW5lKSk7XG4gIGhlaWdodDogdmFyKC0tbmF2SGVpZ2h0KTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNPTC1CRyk7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tYmx1KSAqIDEpO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLmNvbGxlY3Rpb24tY29sdW1uIC5saWJyYXJ5LWNvbnRhaW5lciAuaGVhZGVyIHtcbiAgdG9wOiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ09MLVRFKTtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLmNvbGxlY3Rpb24tY29sdW1uIC5saWJyYXJ5LWNvbnRhaW5lciAuZm9vdGVyIHtcbiAgYm90dG9tOiAwO1xuICBib3JkZXItdG9wOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1DT0wtSE8pO1xufVxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAuY29sbGVjdGlvbi1jb2x1bW4gLmxpYnJhcnktY29udGFpbmVyIC5mb290ZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0wtSEkpO1xuICBjb2xvcjogdmFyKC0tQ09MLVRFKTtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLmNvbGxlY3Rpb24tY29sdW1uIC5saWJyYXJ5LWNvbnRhaW5lciAuYmxvY2sge1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DT0wtVEUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC5jb2xsZWN0aW9uLWNvbHVtbiAubGlicmFyeS1jb250YWluZXIgLmJsb2NrIC5uYW1lLFxuI3ZpZXctcHJvZmlsZSAjcHJvZmlsZS1jb250YWluZXIgLnByb2ZpbGUtZ3JpZCAuY29sbGVjdGlvbi1jb2x1bW4gLmxpYnJhcnktY29udGFpbmVyIC5ibG9jayAuc3BlY3Mge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IHZhcigtLWNvbFdpZHRoKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4jdmlldy1wcm9maWxlICNwcm9maWxlLWNvbnRhaW5lciAucHJvZmlsZS1ncmlkIC5jb2xsZWN0aW9uLWNvbHVtbiAubGlicmFyeS1jb250YWluZXIgLmJsb2NrOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ09MLUhJKTtcbn1cbiN2aWV3LXByb2ZpbGUgI3Byb2ZpbGUtY29udGFpbmVyIC5wcm9maWxlLWdyaWQgLmNvbGxlY3Rpb24tY29sdW1uIC5saWJyYXJ5LWNvbnRhaW5lci5jb2xsZWN0aW9ucy1jb250YWluZXIge1xuICBtYXJnaW46IDA7XG59XG4jdmlldy1wcm9maWxlW3Byb2ZpbGU9c3RhcnRdICNwcm9maWxlLW5hdmktY29udGFpbmVyIC5uYXZpLXN1Yi5wcm9maWxlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1DT0wtQUMpO1xufVxuI3ZpZXctcHJvZmlsZVtwcm9maWxlPWxpYnJhcnldICNwcm9maWxlLW5hdmktY29udGFpbmVyIHtcbiAgd2lkdGg6IGNhbGMoNTAlICsgdmFyKC0tbGluZSkpO1xufVxuXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbi8qIFNhdmVkIEZvbnRzICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiNzYXZlZC1jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udG9nZ2xlLXNhdmVkLWZvbnRzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlNob3cgXCI7XG59XG5cbi5zYXZlZC1saXN0Om5vdCgjdmlldy1jb21wYXNzIC5zYXZlZC1saXN0KSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgbGVmdDogMDtcbiAgLyogaGVpZ2h0OiBjYWxjKDEwMCUgLSAodmFyKC0tbmF2aS1vdXRlcikqMykpOyBUZW1wLiBjaGFuZ2UgdW50aWwgXCJwcmludFwiIHJldHVybiAqL1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLW5hdmktb3V0ZXIpICogMik7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG4uc2F2ZWQtaGVhZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IHZhcigtLW5hdmktb3V0ZXIpO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DRy0wMDApO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xufVxuXG4uc2F2ZWQtc3ViLW5hdmkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uc2F2ZWQtc3ViLW5hdmkgLnN1Yi1uYXYge1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci10b3A6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNHLTAwMCk7XG4gIGhlaWdodDogdmFyKC0tbmF2aS1vdXRlcik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zYXZlZC1zdWItbmF2aSAuc3ViLW5hdjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTA1Nyk7XG59XG5cbi5zYXZlZC1mb250IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tYmx1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNhdmVkLWZvbnQgLnNmLXJlbW92ZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogdmFyKC0tQ0YtUkVEKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG59XG4uc2F2ZWQtZm9udCAuc2YtcmVtb3ZlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLUNHLTAwMCk7XG59XG5cbi5zYXZlZC1mb250OmhvdmVyIC5zZi1yZW1vdmUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnNhdmVkLWZvbnQ6aG92ZXIgKjpub3QoLnNmLXJlbW92ZSkge1xuICBjb2xvcjogdmFyKC0tQ0ctMDU3KTtcbn1cblxuLnNmLW5vbmUtbWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogdmFyKC0tYmx1KTtcbn1cbi5zZi1ub25lLW1lc3NhZ2UgaDkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tbi1saCk7XG59XG5cbmJvZHk6bm90KCN2aWV3LWNvbXBhc3MpIC5zZi1ub25lLW1lc3NhZ2Uuc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jdmlldy1jb21wYXNzICNzYXZlZC1jb250YWluZXIge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tbmF2aS1vdXRlcikpO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4jdmlldy1jb21wYXNzICNzYXZlZC1jb250YWluZXIgLnNhdmVkLWZvbnQge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB6LWluZGV4OiA0MDA7XG4gIHdpZHRoOiB2YXIoLS1ibHUpO1xuICBoZWlnaHQ6IHZhcigtLWJsdSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogNDAwO1xufVxuI3ZpZXctY29tcGFzcyAjc2F2ZWQtY29udGFpbmVyIC5zYXZlZC1mb250IC5zZi1mYW1pbHkge1xuICBjb2xvcjogdmFyKC0tQ0ctMTAwKTtcbn1cbiN2aWV3LWNvbXBhc3MgI3NhdmVkLWNvbnRhaW5lciAuc2F2ZWQtZm9udCAuc2YtZm91bmRyeSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jdmlldy1jb21wYXNzICNzYXZlZC1jb250YWluZXIgLnNhdmVkLWZvbnQgLnNmLXJlbW92ZSB7XG4gIHRvcDogY2FsYyh2YXIoLS1ibHUpICogMSk7XG4gIGNvbG9yOiB2YXIoLS1DRi1SSU4pO1xufVxuI3ZpZXctY29tcGFzcyAjc2F2ZWQtY29udGFpbmVyIC5zYXZlZC1mb250IC5zZi1yZW1vdmU6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tQ0ctMTAwKTtcbn1cbiN2aWV3LWNvbXBhc3MgI3NhdmVkLWNvbnRhaW5lciAuc2F2ZWQtZm9udCAqIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBmb250LXNpemU6IHZhcigtLW4tZnMpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbi1saCk7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgaGVpZ2h0OiBtYXgtY29udGVudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1ibHUpICogMC4yKTtcbn1cbiN2aWV3LWNvbXBhc3MgI3NhdmVkLWNvbnRhaW5lciAuc2F2ZWQtZm9udC5sZWZ0ICoge1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tYmx1KSAqIDEuNSk7XG4gIGxlZnQ6IDA7XG59XG4jdmlldy1jb21wYXNzICNzYXZlZC1jb250YWluZXIgLnNhdmVkLWZvbnQucmlnaHQgKiB7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDEuNSk7XG4gIHJpZ2h0OiAwO1xufVxuI3ZpZXctY29tcGFzcyAjc2F2ZWQtY29udGFpbmVyIC5zYXZlZC1mb250OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IHZhcigtLWJsdSk7XG4gIGhlaWdodDogdmFyKC0tYmx1KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0YtUkVEKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiAxMDB2aDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuI3ZpZXctY29tcGFzcyAjc2F2ZWQtY29udGFpbmVyIC5zYXZlZC1mb250OmhvdmVyIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7XG59XG4jdmlldy1jb21wYXNzICNzYXZlZC1jb250YWluZXIgLnNhdmVkLWZvbnQ6aG92ZXIgKiB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4jdmlldy1jb21wYXNzICNzYXZlZC1jb250YWluZXIgLnNhdmVkLWZvbnQ6aG92ZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTEwMCk7XG59XG4jdmlldy1jb21wYXNzIC5zYXZlZC1oZWFkZXIsXG4jdmlldy1jb21wYXNzIC5zYXZlZC1zdWItbmF2aSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuYm9keVtzYXZlZD1vcGVuXSAjY29sbGVjdGlvbi1uYXZpLWNvbnRhaW5lciB7XG4gIHJpZ2h0OiB2YXIoLS13aS1zYXZlZCk7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIHZhcigtLXdpLXNhdmVkKSAvIDIpO1xufVxuYm9keVtzYXZlZD1vcGVuXSAjY29sbGVjdGlvbi1oZWFkZXItY29udGFpbmVyLFxuYm9keVtzYXZlZD1vcGVuXSAjY29sbGVjdGlvbi1vdmVydmlldy1jb250YWluZXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0td2ktc2F2ZWQpKTtcbn1cbmJvZHlbc2F2ZWQ9b3Blbl0gI2NvbGxlY3Rpb24tYnV5LWNvbnRhaW5lciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS13aS1zYXZlZCkpO1xufVxuYm9keVtzYXZlZD1vcGVuXSAjY29sbGVjdGlvbi1idXktY29udGFpbmVyIGgxIHtcbiAgZm9udC1zaXplOiAxNy44dnc7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDBweCAtIDEuMnZ3KTtcbiAgbWFyZ2luLXRvcDogY2FsYygwcHggLSAwLjV2dyk7XG59XG5ib2R5W3NhdmVkPW9wZW5dICNzZXR0aW5ncy1jb250YWluZXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0td2ktc2F2ZWQpKTtcbn1cbmJvZHlbc2F2ZWQ9b3Blbl0gI3JldHVybi1idG4ge1xuICByaWdodDogY2FsYyh2YXIoLS13aS1zZXR0aW5ncykgKyB2YXIoLS13aS1zYXZlZCkpO1xufVxuYm9keVtzYXZlZD1vcGVuXSAjcGFyYW1ldGVyLW5hdmktY29udGFpbmVyIHtcbiAgcmlnaHQ6IHZhcigtLXdpLXNhdmVkKTtcbn1cbmJvZHlbc2F2ZWQ9b3Blbl0gI3NlYXJjaC1uYXZpLWNvbnRhaW5lciB7XG4gIHJpZ2h0OiB2YXIoLS13aS1zYXZlZCk7XG4gIHdpZHRoOiBjYWxjKDUwJSArIHZhcigtLWxpbmUpICogMC41IC0gdmFyKC0td2ktc2F2ZWQpICogMC41KTtcbn1cbmJvZHlbc2F2ZWQ9b3Blbl0gI3Jlc3VsdHMtY29udGFpbmVyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXdpLXNhdmVkKSk7XG59XG5ib2R5W3NhdmVkPW9wZW5dICNyZWxhdGVkLWZvbnRzLWNvbnRhaW5lciB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS13aS1zYXZlZCkpO1xufVxuYm9keVtzYXZlZD1vcGVuXSAjcmVsYXRlZC1uYXZpLWNvbnRhaW5lciB7XG4gIHJpZ2h0OiB2YXIoLS13aS1zYXZlZCk7XG4gIHdpZHRoOiB2YXIoLS13aS1zZXR0aW5ncyk7XG59XG5ib2R5W3NhdmVkPW9wZW5dIC50b2dnbGUtc2F2ZWQtZm9udHM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiSGlkZSBcIjtcbn1cblxuYm9keVtzYXZlZD1vcGVuXS5yZWxhdGVkLW9wZW4gI3JlbGF0ZWQtbmF2aS1jb250YWluZXIge1xuICByaWdodDogdmFyKC0td2ktc2F2ZWQpO1xuICB3aWR0aDogY2FsYyh2YXIoLS13aS1yZWxhdGVkKSAtIHZhcigtLXdpLXNhdmVkKSAvIDIpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuYm9keVtzYXZlZD1vcGVuXS5yZWxhdGVkLW9wZW4gI3JldHVybi1idG4ge1xuICByaWdodDogY2FsYyh2YXIoLS13aS1yZWxhdGVkKSArIHZhcigtLXdpLXNhdmVkKSAvIDIpO1xufVxuYm9keVtzYXZlZD1vcGVuXS5yZWxhdGVkLW9wZW4gI3BhcmFtZXRlci1uYXZpLWNvbnRhaW5lciB7XG4gIHJpZ2h0OiBjYWxjKHZhcigtLXdpLXJlbGF0ZWQpICsgdmFyKC0td2ktc2F2ZWQpIC8gMiAtIHZhcigtLXdpLXNldHRpbmdzKSk7XG59XG5cbmJvZHlbc2F2ZWQ9b3Blbl0jdmlldy1mb250LXNldHRpbmdzICNzZWxlY3Qtc2FtcGxlLWNvbnRhaW5lciB7XG4gIHJpZ2h0OiBjYWxjKHZhcigtLXdpLXNldHRpbmdzKSArIHZhcigtLXdpLXNhdmVkKSk7XG59XG5cbmJvZHlbc2F2ZWQ9b3Blbl0ucmVsYXRlZC1vcGVuI3ZpZXctZm9udC1zZXR0aW5ncyAjc2VsZWN0LXNhbXBsZS1jb250YWluZXIge1xuICByaWdodDogY2FsYyh2YXIoLS13aS1yZWxhdGVkKSArIHZhcigtLXdpLXNhdmVkKSAvIDIpO1xufVxuXG5ib2R5Om5vdCgjdmlldy1jb21wYXNzKVtzYXZlZD1vcGVuXSAjc2F2ZWQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IHZhcigtLXdpLXNhdmVkKTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNHLTAwMCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTAzMyk7XG4gIHotaW5kZXg6IDYwMDtcbn1cblxuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4vKiBPdmVybGF5cyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4ub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNjAwO1xufVxuLm92ZXJsYXkgLm92ZXJsYXktY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDkwMDtcbn1cbi5vdmVybGF5IC5vdmVybGF5LWNvbnRlbnQgLnRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ0ctMDAwKTtcbiAgaGVpZ2h0OiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgcGFkZGluZzogdmFyKC0tYmx1KTtcbiAgei1pbmRleDogMTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLm92ZXJsYXkub3BlbixcbiNzZWFyY2gtY29udGFpbmVyLFxuI2xvZ2luLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogZmxleDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgei1pbmRleDogOTAwO1xufVxuXG4ub3ZlcmxheS5vcGVuIC5vdmVybGF5LWNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5vdmVybGF5Lm9wZW4gLmluZm8tb3Blbi1idG4ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNsb3NlLW92ZXJsYXktYXJlYSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG59XG5cbiNsb2dpbi1zdGFydC5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogUG9wdXBzICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbi5wb3B1cC1jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wOTMpO1xuICBib3JkZXI6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNHLTAwMCk7XG4gIHdpZHRoOiA4MCU7XG4gIG1heC13aWR0aDogY2FsYyh2YXIoLS1ibHUpICogNTUpO1xufVxuLnBvcHVwLWNvbnRhaW5lci5ncmVlbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNGLUdSRSk7XG59XG4ucG9wdXAtY29udGFpbmVyLmdyZWVuIC5oZWFkZXIgLmNsb3NlOmhvdmVyIGgxIHtcbiAgY29sb3I6IHZhcigtLUNHLTAwMCk7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5wb3B1cC1jb250YWluZXIgLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNHLTAwMCk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtYXgtY29udGVudDtcbiAgaGVpZ2h0OiB2YXIoLS1uYXZpLW91dGVyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5wb3B1cC1jb250YWluZXIgLmhlYWRlciAudGl0bGUsXG4ucG9wdXAtY29udGFpbmVyIC5oZWFkZXIgLmNsb3NlIHtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1ibHUpICogMSk7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuLnBvcHVwLWNvbnRhaW5lciAuaGVhZGVyIC5jbG9zZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DRy0wMDApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucG9wdXAtY29udGFpbmVyIC5oZWFkZXIgLmNsb3NlOmhvdmVyIGgxIHtcbiAgY29sb3I6IHZhcigtLUNHLTA2OSk7XG59XG4ucG9wdXAtY29udGFpbmVyIC5jb250ZW50IHtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1ibHUpICogMSk7XG59XG4ucG9wdXAtY29udGFpbmVyIC5mb290ZXIge1xuICBib3JkZXItdG9wOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DRy0wMDApO1xufVxuLnBvcHVwLWNvbnRhaW5lciAuZm9vdGVyIGZvcm0gaW5wdXQge1xuICBib3JkZXI6IG5vbmU7XG59XG4ucG9wdXAtY29udGFpbmVyIC5mb290ZXIgZm9ybSBpbnB1dDpub3QoLmNpcmMtYnRuKSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG59XG4ucG9wdXAtY29udGFpbmVyIC5mb290ZXIgZm9ybSAuZm9ybS1zdWJtaXQge1xuICByaWdodDogMCAhaW1wb3J0YW50O1xufVxuLnBvcHVwLWNvbnRhaW5lciAuZm9vdGVyIGZvcm0uZ3JpZC1mb3JtIHtcbiAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wMDApO1xuICBncmlkLWdhcDogdmFyKC0tbGluZSk7XG59XG4ucG9wdXAtY29udGFpbmVyIC5mb290ZXIgZm9ybS5ncmlkLWZvcm0gaW5wdXQ6bm90KC5oYWxmKSB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDI7XG59XG4ucG9wdXAtY29udGFpbmVyIC5mb290ZXIgZm9ybS5ncmlkLWZvcm0gaW5wdXQuZm9ybS10ZXh0W3R5cGU9c3VibWl0XSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWgxLWZzKSAqIDAuMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTA2OSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wb3B1cC1jb250YWluZXIgLmZvb3RlciBmb3JtLmdyaWQtZm9ybSBpbnB1dC5mb3JtLXRleHRbdHlwZT1zdWJtaXRdOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0YtR1JFKTtcbn1cbi5wb3B1cC1jb250YWluZXIub3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBPdmVybGF5IOKAkyBTZWFyY2ggKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuI3NlYXJjaC1jb250YWluZXIsXG4jbG9naW4tY29udGFpbmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNzZWFyY2gtY29udGFpbmVyIGZvcm0sXG4jbG9naW4tY29udGFpbmVyIGZvcm0ge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbiNzZWFyY2gtY29udGFpbmVyLm9wZW4sXG4jbG9naW4tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuI2xvZ2luLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDA7XG59XG4jbG9naW4tY29udGFpbmVyIGZvcm0ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jbG9naW4tY29udGFpbmVyIGZvcm0gaW5wdXQge1xuICBtYXJnaW4tdG9wOiBjYWxjKDBweCAtIHZhcigtLWxpbmUpKTtcbn1cbiNsb2dpbi1jb250YWluZXIgZm9ybSAuZm9ybS1zdWJtaXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDEwJTtcbiAgbWFyZ2luOiB2YXIoLS1ibHUpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbiN2aWV3LWNvbXBhc3MgI3NlYXJjaC1jb250YWluZXIgZm9ybSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLW5hdmktb3V0ZXIpO1xufVxuXG4uZm9ybS10ZXh0IHtcbiAgZm9udC1zaXplOiB2YXIoLS1oMS1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1oMS1saCk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGJvcmRlcjogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ0ctMDAwKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoZWlnaHQ6IHZhcigtLW5hdmktb3V0ZXIpO1xuICB3aWR0aDogODAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wOTMpO1xuICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1oMS1mcykgKiAwLjI1KTtcbn1cblxuLmZvcm0tdGV4dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTEwMCk7XG59XG5cbi5mb3JtLXRleHQ6OnBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLUNHLTA2OSk7XG59XG5cbi5mb3JtLXRleHQ6Zm9jdXM6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLUNHLTA5Myk7XG59XG5cbi5mb3JtLXN1Ym1pdCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKDBweCAtIDEwMCUgLSB2YXIoLS1ibHUpICogMikpIHJvdGF0ZSg5MGRlZyk7XG4gIGJhY2tncm91bmQ6IHVybChcImdyYXBoaWNzL2NpcmMtYXJyLnN2Z1wiKTtcbn1cblxuLmZvcm0tdGV4dCArIC5mb3JtLXN1Ym1pdDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNHLTEwMCk7XG59XG5cbi5mb3JtLXRleHQ6Zm9jdXMgKyAuZm9ybS1zdWJtaXQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DRy0wOTMpO1xufVxuXG5kaXZbcm9sZT1zdGF0dXNdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnVpLWF1dG9jb21wbGV0ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTA5Myk7XG4gIHdpZHRoOiA4MCUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DRy0wMDApO1xuICBib3JkZXItdG9wOiAwO1xuICB6LWluZGV4OiA5MDA7XG59XG4udWktYXV0b2NvbXBsZXRlIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tYmx1KSAqIDAuNSk7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNHLTAwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tcC1mcyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1wLWxoKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLWF1dG9jb21wbGV0ZSBsaTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTEwMCk7XG59XG5cbi8qIE92ZXJsYXkg4oCTIEluZm8gKi9cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLmluZm8tb3Blbi1idG4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogdmFyKC0tbmF2aS1pbm5lcik7XG4gIHdpZHRoOiB2YXIoLS1uYXZpLWlubmVyKTtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJncmFwaGljcy9jaXJjLWluZi5zdmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAxMDB2aDtcbiAgbWFyZ2luOiB2YXIoLS1ibHUpO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiA2MDA7XG59XG5cbi5pbmZvIC5vdmVybGF5LWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKHZhcigtLWJsdSkgKiA1MCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTA5Myk7XG4gIGJvcmRlcjogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ0ctMDAwKTtcbn1cblxuLmluZm8tbmV4dC1idG4sXG4uaW5mby1wcmV2LWJ0biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IHZhcigtLW5hdmktaW5uZXIpO1xuICB3aWR0aDogdmFyKC0tbmF2aS1pbm5lcik7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHVybChcImdyYXBoaWNzL2NpcmMtaW5mLnN2Z1wiKSBuby1yZXBlYXQgY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDEwMHZoO1xuICBtYXJnaW46IHZhcigtLWJsdSk7XG4gIHotaW5kZXg6IDIwMDtcbn1cblxuLmluZm8tbmV4dC1idG4ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJncmFwaGljcy9jaXJjLW5leC5zdmdcIikgbm8tcmVwZWF0IGNlbnRlcjtcbiAgcmlnaHQ6IDA7XG59XG5cbi5pbmZvLXByZXYtYnRuIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiZ3JhcGhpY3MvY2lyYy1wcmUuc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXI7XG4gIHJpZ2h0OiBjYWxjKCh2YXIoLS1uYXZpLWlubmVyKSArIHZhcigtLWJsdSkpICogMSk7XG59XG5cbi5sYXN0IC5pbmZvLW5leHQtYnRuLFxuLmZpcnN0IC5pbmZvLXByZXYtYnRuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmluZm8tbmV4dC1idG46aG92ZXIsXG4uaW5mby1wcmV2LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNHLTEwMCk7XG59XG5cbi5pbmZvLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYyh2YXIoLS1ibHUpICogMzApO1xufVxuXG4uc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogdmFyKC0tYmx1KTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnNsaWRlIC5pbWFnZSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1ibHUpICogMik7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiB2YXIoLS1ibHUpO1xuICBsZWZ0OiB2YXIoLS1ibHUpO1xufVxuLnNsaWRlIC5pbWFnZSBzdmcge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLnNsaWRlLmFjdGl2ZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi8qIE92ZXJsYXkg4oCTIEFjdGl2ZSAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4ub3ZlcmxheS1hY3RpdmUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wMzMpO1xuICBjb2xvcjogdmFyKC0tQ0ctMDAwKTtcbn1cbi5vdmVybGF5LWFjdGl2ZSAjbmF2aS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRy0wMzMpO1xuICBjb2xvcjogdmFyKC0tQ0ctMDAwKTtcbn1cbi5vdmVybGF5LWFjdGl2ZSAjY29sbC1vdmVydmlldy1uYXZpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0ctMDMzKTtcbiAgY29sb3I6IHZhcigtLUNHLTAwMCk7XG59XG4ub3ZlcmxheS1hY3RpdmUgI2NvbGwtb3ZlcnZpZXctbmF2aSAuZmFtaWx5LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTAzMyk7XG59XG4ub3ZlcmxheS1hY3RpdmUgI2NvbXBhc3MtY29udGFpbmVyIC5tYXJrZXIge1xuICBib3JkZXI6IHNvbGlkIHZhcigtLWxpbmUpIHZhcigtLUNHLTAwMCk7XG4gIG1peC1ibGVuZC1tb2RlOiB1bnNldDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMHM7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xufVxuLm92ZXJsYXktYWN0aXZlICNjb21wYXNzLWNvbnRhaW5lciAuYmxvY2tlciB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDBzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbn1cbi5vdmVybGF5LWFjdGl2ZSAjc2F2ZS10aGlzLWZvbnQgc3ZnICoge1xuICBmaWxsOiB2YXIoLS1DRy0wMTQpO1xufVxuLm92ZXJsYXktYWN0aXZlICNpbmRleC1uYXZpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0ctMDMzKTtcbn1cbi5vdmVybGF5LWFjdGl2ZSAjZm9vdGVyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTAzMyk7XG59XG5cbi8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuLyogRm9vdGVyICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiNmb290ZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uYXZpLW91dGVyKSArIHZhcigtLWxpbmUpICogMik7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DRy0wMDApO1xuICBwYWRkaW5nOiB2YXIoLS1ibHUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1DRi1SRUQpO1xufVxuI2Zvb3Rlci1jb250YWluZXIgKiB7XG4gIGNvbG9yOiB2YXIoLS1DRy0wMDApO1xufVxuI2Zvb3Rlci1jb250YWluZXIgI2Zvb3Rlci1oZWFkZXIgaDIge1xuICBtYXgtd2lkdGg6IGNhbGModmFyKC0tYmx1KSAqIDcwKTtcbn1cbiNmb290ZXItY29udGFpbmVyICNmb290ZXItaGVhZGVyIHAge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1wLWxoKTtcbn1cbiNmb290ZXItY29udGFpbmVyICNmb290ZXItZm9vdGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IHZhcigtLWJsdSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1ibHUpICogMik7XG59XG4jZm9vdGVyLWNvbnRhaW5lciAjZm9vdGVyLWZvb3RlciBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLUNHLTAwMCk7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbiNmb290ZXItY29udGFpbmVyICNmb290ZXItZm9vdGVyID4gZGl2Omxhc3QtY2hpbGQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xufVxuXG4jZG9uYXRlLWJ1dHRvbi1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbiNkb25hdGUtYnV0dG9uLWNvbnRhaW5lciAjZG9uYXRlLWJ1dHRvbiBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbn1cblxuI2RvbmF0ZS1idXR0b24tY29udGFpbmVyOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uc2VwYXJhdG9yIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWJsdSkgKiAyKTtcbiAgbGVmdDogY2FsYygwcHggLSB2YXIoLS1ibHUpKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DRy0wMDApO1xuICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWJsdSkgKiA1KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tYmx1KTtcbn1cblxuI2Zvb3Rlci1zaWdudXAge1xuICBtYXgtd2lkdGg6IGNhbGModmFyKC0tYmx1KSAqIDcwKTtcbn1cbiNmb290ZXItc2lnbnVwIGlucHV0W3R5cGU9ZW1haWxdIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZm9udC1zaXplOiB2YXIoLS1wLWZzKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXAtbGgpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDIpO1xuICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLWJsdSkgKiAyKTtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZS1vdXQ7XG59XG4jZm9vdGVyLXNpZ251cCBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tQ0ctMDAwKTtcbiAgb3BhY2l0eTogMC41O1xufVxuI2Zvb3Rlci1zaWdudXAgaW5wdXRbdHlwZT1zdWJtaXRdLFxuI2Zvb3Rlci1zaWdudXAgaW5wdXRbdHlwZT1idXR0b25dIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IHZhcigtLW4tZnMpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbi1saCk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYm9keVtzYXZlZD1vcGVuXTpub3QoI3ZpZXctaW5mbykgI2Zvb3Rlci1jb250YWluZXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0td2ktc2F2ZWQpKTtcbn1cblxuI3ZpZXctc2lnbnVwICNuYXZpLWNvbnRhaW5lcixcbi5mb290ZXItYWN0aXZlICNuYXZpLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNGLVJFRCk7XG59XG4jdmlldy1zaWdudXAgI25hdmktY29udGFpbmVyLFxuI3ZpZXctc2lnbnVwICNjb2xsZWN0aW9uLW5hdmktY29udGFpbmVyLFxuLmZvb3Rlci1hY3RpdmUgI25hdmktY29udGFpbmVyLFxuLmZvb3Rlci1hY3RpdmUgI2NvbGxlY3Rpb24tbmF2aS1jb250YWluZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLUNHLTAwMCk7XG4gIGNvbG9yOiB2YXIoLS1DRy0wMDApICFpbXBvcnRhbnQ7XG59XG4jdmlldy1zaWdudXAgI25hdmktY29udGFpbmVyICosXG4jdmlldy1zaWdudXAgI2NvbGxlY3Rpb24tbmF2aS1jb250YWluZXIgKixcbi5mb290ZXItYWN0aXZlICNuYXZpLWNvbnRhaW5lciAqLFxuLmZvb3Rlci1hY3RpdmUgI2NvbGxlY3Rpb24tbmF2aS1jb250YWluZXIgKiB7XG4gIGNvbG9yOiB2YXIoLS1DRy0wMDApICFpbXBvcnRhbnQ7XG59XG4jdmlldy1zaWdudXAgI3JldHVybi1idG4gLmFycm93LWNvbnRhaW5lcjo6YmVmb3JlLFxuLmZvb3Rlci1hY3RpdmUgI3JldHVybi1idG4gLmFycm93LWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0ctMDAwKTtcbn1cbiN2aWV3LXNpZ251cCAjcmV0dXJuLWJ0biAuYXJyb3ctY29udGFpbmVyOjphZnRlcixcbi5mb290ZXItYWN0aXZlICNyZXR1cm4tYnRuIC5hcnJvdy1jb250YWluZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1DRy0wMDApO1xufVxuI3ZpZXctc2lnbnVwICNyZXR1cm4tYnRuOmhvdmVyIC5hcnJvdy1jb250YWluZXIsXG4uZm9vdGVyLWFjdGl2ZSAjcmV0dXJuLWJ0bjpob3ZlciAuYXJyb3ctY29udGFpbmVyIHtcbiAgb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7XG59XG4jdmlldy1zaWdudXAgI3JldHVybi1idG46aG92ZXIgLmFycm93LWNvbnRhaW5lcjo6YmVmb3JlLFxuLmZvb3Rlci1hY3RpdmUgI3JldHVybi1idG46aG92ZXIgLmFycm93LWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0ctMDAwKTtcbn1cbiN2aWV3LXNpZ251cCAjcmV0dXJuLWJ0bjpob3ZlciAuYXJyb3ctY29udGFpbmVyOjphZnRlcixcbi5mb290ZXItYWN0aXZlICNyZXR1cm4tYnRuOmhvdmVyIC5hcnJvdy1jb250YWluZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1DRy0wMDApO1xufVxuI3ZpZXctc2lnbnVwIC5uYXZpLXN1YixcbiN2aWV3LXNpZ251cCAjbmF2aS1jb250YWluZXIgOmhvdmVyLFxuI3ZpZXctc2lnbnVwICNuYXZpLWNvbnRhaW5lciAqOmhvdmVyLFxuI3ZpZXctc2lnbnVwICNuYXZpLWNvbXA6aG92ZXIgKixcbiN2aWV3LXNpZ251cCAjcmV0dXJuLWJ0bjpob3ZlciAqLFxuLmZvb3Rlci1hY3RpdmUgLm5hdmktc3ViLFxuLmZvb3Rlci1hY3RpdmUgI25hdmktY29udGFpbmVyIDpob3Zlcixcbi5mb290ZXItYWN0aXZlICNuYXZpLWNvbnRhaW5lciAqOmhvdmVyLFxuLmZvb3Rlci1hY3RpdmUgI25hdmktY29tcDpob3ZlciAqLFxuLmZvb3Rlci1hY3RpdmUgI3JldHVybi1idG46aG92ZXIgKiB7XG4gIGNvbG9yOiB2YXIoLS1DRy0wMDApICFpbXBvcnRhbnQ7XG59XG4jdmlldy1zaWdudXAgI3JldHVybi1idG46aG92ZXI6OmFmdGVyLFxuLmZvb3Rlci1hY3RpdmUgI3JldHVybi1idG46aG92ZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1DRy0wMDApICFpbXBvcnRhbnQ7XG59XG4jdmlldy1zaWdudXAgLm5hdmktc3ViOmhvdmVyLFxuI3ZpZXctc2lnbnVwICNuYXZpLWNvbXA6aG92ZXIsXG4jdmlldy1zaWdudXAgI3JldHVybi1idG46aG92ZXIsXG4uZm9vdGVyLWFjdGl2ZSAubmF2aS1zdWI6aG92ZXIsXG4uZm9vdGVyLWFjdGl2ZSAjbmF2aS1jb21wOmhvdmVyLFxuLmZvb3Rlci1hY3RpdmUgI3JldHVybi1idG46aG92ZXIge1xuICBvcGFjaXR5OiAwLjUgIWltcG9ydGFudDtcbn1cblxuI3ZpZXctc2lnbnVwIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0YtUkVEKTtcbn1cblxuI3ZpZXctZm9udC1zZXR0aW5nczpub3QoLnJlbGF0ZWQtb3BlbikgI2Zvb3Rlci1jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbi8qIE1vYmlsZSBNZXNzYWdlICovXG4vKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiNtb2JpbGUtbWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIGF1dG87XG4gIGdyaWQtZ2FwOiB2YXIoLS1saW5lKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNHLTAwMCk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cbiNtb2JpbGUtbWVzc2FnZSA+IGRpdiB7XG4gIHBhZGRpbmc6IHZhcigtLWJsdSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLUNGLVJFRCk7XG59XG4jbW9iaWxlLW1lc3NhZ2UgaDIge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tYmx1KTtcbn1cbiNtb2JpbGUtbWVzc2FnZSAuY2xvc2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNtb2JpbGUtbWVzc2FnZSAuY2xvc2UgYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBzb2xpZCB2YXIoLS1DRy0wMDApIHZhcigtLWxpbmUpO1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWJsdSkgKiAxKSBjYWxjKHZhcigtLWJsdSkgKiAyKSBjYWxjKHZhcigtLWJsdSkgKiAwLjMpO1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWJsdSkgKiAyKTtcbn1cbiNtb2JpbGUtbWVzc2FnZSAuY2xvc2UgYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tQ0ctMDAwKTtcbiAgY29sb3I6IHZhcigtLUNGLVJFRCk7XG59XG4jbW9iaWxlLW1lc3NhZ2Vbb3ZlcnJpZGU9Y2xvc2VdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gKi9cbi8qIE1lZGlhICovXG4vKiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4vKiAxIC8gTW9iaWxlIC8gWFMgLyAqL1xuLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG46cm9vdCB7XG4gIC0tbWVkaWE6IFhTLU1vYmlsZTtcbiAgLS1ibHU6IGNhbGModmFyKC0tc2NyKSoxMCk7XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDM1ZW0pIHtcbiAgLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4gIC8qIDIgLyBUYWJsZXQgLyBTIC8gKi9cbiAgLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4gIDpyb290IHtcbiAgICAtLW1lZGlhOiBTLVRhYmxldDtcbiAgICAtLWJsdTogY2FsYyh2YXIoLS1zY3IpKjEyKTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNTVlbSkge1xuICAvKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiAgLyogMyAvIExhcHRvcCBhbmQgVGFibGV0IC8gTSAvICovXG4gIC8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuICA6cm9vdCB7XG4gICAgLS1tZWRpYTogTS1UYWJsZXQtTGFwdG9wO1xuICAgIC0tYmx1OiBjYWxjKHZhcigtLXNjcikqMTQpO1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuICAvKiA0IC8gTGFwdG9wIC8gTCAvICovXG4gIC8qIOKAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAk+KAkyAqL1xuICA6cm9vdCB7XG4gICAgLS1tZWRpYTogTC1MYXB0b3AtRGVza3RvcDtcbiAgICAtLWJsdTogY2FsYyh2YXIoLS1zY3IpKjE2KTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4gIC8qIDUgLyBEZXNrdG9wIC8gWEwgLyAqL1xuICAvKiDigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJPigJMgKi9cbiAgOnJvb3Qge1xuICAgIC0tbWVkaWE6IFhMLURlc2t0b3A7XG4gICAgLS1ibHU6IGNhbGModmFyKC0tc2NyKSAqIDE4KTtcbiAgfVxuXG4gIC5zZXR0aW5ncy1uYXZpLWJ0biB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1oMS1mcyk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tYmx1KSAqIDMuNCk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgfVxuXG4gICNzZXR0aW5ncy1wcmV2aWV3LW5hdmkge1xuICAgIGhlaWdodDogdmFyKC0tbmF2aS1vdXRlcik7XG4gIH1cblxuICAuc2V0dGluZ3MtbmF2aS1zYXZlIHtcbiAgICB3aWR0aDogdmFyKC0tbmF2aS1vdXRlcik7XG4gIH1cblxuICAjdmlldy1mb250LXNldHRpbmdzICNzZXR0aW5ncy1wcmV2aWV3IC50eXBlLXNhbXBsZS1jb250YWluZXIsICN2aWV3LWZvbnQtZWRpdCAjc2V0dGluZ3MtcHJldmlldyAudHlwZS1zYW1wbGUtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLWJsdSkgKiA3LjQpO1xuICB9XG5cbiAgI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItc2VsZWN0PXNpbmdsZV0ub2RkIC5vcHRpb24ge1xuICAgIGJvcmRlci1yaWdodDogc29saWQgdmFyKC0tbGluZSkgdmFyKC0tQ0ctMDAwKTtcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCB2YXIoLS1saW5lKSB2YXIoLS1DRy0wMDApO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICB9XG4gICNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXNlbGVjdD1zaW5nbGVdLm9kZCAub3B0aW9uOm50aC1jaGlsZCgzbikge1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgfVxuICAjYWN0aS1wYXJhbWV0ZXItY29udGFpbmVyIC5wYXJhbWV0ZXItY29udGFpbmVyW3Bhci1zZWxlY3Q9c2luZ2xlXS5vZGQgLm9wdGlvbjpudGgtY2hpbGQoM24rMSk6bnRoLWxhc3QtY2hpbGQoLW4rMyksICNhY3RpLXBhcmFtZXRlci1jb250YWluZXIgLnBhcmFtZXRlci1jb250YWluZXJbcGFyLXNlbGVjdD1zaW5nbGVdLm9kZCAub3B0aW9uOm50aC1jaGlsZCgzbisxKTpudGgtbGFzdC1jaGlsZCgtbiszKSB+IC5vcHRpb24ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbiAgI2FjdGktcGFyYW1ldGVyLWNvbnRhaW5lciAucGFyYW1ldGVyLWNvbnRhaW5lcltwYXItc2VsZWN0PXNpbmdsZV0ub2RkIC5vcHRpb25zIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1MGVtKSwgKG1heC1oZWlnaHQ6IDQwZW0pIHtcbiAgLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4gIC8qICEhISAvIE1vYmlsZSBvbmx5IC8gISEhIC8gKi9cbiAgLyog4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCT4oCTICovXG4gIDpyb290IHtcbiAgICAtLW1lZGlhOiBYUy1Nb2JpbGUtT25seTtcbiAgfVxuXG4gIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAjbW9iaWxlLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gIH1cbn1cbiJdfQ== */