*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: "Inter", sans-serif; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: "JetBrains Mono", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  /* Anti-FOUC */
  html { 
    visibility: visible; 
    opacity: 1; 
  }
  
  /* Custom Scrollbar */
  ::-webkit-scrollbar { width: 8px; }
  ::-webkit-scrollbar-track { background: #1D1D1D; }
  ::-webkit-scrollbar-thumb { background: #56B336; border-radius: 4px; }
.container {
  width: 100%;
}
@media (min-width: 640px) {

  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {

  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {

  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {

  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {

  .container {
    max-width: 1536px;
  }
}
/* Prose / Content Styles */
.prose h1, .prose h2, .prose h3 { 
    font-family: "VT323", monospace; 
    color: #fff; 
    margin-top: 1em; 
    margin-bottom: 0.5em; 
    clear: both; 
  }
.prose h1 { font-size: 2.5rem; color: #56B336; border-bottom: 2px solid #333; padding-bottom: 0.2em; }
.prose h2 { font-size: 2rem; border-bottom: 1px dashed #444; padding-bottom: 0.1em; }
.prose p { margin-bottom: 1em; line-height: 1.6; color: #D1D5DB; }
.prose ul { list-style-type: disc; padding-left: 1.5em; margin-bottom: 1em; color: #D1D5DB; }
.prose ol { list-style-type: decimal; padding-left: 1.5em; margin-bottom: 1em; color: #D1D5DB; }
.prose blockquote { border-left: 4px solid #56B336; background: rgba(86, 179, 54, 0.1); padding: 0.5em 1em; color: #9CA3AF; font-style: italic; margin-bottom: 1em; }
.prose code { background: #111; padding: 0.2em 0.4em; border-radius: 4px; font-family: "JetBrains Mono", monospace; color: #56B336; font-size: 0.9em; }
.prose pre { background: #0a0a0a; padding: 1em; border-radius: 4px; border: 1px solid #333; overflow-x: auto; margin-bottom: 1em; clear: both; }
.prose pre code { background: transparent; padding: 0; color: #e5e7eb; }
.prose hr { border: 0; border-bottom: 4px solid #56B336; margin: 2rem 0; box-shadow: 0 4px 0 #000; clear: both; }
.prose img { max-width: 100%; height: auto; border: 4px solid #2A2A2A; box-shadow: 4px 4px 0 #000; }
.prose a { color: #56B336; text-decoration: underline; }
.prose strong { color: #fff; font-weight: 700; }
.prose em { color: #fff; font-style: italic; opacity: 0.9; }
.prose::after { content: ""; display: table; clear: both; }
/* Utility Classes */
.pixel-border { box-shadow: -4px 0 0 0 #111, 4px 0 0 0 #111, 0 -4px 0 0 #111, 0 4px 0 0 #111; }
/* Wiki Infobox */
.wiki-infobox {
    float: right;
    width: 300px;
    margin: 0 0 1rem 1rem;
    background: #2A2A2A;
    border: 4px solid #000;
    box-shadow: 4px 4px 0 #000;
    font-family: "Inter", sans-serif;
    overflow: hidden;
  }
.wiki-infobox .header {
    background: #56B336;
    color: #000;
    font-family: "VT323", monospace;
    font-size: 1.5rem;
    text-align: center;
    padding: 0.25rem;
    border-bottom: 4px solid #000;
    text-transform: uppercase;
  }
.wiki-infobox .image {
    padding: 0;
    text-align: center;
    background: #151515;
    border-bottom: 2px solid #000;
  }
.wiki-infobox .image img {
    width: 100%;
    height: auto;
    border: none;
    box-shadow: none;
    display: block;
  }
.wiki-infobox .section-header {
    background: #111;
    color: #56B336;
    font-weight: bold;
    padding: 0.5rem;
    text-align: center;
    border-bottom: 2px solid #000;
    font-family: "VT323", monospace;
    letter-spacing: 1px;
    text-transform: uppercase;
  }
.wiki-infobox .row {
    padding: 0.75rem;
    border-bottom: 1px solid #444;
    font-size: 0.9rem;
    display: flex;
    flex-direction: column;
  }
.wiki-infobox .row:last-child { border-bottom: none; }
.wiki-infobox .label {
    font-weight: bold;
    color: #fff;
    margin-bottom: 0.25rem;
  }
.wiki-infobox .value {
    color: #D1D5DB;
  }
/* Responsive Infobox */
@media (max-width: 640px) {
    .wiki-infobox {
      float: none;
      width: 100%;
      margin: 1rem 0;
    }
  }
/* Editor Specific */
.editor-textarea {
    -moz-tab-size: 4;
      -o-tab-size: 4;
         tab-size: 4;
    caret-color: #56B336;
    line-height: 1.5;
  }
/* Inputs & Loaders */
input[type=range] { accent-color: #56B336; }
.loader { 
    border: 4px solid #333; 
    border-top: 4px solid #56B336; 
    border-radius: 50%; 
    width: 40px; 
    height: 40px; 
    animation: spin 1s linear infinite; 
  }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.visible {
  visibility: visible;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.inset-0 {
  inset: 0px;
}
.inset-y-0 {
  top: 0px;
  bottom: 0px;
}
.bottom-full {
  bottom: 100%;
}
.left-0 {
  left: 0px;
}
.right-0 {
  right: 0px;
}
.top-full {
  top: 100%;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-auto {
  margin-left: auto;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mr-4 {
  margin-right: 1rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-4 {
  margin-top: 1rem;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-10 {
  height: 2.5rem;
}
.h-12 {
  height: 3rem;
}
.h-16 {
  height: 4rem;
}
.h-2 {
  height: 0.5rem;
}
.h-48 {
  height: 12rem;
}
.h-6 {
  height: 1.5rem;
}
.h-64 {
  height: 16rem;
}
.h-8 {
  height: 2rem;
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.h-screen {
  height: 100vh;
}
.max-h-64 {
  max-height: 16rem;
}
.min-h-full {
  min-height: 100%;
}
.w-1\.5 {
  width: 0.375rem;
}
.w-1\/2 {
  width: 50%;
}
.w-48 {
  width: 12rem;
}
.w-64 {
  width: 16rem;
}
.w-8 {
  width: 2rem;
}
.w-full {
  width: 100%;
}
.w-px {
  width: 1px;
}
.min-w-\[100px\] {
  min-width: 100px;
}
.max-w-3xl {
  max-width: 48rem;
}
.max-w-5xl {
  max-width: 64rem;
}
.max-w-full {
  max-width: 100%;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-none {
  max-width: none;
}
.flex-1 {
  flex: 1 1 0%;
}
.shrink-0 {
  flex-shrink: 0;
}
.-translate-x-full {
  --tw-translate-x: -100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes bounce {

  0%, 100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8,0,1,1);
  }

  50% {
    transform: none;
    animation-timing-function: cubic-bezier(0,0,0.2,1);
  }
}
.animate-bounce {
  animation: bounce 1s infinite;
}
@keyframes pulse {

  50% {
    opacity: .5;
  }
}
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin {

  to {
    transform: rotate(360deg);
  }
}
.animate-spin {
  animation: spin 1s linear infinite;
}
.cursor-pointer {
  cursor: pointer;
}
.resize-none {
  resize: none;
}
.appearance-none {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-start {
  align-items: flex-start;
}
.items-center {
  align-items: center;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-6 {
  gap: 1.5rem;
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-y-auto {
  overflow-y: auto;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.border {
  border-width: 1px;
}
.border-2 {
  border-width: 2px;
}
.border-4 {
  border-width: 4px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-b-2 {
  border-bottom-width: 2px;
}
.border-b-4 {
  border-bottom-width: 4px;
}
.border-r {
  border-right-width: 1px;
}
.border-t {
  border-top-width: 1px;
}
.border-t-4 {
  border-top-width: 4px;
}
.border-black {
  --tw-border-opacity: 1;
  border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
}
.border-gray-600 {
  --tw-border-opacity: 1;
  border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));
}
.border-gray-700 {
  --tw-border-opacity: 1;
  border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
}
.border-gray-800 {
  --tw-border-opacity: 1;
  border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
}
.border-gray-900 {
  --tw-border-opacity: 1;
  border-color: rgb(17 24 39 / var(--tw-border-opacity, 1));
}
.border-mc-greenDark {
  --tw-border-opacity: 1;
  border-color: rgb(58 122 36 / var(--tw-border-opacity, 1));
}
.bg-\[\#111\] {
  --tw-bg-opacity: 1;
  background-color: rgb(17 17 17 / var(--tw-bg-opacity, 1));
}
.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.bg-black\/50 {
  background-color: rgb(0 0 0 / 0.5);
}
.bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.bg-gray-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
}
.bg-gray-700 {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}
.bg-gray-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
}
.bg-mc-dark {
  --tw-bg-opacity: 1;
  background-color: rgb(29 29 29 / var(--tw-bg-opacity, 1));
}
.bg-mc-green {
  --tw-bg-opacity: 1;
  background-color: rgb(86 179 54 / var(--tw-bg-opacity, 1));
}
.bg-mc-panel {
  --tw-bg-opacity: 1;
  background-color: rgb(42 42 42 / var(--tw-bg-opacity, 1));
}
.bg-red-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}
.bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}
.bg-yellow-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));
}
.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.p-2 {
  padding: 0.5rem;
}
.p-4 {
  padding: 1rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-8 {
  padding: 2rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.pb-2 {
  padding-bottom: 0.5rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pt-4 {
  padding-top: 1rem;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.font-mono {
  font-family: "JetBrains Mono", monospace;
}
.font-pixel {
  font-family: "VT323", monospace;
}
.font-sans {
  font-family: "Inter", sans-serif;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.uppercase {
  text-transform: uppercase;
}
.italic {
  font-style: italic;
}
.leading-relaxed {
  line-height: 1.625;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.text-blue-400 {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}
.text-gray-200 {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}
.text-gray-300 {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}
.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-mc-green {
  --tw-text-opacity: 1;
  color: rgb(86 179 54 / var(--tw-text-opacity, 1));
}
.text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}
.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-yellow-500 {
  --tw-text-opacity: 1;
  color: rgb(234 179 8 / var(--tw-text-opacity, 1));
}
.underline {
  text-decoration-line: underline;
}
.placeholder-gray-600::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(75 85 99 / var(--tw-placeholder-opacity, 1));
}
.placeholder-gray-600::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(75 85 99 / var(--tw-placeholder-opacity, 1));
}
.opacity-0 {
  opacity: 0;
}
.opacity-80 {
  opacity: 0.8;
}
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow-md {
  --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.hover\:-translate-y-1:hover {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:border-mc-green:hover {
  --tw-border-opacity: 1;
  border-color: rgb(86 179 54 / var(--tw-border-opacity, 1));
}
.hover\:border-white:hover {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.hover\:bg-black\/50:hover {
  background-color: rgb(0 0 0 / 0.5);
}
.hover\:bg-blue-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}
.hover\:bg-mc-greenDark:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(58 122 36 / var(--tw-bg-opacity, 1));
}
.hover\:bg-red-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}
.hover\:bg-white\/5:hover {
  background-color: rgb(255 255 255 / 0.05);
}
.hover\:text-red-300:hover {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}
.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hover\:opacity-80:hover {
  opacity: 0.8;
}
.hover\:opacity-90:hover {
  opacity: 0.9;
}
.focus\:border-mc-green:focus {
  --tw-border-opacity: 1;
  border-color: rgb(86 179 54 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.active\:mt-1:active {
  margin-top: 0.25rem;
}
.active\:border-b-0:active {
  border-bottom-width: 0px;
}
.group:hover .group-hover\:bg-mc-green {
  --tw-bg-opacity: 1;
  background-color: rgb(86 179 54 / var(--tw-bg-opacity, 1));
}
.group:hover .group-hover\:text-gray-200 {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:text-mc-green {
  --tw-text-opacity: 1;
  color: rgb(86 179 54 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}
@media (min-width: 640px) {

  .sm\:inline {
    display: inline;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 768px) {

  .md\:static {
    position: static;
  }

  .md\:hidden {
    display: none;
  }

  .md\:translate-x-0 {
    --tw-translate-x: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .md\:bg-black\/30 {
    background-color: rgb(0 0 0 / 0.3);
  }
}
@media (min-width: 1024px) {

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIqLCA6OmJlZm9yZSwgOjphZnRlciB7XHJcbiAgLS10dy1ib3JkZXItc3BhY2luZy14OiAwO1xyXG4gIC0tdHctYm9yZGVyLXNwYWNpbmcteTogMDtcclxuICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xyXG4gIC0tdHctdHJhbnNsYXRlLXk6IDA7XHJcbiAgLS10dy1yb3RhdGU6IDA7XHJcbiAgLS10dy1za2V3LXg6IDA7XHJcbiAgLS10dy1za2V3LXk6IDA7XHJcbiAgLS10dy1zY2FsZS14OiAxO1xyXG4gIC0tdHctc2NhbGUteTogMTtcclxuICAtLXR3LXBhbi14OiAgO1xyXG4gIC0tdHctcGFuLXk6ICA7XHJcbiAgLS10dy1waW5jaC16b29tOiAgO1xyXG4gIC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5O1xyXG4gIC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogIDtcclxuICAtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogIDtcclxuICAtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiAgO1xyXG4gIC0tdHctb3JkaW5hbDogIDtcclxuICAtLXR3LXNsYXNoZWQtemVybzogIDtcclxuICAtLXR3LW51bWVyaWMtZmlndXJlOiAgO1xyXG4gIC0tdHctbnVtZXJpYy1zcGFjaW5nOiAgO1xyXG4gIC0tdHctbnVtZXJpYy1mcmFjdGlvbjogIDtcclxuICAtLXR3LXJpbmctaW5zZXQ6ICA7XHJcbiAgLS10dy1yaW5nLW9mZnNldC13aWR0aDogMHB4O1xyXG4gIC0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7XHJcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIDAuNSk7XHJcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IDAgMCAjMDAwMDtcclxuICAtLXR3LXJpbmctc2hhZG93OiAwIDAgIzAwMDA7XHJcbiAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcclxuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDAgIzAwMDA7XHJcbiAgLS10dy1ibHVyOiAgO1xyXG4gIC0tdHctYnJpZ2h0bmVzczogIDtcclxuICAtLXR3LWNvbnRyYXN0OiAgO1xyXG4gIC0tdHctZ3JheXNjYWxlOiAgO1xyXG4gIC0tdHctaHVlLXJvdGF0ZTogIDtcclxuICAtLXR3LWludmVydDogIDtcclxuICAtLXR3LXNhdHVyYXRlOiAgO1xyXG4gIC0tdHctc2VwaWE6ICA7XHJcbiAgLS10dy1kcm9wLXNoYWRvdzogIDtcclxuICAtLXR3LWJhY2tkcm9wLWJsdXI6ICA7XHJcbiAgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiAgO1xyXG4gIC0tdHctYmFja2Ryb3AtY29udHJhc3Q6ICA7XHJcbiAgLS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6ICA7XHJcbiAgLS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiAgO1xyXG4gIC0tdHctYmFja2Ryb3AtaW52ZXJ0OiAgO1xyXG4gIC0tdHctYmFja2Ryb3Atb3BhY2l0eTogIDtcclxuICAtLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiAgO1xyXG4gIC0tdHctYmFja2Ryb3Atc2VwaWE6ICA7XHJcbiAgLS10dy1jb250YWluLXNpemU6ICA7XHJcbiAgLS10dy1jb250YWluLWxheW91dDogIDtcclxuICAtLXR3LWNvbnRhaW4tcGFpbnQ6ICA7XHJcbiAgLS10dy1jb250YWluLXN0eWxlOiAgO1xyXG59XHJcblxyXG46OmJhY2tkcm9wIHtcclxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXg6IDA7XHJcbiAgLS10dy1ib3JkZXItc3BhY2luZy15OiAwO1xyXG4gIC0tdHctdHJhbnNsYXRlLXg6IDA7XHJcbiAgLS10dy10cmFuc2xhdGUteTogMDtcclxuICAtLXR3LXJvdGF0ZTogMDtcclxuICAtLXR3LXNrZXcteDogMDtcclxuICAtLXR3LXNrZXcteTogMDtcclxuICAtLXR3LXNjYWxlLXg6IDE7XHJcbiAgLS10dy1zY2FsZS15OiAxO1xyXG4gIC0tdHctcGFuLXg6ICA7XHJcbiAgLS10dy1wYW4teTogIDtcclxuICAtLXR3LXBpbmNoLXpvb206ICA7XHJcbiAgLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOiBwcm94aW1pdHk7XHJcbiAgLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiAgO1xyXG4gIC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiAgO1xyXG4gIC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246ICA7XHJcbiAgLS10dy1vcmRpbmFsOiAgO1xyXG4gIC0tdHctc2xhc2hlZC16ZXJvOiAgO1xyXG4gIC0tdHctbnVtZXJpYy1maWd1cmU6ICA7XHJcbiAgLS10dy1udW1lcmljLXNwYWNpbmc6ICA7XHJcbiAgLS10dy1udW1lcmljLWZyYWN0aW9uOiAgO1xyXG4gIC0tdHctcmluZy1pbnNldDogIDtcclxuICAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7XHJcbiAgLS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjtcclxuICAtLXR3LXJpbmctY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gMC41KTtcclxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwO1xyXG4gIC0tdHctcmluZy1zaGFkb3c6IDAgMCAjMDAwMDtcclxuICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xyXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAjMDAwMDtcclxuICAtLXR3LWJsdXI6ICA7XHJcbiAgLS10dy1icmlnaHRuZXNzOiAgO1xyXG4gIC0tdHctY29udHJhc3Q6ICA7XHJcbiAgLS10dy1ncmF5c2NhbGU6ICA7XHJcbiAgLS10dy1odWUtcm90YXRlOiAgO1xyXG4gIC0tdHctaW52ZXJ0OiAgO1xyXG4gIC0tdHctc2F0dXJhdGU6ICA7XHJcbiAgLS10dy1zZXBpYTogIDtcclxuICAtLXR3LWRyb3Atc2hhZG93OiAgO1xyXG4gIC0tdHctYmFja2Ryb3AtYmx1cjogIDtcclxuICAtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6ICA7XHJcbiAgLS10dy1iYWNrZHJvcC1jb250cmFzdDogIDtcclxuICAtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogIDtcclxuICAtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6ICA7XHJcbiAgLS10dy1iYWNrZHJvcC1pbnZlcnQ6ICA7XHJcbiAgLS10dy1iYWNrZHJvcC1vcGFjaXR5OiAgO1xyXG4gIC0tdHctYmFja2Ryb3Atc2F0dXJhdGU6ICA7XHJcbiAgLS10dy1iYWNrZHJvcC1zZXBpYTogIDtcclxuICAtLXR3LWNvbnRhaW4tc2l6ZTogIDtcclxuICAtLXR3LWNvbnRhaW4tbGF5b3V0OiAgO1xyXG4gIC0tdHctY29udGFpbi1wYWludDogIDtcclxuICAtLXR3LWNvbnRhaW4tc3R5bGU6ICA7XHJcbn0vKlxyXG4hIHRhaWx3aW5kY3NzIHYzLjQuMTkgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tXHJcbiovLypcclxuMS4gUHJldmVudCBwYWRkaW5nIGFuZCBib3JkZXIgZnJvbSBhZmZlY3RpbmcgZWxlbWVudCB3aWR0aC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvNClcclxuMi4gQWxsb3cgYWRkaW5nIGEgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkganVzdCBhZGRpbmcgYSBib3JkZXItd2lkdGguIChodHRwczovL2dpdGh1Yi5jb20vdGFpbHdpbmRjc3MvdGFpbHdpbmRjc3MvcHVsbC8xMTYpXHJcbiovXHJcblxyXG4qLFxyXG46OmJlZm9yZSxcclxuOjphZnRlciB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gIGJvcmRlci13aWR0aDogMDsgLyogMiAqL1xyXG4gIGJvcmRlci1zdHlsZTogc29saWQ7IC8qIDIgKi9cclxuICBib3JkZXItY29sb3I6ICNlNWU3ZWI7IC8qIDIgKi9cclxufVxyXG5cclxuOjpiZWZvcmUsXHJcbjo6YWZ0ZXIge1xyXG4gIC0tdHctY29udGVudDogJyc7XHJcbn1cclxuXHJcbi8qXHJcbjEuIFVzZSBhIGNvbnNpc3RlbnQgc2Vuc2libGUgbGluZS1oZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxyXG4yLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cclxuMy4gVXNlIGEgbW9yZSByZWFkYWJsZSB0YWIgc2l6ZS5cclxuNC4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgc2Fuc2AgZm9udC1mYW1pbHkgYnkgZGVmYXVsdC5cclxuNS4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgc2Fuc2AgZm9udC1mZWF0dXJlLXNldHRpbmdzIGJ5IGRlZmF1bHQuXHJcbjYuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIGJ5IGRlZmF1bHQuXHJcbjcuIERpc2FibGUgdGFwIGhpZ2hsaWdodHMgb24gaU9TXHJcbiovXHJcblxyXG5odG1sLFxyXG46aG9zdCB7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTsgLyogMSAqL1xyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xyXG4gIC1tb3otdGFiLXNpemU6IDQ7IC8qIDMgKi9cclxuICAtby10YWItc2l6ZTogNDtcclxuICAgICB0YWItc2l6ZTogNDsgLyogMyAqL1xyXG4gIGZvbnQtZmFtaWx5OiBcIkludGVyXCIsIHNhbnMtc2VyaWY7IC8qIDQgKi9cclxuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDsgLyogNSAqL1xyXG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7IC8qIDYgKi9cclxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiA3ICovXHJcbn1cclxuXHJcbi8qXHJcbjEuIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cclxuMi4gSW5oZXJpdCBsaW5lLWhlaWdodCBmcm9tIGBodG1sYCBzbyB1c2VycyBjYW4gc2V0IHRoZW0gYXMgYSBjbGFzcyBkaXJlY3RseSBvbiB0aGUgYGh0bWxgIGVsZW1lbnQuXHJcbiovXHJcblxyXG5ib2R5IHtcclxuICBtYXJnaW46IDA7IC8qIDEgKi9cclxuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgLyogMiAqL1xyXG59XHJcblxyXG4vKlxyXG4xLiBBZGQgdGhlIGNvcnJlY3QgaGVpZ2h0IGluIEZpcmVmb3guXHJcbjIuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LiAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjU1KVxyXG4zLiBFbnN1cmUgaG9yaXpvbnRhbCBydWxlcyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0LlxyXG4qL1xyXG5cclxuaHIge1xyXG4gIGhlaWdodDogMDsgLyogMSAqL1xyXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXHJcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4OyAvKiAzICovXHJcbn1cclxuXHJcbi8qXHJcbkFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxyXG4qL1xyXG5cclxuYWJicjp3aGVyZShbdGl0bGVdKSB7XHJcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XHJcbn1cclxuXHJcbi8qXHJcblJlbW92ZSB0aGUgZGVmYXVsdCBmb250IHNpemUgYW5kIHdlaWdodCBmb3IgaGVhZGluZ3MuXHJcbiovXHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbi8qXHJcblJlc2V0IGxpbmtzIHRvIG9wdGltaXplIGZvciBvcHQtaW4gc3R5bGluZyBpbnN0ZWFkIG9mIG9wdC1vdXQuXHJcbiovXHJcblxyXG5hIHtcclxuICBjb2xvcjogaW5oZXJpdDtcclxuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XHJcbn1cclxuXHJcbi8qXHJcbkFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBFZGdlIGFuZCBTYWZhcmkuXHJcbiovXHJcblxyXG5iLFxyXG5zdHJvbmcge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbn1cclxuXHJcbi8qXHJcbjEuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYG1vbm9gIGZvbnQtZmFtaWx5IGJ5IGRlZmF1bHQuXHJcbjIuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYG1vbm9gIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBieSBkZWZhdWx0LlxyXG4zLiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBtb25vYCBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBieSBkZWZhdWx0LlxyXG40LiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiovXHJcblxyXG5jb2RlLFxyXG5rYmQsXHJcbnNhbXAsXHJcbnByZSB7XHJcbiAgZm9udC1mYW1pbHk6IFwiSmV0QnJhaW5zIE1vbm9cIiwgbW9ub3NwYWNlOyAvKiAxICovXHJcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7IC8qIDIgKi9cclxuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyAvKiAzICovXHJcbiAgZm9udC1zaXplOiAxZW07IC8qIDQgKi9cclxufVxyXG5cclxuLypcclxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiovXHJcblxyXG5zbWFsbCB7XHJcbiAgZm9udC1zaXplOiA4MCU7XHJcbn1cclxuXHJcbi8qXHJcblByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXHJcbiovXHJcblxyXG5zdWIsXHJcbnN1cCB7XHJcbiAgZm9udC1zaXplOiA3NSU7XHJcbiAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuc3ViIHtcclxuICBib3R0b206IC0wLjI1ZW07XHJcbn1cclxuXHJcbnN1cCB7XHJcbiAgdG9wOiAtMC41ZW07XHJcbn1cclxuXHJcbi8qXHJcbjEuIFJlbW92ZSB0ZXh0IGluZGVudGF0aW9uIGZyb20gdGFibGUgY29udGVudHMgaW4gQ2hyb21lIGFuZCBTYWZhcmkuIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD05OTkwODgsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyOTcpXHJcbjIuIENvcnJlY3QgdGFibGUgYm9yZGVyIGNvbG9yIGluaGVyaXRhbmNlIGluIGFsbCBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTkzNTcyOSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTAxNilcclxuMy4gUmVtb3ZlIGdhcHMgYmV0d2VlbiB0YWJsZSBib3JkZXJzIGJ5IGRlZmF1bHQuXHJcbiovXHJcblxyXG50YWJsZSB7XHJcbiAgdGV4dC1pbmRlbnQ6IDA7IC8qIDEgKi9cclxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cclxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvKiAzICovXHJcbn1cclxuXHJcbi8qXHJcbjEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxyXG4yLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXHJcbjMuIFJlbW92ZSBkZWZhdWx0IHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4qL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCxcclxub3B0Z3JvdXAsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXHJcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyAvKiAxICovXHJcbiAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IGluaGVyaXQ7IC8qIDEgKi9cclxuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cclxuICBmb250LXdlaWdodDogaW5oZXJpdDsgLyogMSAqL1xyXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiAxICovXHJcbiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7IC8qIDEgKi9cclxuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xyXG4gIG1hcmdpbjogMDsgLyogMiAqL1xyXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cclxufVxyXG5cclxuLypcclxuUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlIGFuZCBGaXJlZm94LlxyXG4qL1xyXG5cclxuYnV0dG9uLFxyXG5zZWxlY3Qge1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG59XHJcblxyXG4vKlxyXG4xLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxyXG4yLiBSZW1vdmUgZGVmYXVsdCBidXR0b24gc3R5bGVzLlxyXG4qL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dDp3aGVyZShbdHlwZT0nYnV0dG9uJ10pLFxyXG5pbnB1dDp3aGVyZShbdHlwZT0ncmVzZXQnXSksXHJcbmlucHV0OndoZXJlKFt0eXBlPSdzdWJtaXQnXSkge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDIgKi9cclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvKiAyICovXHJcbn1cclxuXHJcbi8qXHJcblVzZSB0aGUgbW9kZXJuIEZpcmVmb3ggZm9jdXMgc3R5bGUgZm9yIGFsbCBmb2N1c2FibGUgZWxlbWVudHMuXHJcbiovXHJcblxyXG46LW1vei1mb2N1c3Jpbmcge1xyXG4gIG91dGxpbmU6IGF1dG87XHJcbn1cclxuXHJcbi8qXHJcblJlbW92ZSB0aGUgYWRkaXRpb25hbCBgOmludmFsaWRgIHN0eWxlcyBpbiBGaXJlZm94LiAoaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja28tZGV2L2Jsb2IvMmY5ZWFjZDlkM2Q5OTVjOTM3YjQyNTFhNTU1N2Q5NWQ0OTRjOWJlMS9sYXlvdXQvc3R5bGUvcmVzL2Zvcm1zLmNzcyNMNzI4LUw3MzcpXHJcbiovXHJcblxyXG46LW1vei11aS1pbnZhbGlkIHtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4vKlxyXG5BZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSBhbmQgRmlyZWZveC5cclxuKi9cclxuXHJcbnByb2dyZXNzIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbi8qXHJcbkNvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIFNhZmFyaS5cclxuKi9cclxuXHJcbjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcclxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi8qXHJcbjEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxyXG4yLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cclxuKi9cclxuXHJcblt0eXBlPSdzZWFyY2gnXSB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cclxuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xyXG59XHJcblxyXG4vKlxyXG5SZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXHJcbiovXHJcblxyXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxufVxyXG5cclxuLypcclxuMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cclxuMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxyXG4qL1xyXG5cclxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cclxuICBmb250OiBpbmhlcml0OyAvKiAyICovXHJcbn1cclxuXHJcbi8qXHJcbkFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIENocm9tZSBhbmQgU2FmYXJpLlxyXG4qL1xyXG5cclxuc3VtbWFyeSB7XHJcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xyXG59XHJcblxyXG4vKlxyXG5SZW1vdmVzIHRoZSBkZWZhdWx0IHNwYWNpbmcgYW5kIGJvcmRlciBmb3IgYXBwcm9wcmlhdGUgZWxlbWVudHMuXHJcbiovXHJcblxyXG5ibG9ja3F1b3RlLFxyXG5kbCxcclxuZGQsXHJcbmgxLFxyXG5oMixcclxuaDMsXHJcbmg0LFxyXG5oNSxcclxuaDYsXHJcbmhyLFxyXG5maWd1cmUsXHJcbnAsXHJcbnByZSB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG5maWVsZHNldCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbmxlZ2VuZCB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxub2wsXHJcbnVsLFxyXG5tZW51IHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vKlxyXG5SZXNldCBkZWZhdWx0IHN0eWxpbmcgZm9yIGRpYWxvZ3MuXHJcbiovXHJcbmRpYWxvZyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLypcclxuUHJldmVudCByZXNpemluZyB0ZXh0YXJlYXMgaG9yaXpvbnRhbGx5IGJ5IGRlZmF1bHQuXHJcbiovXHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcclxufVxyXG5cclxuLypcclxuMS4gUmVzZXQgdGhlIGRlZmF1bHQgcGxhY2Vob2xkZXIgb3BhY2l0eSBpbiBGaXJlZm94LiAoaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9pc3N1ZXMvMzMwMClcclxuMi4gU2V0IHRoZSBkZWZhdWx0IHBsYWNlaG9sZGVyIGNvbG9yIHRvIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBncmF5IDQwMCBjb2xvci5cclxuKi9cclxuXHJcbmlucHV0OjotbW96LXBsYWNlaG9sZGVyLCB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgb3BhY2l0eTogMTsgLyogMSAqL1xyXG4gIGNvbG9yOiAjOWNhM2FmOyAvKiAyICovXHJcbn1cclxuXHJcbmlucHV0OjpwbGFjZWhvbGRlcixcclxudGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcclxuICBvcGFjaXR5OiAxOyAvKiAxICovXHJcbiAgY29sb3I6ICM5Y2EzYWY7IC8qIDIgKi9cclxufVxyXG5cclxuLypcclxuU2V0IHRoZSBkZWZhdWx0IGN1cnNvciBmb3IgYnV0dG9ucy5cclxuKi9cclxuXHJcbmJ1dHRvbixcclxuW3JvbGU9XCJidXR0b25cIl0ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLypcclxuTWFrZSBzdXJlIGRpc2FibGVkIGJ1dHRvbnMgZG9uJ3QgZ2V0IHRoZSBwb2ludGVyIGN1cnNvci5cclxuKi9cclxuOmRpc2FibGVkIHtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuXHJcbi8qXHJcbjEuIE1ha2UgcmVwbGFjZWQgZWxlbWVudHMgYGRpc3BsYXk6IGJsb2NrYCBieSBkZWZhdWx0LiAoaHR0cHM6Ly9naXRodWIuY29tL21vemRldnMvY3NzcmVtZWR5L2lzc3Vlcy8xNClcclxuMi4gQWRkIGB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlYCB0byBhbGlnbiByZXBsYWNlZCBlbGVtZW50cyBtb3JlIHNlbnNpYmx5IGJ5IGRlZmF1bHQuIChodHRwczovL2dpdGh1Yi5jb20vamVuc2ltbW9ucy9jc3NyZW1lZHkvaXNzdWVzLzE0I2lzc3VlY29tbWVudC02MzQ5MzQyMTApXHJcbiAgIFRoaXMgY2FuIHRyaWdnZXIgYSBwb29ybHkgY29uc2lkZXJlZCBsaW50IGVycm9yIGluIHNvbWUgdG9vbHMgYnV0IGlzIGluY2x1ZGVkIGJ5IGRlc2lnbi5cclxuKi9cclxuXHJcbmltZyxcclxuc3ZnLFxyXG52aWRlbyxcclxuY2FudmFzLFxyXG5hdWRpbyxcclxuaWZyYW1lLFxyXG5lbWJlZCxcclxub2JqZWN0IHtcclxuICBkaXNwbGF5OiBibG9jazsgLyogMSAqL1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIDIgKi9cclxufVxyXG5cclxuLypcclxuQ29uc3RyYWluIGltYWdlcyBhbmQgdmlkZW9zIHRvIHRoZSBwYXJlbnQgd2lkdGggYW5kIHByZXNlcnZlIHRoZWlyIGludHJpbnNpYyBhc3BlY3QgcmF0aW8uIChodHRwczovL2dpdGh1Yi5jb20vbW96ZGV2cy9jc3NyZW1lZHkvaXNzdWVzLzE0KVxyXG4qL1xyXG5cclxuaW1nLFxyXG52aWRlbyB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuLyogTWFrZSBlbGVtZW50cyB3aXRoIHRoZSBIVE1MIGhpZGRlbiBhdHRyaWJ1dGUgc3RheSBoaWRkZW4gYnkgZGVmYXVsdCAqL1xyXG5baGlkZGVuXTp3aGVyZSg6bm90KFtoaWRkZW49XCJ1bnRpbC1mb3VuZFwiXSkpIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcbiAgLyogQW50aS1GT1VDICovXHJcbiAgaHRtbCB7IFxyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgXHJcbiAgICBvcGFjaXR5OiAxOyBcclxuICB9XHJcbiAgXHJcbiAgLyogQ3VzdG9tIFNjcm9sbGJhciAqL1xyXG4gIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9XHJcbiAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJhY2tncm91bmQ6ICMxRDFEMUQ7IH1cclxuICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogIzU2QjMzNjsgYm9yZGVyLXJhZGl1czogNHB4OyB9XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xyXG5cclxuICAuY29udGFpbmVyIHtcclxuICAgIG1heC13aWR0aDogNjQwcHg7XHJcbiAgfVxyXG59XHJcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG5cclxuICAuY29udGFpbmVyIHtcclxuICAgIG1heC13aWR0aDogNzY4cHg7XHJcbiAgfVxyXG59XHJcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcclxuXHJcbiAgLmNvbnRhaW5lciB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMjRweDtcclxuICB9XHJcbn1cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xyXG5cclxuICAuY29udGFpbmVyIHtcclxuICAgIG1heC13aWR0aDogMTI4MHB4O1xyXG4gIH1cclxufVxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTUzNnB4KSB7XHJcblxyXG4gIC5jb250YWluZXIge1xyXG4gICAgbWF4LXdpZHRoOiAxNTM2cHg7XHJcbiAgfVxyXG59XHJcbi8qIFByb3NlIC8gQ29udGVudCBTdHlsZXMgKi9cclxuLnByb3NlIGgxLCAucHJvc2UgaDIsIC5wcm9zZSBoMyB7IFxyXG4gICAgZm9udC1mYW1pbHk6IFwiVlQzMjNcIiwgbW9ub3NwYWNlOyBcclxuICAgIGNvbG9yOiAjZmZmOyBcclxuICAgIG1hcmdpbi10b3A6IDFlbTsgXHJcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsgXHJcbiAgICBjbGVhcjogYm90aDsgXHJcbiAgfVxyXG4ucHJvc2UgaDEgeyBmb250LXNpemU6IDIuNXJlbTsgY29sb3I6ICM1NkIzMzY7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMzMzOyBwYWRkaW5nLWJvdHRvbTogMC4yZW07IH1cclxuLnByb3NlIGgyIHsgZm9udC1zaXplOiAycmVtOyBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICM0NDQ7IHBhZGRpbmctYm90dG9tOiAwLjFlbTsgfVxyXG4ucHJvc2UgcCB7IG1hcmdpbi1ib3R0b206IDFlbTsgbGluZS1oZWlnaHQ6IDEuNjsgY29sb3I6ICNEMUQ1REI7IH1cclxuLnByb3NlIHVsIHsgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyBwYWRkaW5nLWxlZnQ6IDEuNWVtOyBtYXJnaW4tYm90dG9tOiAxZW07IGNvbG9yOiAjRDFENURCOyB9XHJcbi5wcm9zZSBvbCB7IGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDsgcGFkZGluZy1sZWZ0OiAxLjVlbTsgbWFyZ2luLWJvdHRvbTogMWVtOyBjb2xvcjogI0QxRDVEQjsgfVxyXG4ucHJvc2UgYmxvY2txdW90ZSB7IGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzU2QjMzNjsgYmFja2dyb3VuZDogcmdiYSg4NiwgMTc5LCA1NCwgMC4xKTsgcGFkZGluZzogMC41ZW0gMWVtOyBjb2xvcjogIzlDQTNBRjsgZm9udC1zdHlsZTogaXRhbGljOyBtYXJnaW4tYm90dG9tOiAxZW07IH1cclxuLnByb3NlIGNvZGUgeyBiYWNrZ3JvdW5kOiAjMTExOyBwYWRkaW5nOiAwLjJlbSAwLjRlbTsgYm9yZGVyLXJhZGl1czogNHB4OyBmb250LWZhbWlseTogXCJKZXRCcmFpbnMgTW9ub1wiLCBtb25vc3BhY2U7IGNvbG9yOiAjNTZCMzM2OyBmb250LXNpemU6IDAuOWVtOyB9XHJcbi5wcm9zZSBwcmUgeyBiYWNrZ3JvdW5kOiAjMGEwYTBhOyBwYWRkaW5nOiAxZW07IGJvcmRlci1yYWRpdXM6IDRweDsgYm9yZGVyOiAxcHggc29saWQgIzMzMzsgb3ZlcmZsb3cteDogYXV0bzsgbWFyZ2luLWJvdHRvbTogMWVtOyBjbGVhcjogYm90aDsgfVxyXG4ucHJvc2UgcHJlIGNvZGUgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgcGFkZGluZzogMDsgY29sb3I6ICNlNWU3ZWI7IH1cclxuLnByb3NlIGhyIHsgYm9yZGVyOiAwOyBib3JkZXItYm90dG9tOiA0cHggc29saWQgIzU2QjMzNjsgbWFyZ2luOiAycmVtIDA7IGJveC1zaGFkb3c6IDAgNHB4IDAgIzAwMDsgY2xlYXI6IGJvdGg7IH1cclxuLnByb3NlIGltZyB7IG1heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyBib3JkZXI6IDRweCBzb2xpZCAjMkEyQTJBOyBib3gtc2hhZG93OiA0cHggNHB4IDAgIzAwMDsgfVxyXG4ucHJvc2UgYSB7IGNvbG9yOiAjNTZCMzM2OyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxyXG4ucHJvc2Ugc3Ryb25nIHsgY29sb3I6ICNmZmY7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cclxuLnByb3NlIGVtIHsgY29sb3I6ICNmZmY7IGZvbnQtc3R5bGU6IGl0YWxpYzsgb3BhY2l0eTogMC45OyB9XHJcbi5wcm9zZTo6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBkaXNwbGF5OiB0YWJsZTsgY2xlYXI6IGJvdGg7IH1cclxuLyogVXRpbGl0eSBDbGFzc2VzICovXHJcbi5waXhlbC1ib3JkZXIgeyBib3gtc2hhZG93OiAtNHB4IDAgMCAwICMxMTEsIDRweCAwIDAgMCAjMTExLCAwIC00cHggMCAwICMxMTEsIDAgNHB4IDAgMCAjMTExOyB9XHJcbi8qIFdpa2kgSW5mb2JveCAqL1xyXG4ud2lraS1pbmZvYm94IHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHdpZHRoOiAzMDBweDtcclxuICAgIG1hcmdpbjogMCAwIDFyZW0gMXJlbTtcclxuICAgIGJhY2tncm91bmQ6ICMyQTJBMkE7XHJcbiAgICBib3JkZXI6IDRweCBzb2xpZCAjMDAwO1xyXG4gICAgYm94LXNoYWRvdzogNHB4IDRweCAwICMwMDA7XHJcbiAgICBmb250LWZhbWlseTogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbi53aWtpLWluZm9ib3ggLmhlYWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjNTZCMzM2O1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgICBmb250LWZhbWlseTogXCJWVDMyM1wiLCBtb25vc3BhY2U7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDAuMjVyZW07XHJcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgIzAwMDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG4ud2lraS1pbmZvYm94IC5pbWFnZSB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogIzE1MTUxNTtcclxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDAwO1xyXG4gIH1cclxuLndpa2ktaW5mb2JveCAuaW1hZ2UgaW1nIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuLndpa2ktaW5mb2JveCAuc2VjdGlvbi1oZWFkZXIge1xyXG4gICAgYmFja2dyb3VuZDogIzExMTtcclxuICAgIGNvbG9yOiAjNTZCMzM2O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBwYWRkaW5nOiAwLjVyZW07XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwMDtcclxuICAgIGZvbnQtZmFtaWx5OiBcIlZUMzIzXCIsIG1vbm9zcGFjZTtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIH1cclxuLndpa2ktaW5mb2JveCAucm93IHtcclxuICAgIHBhZGRpbmc6IDAuNzVyZW07XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQ0NDtcclxuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG4ud2lraS1pbmZvYm94IC5yb3c6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cclxuLndpa2ktaW5mb2JveCAubGFiZWwge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XHJcbiAgfVxyXG4ud2lraS1pbmZvYm94IC52YWx1ZSB7XHJcbiAgICBjb2xvcjogI0QxRDVEQjtcclxuICB9XHJcbi8qIFJlc3BvbnNpdmUgSW5mb2JveCAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcclxuICAgIC53aWtpLWluZm9ib3gge1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIG1hcmdpbjogMXJlbSAwO1xyXG4gICAgfVxyXG4gIH1cclxuLyogRWRpdG9yIFNwZWNpZmljICovXHJcbi5lZGl0b3ItdGV4dGFyZWEge1xyXG4gICAgLW1vei10YWItc2l6ZTogNDtcclxuICAgICAgLW8tdGFiLXNpemU6IDQ7XHJcbiAgICAgICAgIHRhYi1zaXplOiA0O1xyXG4gICAgY2FyZXQtY29sb3I6ICM1NkIzMzY7XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gIH1cclxuLyogSW5wdXRzICYgTG9hZGVycyAqL1xyXG5pbnB1dFt0eXBlPXJhbmdlXSB7IGFjY2VudC1jb2xvcjogIzU2QjMzNjsgfVxyXG4ubG9hZGVyIHsgXHJcbiAgICBib3JkZXI6IDRweCBzb2xpZCAjMzMzOyBcclxuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjNTZCMzM2OyBcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgXHJcbiAgICB3aWR0aDogNDBweDsgXHJcbiAgICBoZWlnaHQ6IDQwcHg7IFxyXG4gICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgXHJcbiAgfVxyXG5Aa2V5ZnJhbWVzIHNwaW4geyAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9IDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cclxuLnZpc2libGUge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuLmZpeGVkIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbn1cclxuLmFic29sdXRlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuLnJlbGF0aXZlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmluc2V0LTAge1xyXG4gIGluc2V0OiAwcHg7XHJcbn1cclxuLmluc2V0LXktMCB7XHJcbiAgdG9wOiAwcHg7XHJcbiAgYm90dG9tOiAwcHg7XHJcbn1cclxuLmJvdHRvbS1mdWxsIHtcclxuICBib3R0b206IDEwMCU7XHJcbn1cclxuLmxlZnQtMCB7XHJcbiAgbGVmdDogMHB4O1xyXG59XHJcbi5yaWdodC0wIHtcclxuICByaWdodDogMHB4O1xyXG59XHJcbi50b3AtZnVsbCB7XHJcbiAgdG9wOiAxMDAlO1xyXG59XHJcbi56LTEwIHtcclxuICB6LWluZGV4OiAxMDtcclxufVxyXG4uei0yMCB7XHJcbiAgei1pbmRleDogMjA7XHJcbn1cclxuLnotNDAge1xyXG4gIHotaW5kZXg6IDQwO1xyXG59XHJcbi56LTUwIHtcclxuICB6LWluZGV4OiA1MDtcclxufVxyXG4ubXgtMSB7XHJcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XHJcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xyXG59XHJcbi5teC1hdXRvIHtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbn1cclxuLm1iLTEge1xyXG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XHJcbn1cclxuLm1iLTEwIHtcclxuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XHJcbn1cclxuLm1iLTMge1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XHJcbn1cclxuLm1iLTQge1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuLm1iLTYge1xyXG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxufVxyXG4ubWItOCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxufVxyXG4ubWwtMSB7XHJcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XHJcbn1cclxuLm1sLWF1dG8ge1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG59XHJcbi5tci0yIHtcclxuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcclxufVxyXG4ubXItNCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xyXG59XHJcbi5tdC0yIHtcclxuICBtYXJnaW4tdG9wOiAwLjVyZW07XHJcbn1cclxuLm10LTQge1xyXG4gIG1hcmdpbi10b3A6IDFyZW07XHJcbn1cclxuLmJsb2NrIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4uaW5saW5lLWJsb2NrIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuLmlubGluZSB7XHJcbiAgZGlzcGxheTogaW5saW5lO1xyXG59XHJcbi5mbGV4IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcbi50YWJsZSB7XHJcbiAgZGlzcGxheTogdGFibGU7XHJcbn1cclxuLmdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbn1cclxuLmhpZGRlbiB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4uaC0xXFwuNSB7XHJcbiAgaGVpZ2h0OiAwLjM3NXJlbTtcclxufVxyXG4uaC0xMCB7XHJcbiAgaGVpZ2h0OiAyLjVyZW07XHJcbn1cclxuLmgtMTIge1xyXG4gIGhlaWdodDogM3JlbTtcclxufVxyXG4uaC0xNiB7XHJcbiAgaGVpZ2h0OiA0cmVtO1xyXG59XHJcbi5oLTIge1xyXG4gIGhlaWdodDogMC41cmVtO1xyXG59XHJcbi5oLTQ4IHtcclxuICBoZWlnaHQ6IDEycmVtO1xyXG59XHJcbi5oLTYge1xyXG4gIGhlaWdodDogMS41cmVtO1xyXG59XHJcbi5oLTY0IHtcclxuICBoZWlnaHQ6IDE2cmVtO1xyXG59XHJcbi5oLTgge1xyXG4gIGhlaWdodDogMnJlbTtcclxufVxyXG4uaC1hdXRvIHtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuLmgtZnVsbCB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcbi5oLXNjcmVlbiB7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxufVxyXG4ubWF4LWgtNjQge1xyXG4gIG1heC1oZWlnaHQ6IDE2cmVtO1xyXG59XHJcbi5taW4taC1mdWxsIHtcclxuICBtaW4taGVpZ2h0OiAxMDAlO1xyXG59XHJcbi53LTFcXC41IHtcclxuICB3aWR0aDogMC4zNzVyZW07XHJcbn1cclxuLnctMVxcLzIge1xyXG4gIHdpZHRoOiA1MCU7XHJcbn1cclxuLnctNDgge1xyXG4gIHdpZHRoOiAxMnJlbTtcclxufVxyXG4udy02NCB7XHJcbiAgd2lkdGg6IDE2cmVtO1xyXG59XHJcbi53LTgge1xyXG4gIHdpZHRoOiAycmVtO1xyXG59XHJcbi53LWZ1bGwge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcbi53LXB4IHtcclxuICB3aWR0aDogMXB4O1xyXG59XHJcbi5taW4tdy1cXFsxMDBweFxcXSB7XHJcbiAgbWluLXdpZHRoOiAxMDBweDtcclxufVxyXG4ubWF4LXctM3hsIHtcclxuICBtYXgtd2lkdGg6IDQ4cmVtO1xyXG59XHJcbi5tYXgtdy01eGwge1xyXG4gIG1heC13aWR0aDogNjRyZW07XHJcbn1cclxuLm1heC13LWZ1bGwge1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxufVxyXG4ubWF4LXctbWQge1xyXG4gIG1heC13aWR0aDogMjhyZW07XHJcbn1cclxuLm1heC13LW5vbmUge1xyXG4gIG1heC13aWR0aDogbm9uZTtcclxufVxyXG4uZmxleC0xIHtcclxuICBmbGV4OiAxIDEgMCU7XHJcbn1cclxuLnNocmluay0wIHtcclxuICBmbGV4LXNocmluazogMDtcclxufVxyXG4uLXRyYW5zbGF0ZS14LWZ1bGwge1xyXG4gIC0tdHctdHJhbnNsYXRlLXg6IC0xMDAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xyXG59XHJcbi50cmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xyXG59XHJcbkBrZXlmcmFtZXMgYm91bmNlIHtcclxuXHJcbiAgMCUsIDEwMCUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNSUpO1xyXG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuOCwwLDEsMSk7XHJcbiAgfVxyXG5cclxuICA1MCUge1xyXG4gICAgdHJhbnNmb3JtOiBub25lO1xyXG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsMCwwLjIsMSk7XHJcbiAgfVxyXG59XHJcbi5hbmltYXRlLWJvdW5jZSB7XHJcbiAgYW5pbWF0aW9uOiBib3VuY2UgMXMgaW5maW5pdGU7XHJcbn1cclxuQGtleWZyYW1lcyBwdWxzZSB7XHJcblxyXG4gIDUwJSB7XHJcbiAgICBvcGFjaXR5OiAuNTtcclxuICB9XHJcbn1cclxuLmFuaW1hdGUtcHVsc2Uge1xyXG4gIGFuaW1hdGlvbjogcHVsc2UgMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSBpbmZpbml0ZTtcclxufVxyXG5Aa2V5ZnJhbWVzIHNwaW4ge1xyXG5cclxuICB0byB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gIH1cclxufVxyXG4uYW5pbWF0ZS1zcGluIHtcclxuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcbi5jdXJzb3ItcG9pbnRlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbi5yZXNpemUtbm9uZSB7XHJcbiAgcmVzaXplOiBub25lO1xyXG59XHJcbi5hcHBlYXJhbmNlLW5vbmUge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xyXG59XHJcbi5ncmlkLWNvbHMtMSB7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpO1xyXG59XHJcbi5mbGV4LWNvbCB7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG4uZmxleC13cmFwIHtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuLml0ZW1zLXN0YXJ0IHtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG4uaXRlbXMtY2VudGVyIHtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcbi5qdXN0aWZ5LWVuZCB7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG4uanVzdGlmeS1jZW50ZXIge1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcbi5qdXN0aWZ5LWJldHdlZW4ge1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG4uZ2FwLTEge1xyXG4gIGdhcDogMC4yNXJlbTtcclxufVxyXG4uZ2FwLTIge1xyXG4gIGdhcDogMC41cmVtO1xyXG59XHJcbi5nYXAtMyB7XHJcbiAgZ2FwOiAwLjc1cmVtO1xyXG59XHJcbi5nYXAtNCB7XHJcbiAgZ2FwOiAxcmVtO1xyXG59XHJcbi5nYXAtNiB7XHJcbiAgZ2FwOiAxLjVyZW07XHJcbn1cclxuLnNwYWNlLXktNCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkge1xyXG4gIC0tdHctc3BhY2UteS1yZXZlcnNlOiAwO1xyXG4gIG1hcmdpbi10b3A6IGNhbGMoMXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTtcclxuICBtYXJnaW4tYm90dG9tOiBjYWxjKDFyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcclxufVxyXG4uc3BhY2UteS02ID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSB7XHJcbiAgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7XHJcbiAgbWFyZ2luLXRvcDogY2FsYygxLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7XHJcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygxLjVyZW0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKTtcclxufVxyXG4ub3ZlcmZsb3ctaGlkZGVuIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcbi5vdmVyZmxvdy15LWF1dG8ge1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbn1cclxuLnRydW5jYXRlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuLnJvdW5kZWQge1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XHJcbn1cclxuLnJvdW5kZWQtbGcge1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxufVxyXG4uYm9yZGVyIHtcclxuICBib3JkZXItd2lkdGg6IDFweDtcclxufVxyXG4uYm9yZGVyLTIge1xyXG4gIGJvcmRlci13aWR0aDogMnB4O1xyXG59XHJcbi5ib3JkZXItNCB7XHJcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XHJcbn1cclxuLmJvcmRlci1iIHtcclxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XHJcbn1cclxuLmJvcmRlci1iLTIge1xyXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcclxufVxyXG4uYm9yZGVyLWItNCB7XHJcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogNHB4O1xyXG59XHJcbi5ib3JkZXItciB7XHJcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XHJcbn1cclxuLmJvcmRlci10IHtcclxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XHJcbn1cclxuLmJvcmRlci10LTQge1xyXG4gIGJvcmRlci10b3Atd2lkdGg6IDRweDtcclxufVxyXG4uYm9yZGVyLWJsYWNrIHtcclxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDAgMCAwIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcclxufVxyXG4uYm9yZGVyLWdyYXktNjAwIHtcclxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDc1IDg1IDk5IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcclxufVxyXG4uYm9yZGVyLWdyYXktNzAwIHtcclxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDU1IDY1IDgxIC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcclxufVxyXG4uYm9yZGVyLWdyYXktODAwIHtcclxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDMxIDQxIDU1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcclxufVxyXG4uYm9yZGVyLWdyYXktOTAwIHtcclxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDE3IDI0IDM5IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcclxufVxyXG4uYm9yZGVyLW1jLWdyZWVuRGFyayB7XHJcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcclxuICBib3JkZXItY29sb3I6IHJnYig1OCAxMjIgMzYgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5iZy1cXFtcXCMxMTFcXF0ge1xyXG4gIC0tdHctYmctb3BhY2l0eTogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTcgMTcgMTcgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLmJnLWJsYWNrIHtcclxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMCAwIC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5iZy1ibGFja1xcLzUwIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAwIDAgLyAwLjUpO1xyXG59XHJcbi5iZy1ibHVlLTYwMCB7XHJcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzNyA5OSAyMzUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLmJnLWdyYXktNjAwIHtcclxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc1IDg1IDk5IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5iZy1ncmF5LTcwMCB7XHJcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1NSA2NSA4MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcclxufVxyXG4uYmctZ3JheS04MDAge1xyXG4gIC0tdHctYmctb3BhY2l0eTogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzEgNDEgNTUgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLmJnLW1jLWRhcmsge1xyXG4gIC0tdHctYmctb3BhY2l0eTogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjkgMjkgMjkgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLmJnLW1jLWdyZWVuIHtcclxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDg2IDE3OSA1NCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcclxufVxyXG4uYmctbWMtcGFuZWwge1xyXG4gIC0tdHctYmctb3BhY2l0eTogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDIgNDIgNDIgLyB2YXIoLS10dy1iZy1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLmJnLXJlZC02MDAge1xyXG4gIC0tdHctYmctb3BhY2l0eTogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIwIDM4IDM4IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5iZy13aGl0ZVxcLzEwIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyAwLjEpO1xyXG59XHJcbi5iZy15ZWxsb3ctNjAwIHtcclxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwMiAxMzggNCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcclxufVxyXG4ub2JqZWN0LWNvbnRhaW4ge1xyXG4gIC1vLW9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcclxufVxyXG4ub2JqZWN0LWNvdmVyIHtcclxuICAtby1vYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG4ucC0yIHtcclxuICBwYWRkaW5nOiAwLjVyZW07XHJcbn1cclxuLnAtNCB7XHJcbiAgcGFkZGluZzogMXJlbTtcclxufVxyXG4ucC02IHtcclxuICBwYWRkaW5nOiAxLjVyZW07XHJcbn1cclxuLnAtOCB7XHJcbiAgcGFkZGluZzogMnJlbTtcclxufVxyXG4ucHgtMiB7XHJcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XHJcbiAgcGFkZGluZy1yaWdodDogMC41cmVtO1xyXG59XHJcbi5weC0zIHtcclxuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XHJcbiAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcclxufVxyXG4ucHgtNCB7XHJcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XHJcbn1cclxuLnB4LTYge1xyXG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcclxufVxyXG4ucHgtOCB7XHJcbiAgcGFkZGluZy1sZWZ0OiAycmVtO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XHJcbn1cclxuLnB5LTBcXC41IHtcclxuICBwYWRkaW5nLXRvcDogMC4xMjVyZW07XHJcbiAgcGFkZGluZy1ib3R0b206IDAuMTI1cmVtO1xyXG59XHJcbi5weS0xIHtcclxuICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcclxuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcclxufVxyXG4ucHktMiB7XHJcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcclxuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xyXG59XHJcbi5weS0zIHtcclxuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcclxuICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcclxufVxyXG4ucGItMiB7XHJcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcclxufVxyXG4ucGItNCB7XHJcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbn1cclxuLnB0LTQge1xyXG4gIHBhZGRpbmctdG9wOiAxcmVtO1xyXG59XHJcbi50ZXh0LWxlZnQge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuLnRleHQtY2VudGVyIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuLmZvbnQtbW9ubyB7XHJcbiAgZm9udC1mYW1pbHk6IFwiSmV0QnJhaW5zIE1vbm9cIiwgbW9ub3NwYWNlO1xyXG59XHJcbi5mb250LXBpeGVsIHtcclxuICBmb250LWZhbWlseTogXCJWVDMyM1wiLCBtb25vc3BhY2U7XHJcbn1cclxuLmZvbnQtc2FucyB7XHJcbiAgZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcclxufVxyXG4udGV4dC0yeGwge1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xyXG59XHJcbi50ZXh0LTN4bCB7XHJcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcclxuICBsaW5lLWhlaWdodDogMi4yNXJlbTtcclxufVxyXG4udGV4dC00eGwge1xyXG4gIGZvbnQtc2l6ZTogMi4yNXJlbTtcclxuICBsaW5lLWhlaWdodDogMi41cmVtO1xyXG59XHJcbi50ZXh0LTZ4bCB7XHJcbiAgZm9udC1zaXplOiAzLjc1cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG59XHJcbi50ZXh0LWxnIHtcclxuICBmb250LXNpemU6IDEuMTI1cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xyXG59XHJcbi50ZXh0LXNtIHtcclxuICBmb250LXNpemU6IDAuODc1cmVtO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xyXG59XHJcbi50ZXh0LXhsIHtcclxuICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XHJcbn1cclxuLnRleHQteHMge1xyXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICBsaW5lLWhlaWdodDogMXJlbTtcclxufVxyXG4uZm9udC1ib2xkIHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcbi51cHBlcmNhc2Uge1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuLml0YWxpYyB7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcbi5sZWFkaW5nLXJlbGF4ZWQge1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjYyNTtcclxufVxyXG4udHJhY2tpbmctd2lkZSB7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07XHJcbn1cclxuLnRyYWNraW5nLXdpZGVyIHtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG59XHJcbi50cmFja2luZy13aWRlc3Qge1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcclxufVxyXG4udGV4dC1ibGFjayB7XHJcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XHJcbiAgY29sb3I6IHJnYigwIDAgMCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xyXG59XHJcbi50ZXh0LWJsdWUtNDAwIHtcclxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcclxuICBjb2xvcjogcmdiKDk2IDE2NSAyNTAgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcclxufVxyXG4udGV4dC1ncmF5LTIwMCB7XHJcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XHJcbiAgY29sb3I6IHJnYigyMjkgMjMxIDIzNSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xyXG59XHJcbi50ZXh0LWdyYXktMzAwIHtcclxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcclxuICBjb2xvcjogcmdiKDIwOSAyMTMgMjE5IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLnRleHQtZ3JheS00MDAge1xyXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xyXG4gIGNvbG9yOiByZ2IoMTU2IDE2MyAxNzUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcclxufVxyXG4udGV4dC1ncmF5LTUwMCB7XHJcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XHJcbiAgY29sb3I6IHJnYigxMDcgMTE0IDEyOCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xyXG59XHJcbi50ZXh0LW1jLWdyZWVuIHtcclxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcclxuICBjb2xvcjogcmdiKDg2IDE3OSA1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xyXG59XHJcbi50ZXh0LXJlZC00MDAge1xyXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xyXG4gIGNvbG9yOiByZ2IoMjQ4IDExMyAxMTMgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcclxufVxyXG4udGV4dC1yZWQtNTAwIHtcclxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcclxuICBjb2xvcjogcmdiKDIzOSA2OCA2OCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xyXG59XHJcbi50ZXh0LXdoaXRlIHtcclxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcclxuICBjb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLnRleHQteWVsbG93LTUwMCB7XHJcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XHJcbiAgY29sb3I6IHJnYigyMzQgMTc5IDggLyB2YXIoLS10dy10ZXh0LW9wYWNpdHksIDEpKTtcclxufVxyXG4udW5kZXJsaW5lIHtcclxuICB0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xyXG59XHJcbi5wbGFjZWhvbGRlci1ncmF5LTYwMDo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5OiAxO1xyXG4gIGNvbG9yOiByZ2IoNzUgODUgOTkgLyB2YXIoLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLnBsYWNlaG9sZGVyLWdyYXktNjAwOjpwbGFjZWhvbGRlciB7XHJcbiAgLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5OiAxO1xyXG4gIGNvbG9yOiByZ2IoNzUgODUgOTkgLyB2YXIoLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLm9wYWNpdHktMCB7XHJcbiAgb3BhY2l0eTogMDtcclxufVxyXG4ub3BhY2l0eS04MCB7XHJcbiAgb3BhY2l0eTogMC44O1xyXG59XHJcbi5zaGFkb3cteGwge1xyXG4gIC0tdHctc2hhZG93OiAwIDIwcHggMjVweCAtNXB4IHJnYigwIDAgMCAvIDAuMSksIDAgOHB4IDEwcHggLTZweCByZ2IoMCAwIDAgLyAwLjEpO1xyXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMjBweCAyNXB4IC01cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSwgMCA4cHggMTBweCAtNnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7XHJcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KTtcclxufVxyXG4uYmx1ciB7XHJcbiAgLS10dy1ibHVyOiBibHVyKDhweCk7XHJcbiAgZmlsdGVyOiB2YXIoLS10dy1ibHVyKSB2YXIoLS10dy1icmlnaHRuZXNzKSB2YXIoLS10dy1jb250cmFzdCkgdmFyKC0tdHctZ3JheXNjYWxlKSB2YXIoLS10dy1odWUtcm90YXRlKSB2YXIoLS10dy1pbnZlcnQpIHZhcigtLXR3LXNhdHVyYXRlKSB2YXIoLS10dy1zZXBpYSkgdmFyKC0tdHctZHJvcC1zaGFkb3cpO1xyXG59XHJcbi5kcm9wLXNoYWRvdy1tZCB7XHJcbiAgLS10dy1kcm9wLXNoYWRvdzogZHJvcC1zaGFkb3coMCA0cHggM3B4IHJnYigwIDAgMCAvIDAuMDcpKSBkcm9wLXNoYWRvdygwIDJweCAycHggcmdiKDAgMCAwIC8gMC4wNikpO1xyXG4gIGZpbHRlcjogdmFyKC0tdHctYmx1cikgdmFyKC0tdHctYnJpZ2h0bmVzcykgdmFyKC0tdHctY29udHJhc3QpIHZhcigtLXR3LWdyYXlzY2FsZSkgdmFyKC0tdHctaHVlLXJvdGF0ZSkgdmFyKC0tdHctaW52ZXJ0KSB2YXIoLS10dy1zYXR1cmF0ZSkgdmFyKC0tdHctc2VwaWEpIHZhcigtLXR3LWRyb3Atc2hhZG93KTtcclxufVxyXG4uZmlsdGVyIHtcclxuICBmaWx0ZXI6IHZhcigtLXR3LWJsdXIpIHZhcigtLXR3LWJyaWdodG5lc3MpIHZhcigtLXR3LWNvbnRyYXN0KSB2YXIoLS10dy1ncmF5c2NhbGUpIHZhcigtLXR3LWh1ZS1yb3RhdGUpIHZhcigtLXR3LWludmVydCkgdmFyKC0tdHctc2F0dXJhdGUpIHZhcigtLXR3LXNlcGlhKSB2YXIoLS10dy1kcm9wLXNoYWRvdyk7XHJcbn1cclxuLnRyYW5zaXRpb24tYWxsIHtcclxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XHJcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XHJcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTUwbXM7XHJcbn1cclxuLnRyYW5zaXRpb24tY29sb3JzIHtcclxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCB0ZXh0LWRlY29yYXRpb24tY29sb3IsIGZpbGwsIHN0cm9rZTtcclxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcclxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxNTBtcztcclxufVxyXG4udHJhbnNpdGlvbi1vcGFjaXR5IHtcclxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xyXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xyXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xyXG59XHJcbi50cmFuc2l0aW9uLXRyYW5zZm9ybSB7XHJcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xyXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xyXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xyXG59XHJcbi5kdXJhdGlvbi0zMDAge1xyXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDMwMG1zO1xyXG59XHJcbi5kdXJhdGlvbi01MDAge1xyXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xyXG59XHJcbi5ob3ZlclxcOi10cmFuc2xhdGUteS0xOmhvdmVyIHtcclxuICAtLXR3LXRyYW5zbGF0ZS15OiAtMC4yNXJlbTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksIHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcclxufVxyXG4uaG92ZXJcXDpib3JkZXItbWMtZ3JlZW46aG92ZXIge1xyXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2IoODYgMTc5IDU0IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksIDEpKTtcclxufVxyXG4uaG92ZXJcXDpib3JkZXItd2hpdGU6aG92ZXIge1xyXG4gIC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5ob3ZlclxcOmJnLWJsYWNrXFwvNTA6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwIDAgMCAvIDAuNSk7XHJcbn1cclxuLmhvdmVyXFw6YmctYmx1ZS01MDA6aG92ZXIge1xyXG4gIC0tdHctYmctb3BhY2l0eTogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcclxufVxyXG4uaG92ZXJcXDpiZy1ncmF5LTYwMDpob3ZlciB7XHJcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3NSA4NSA5OSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcclxufVxyXG4uaG92ZXJcXDpiZy1ncmF5LTcwMDpob3ZlciB7XHJcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1NSA2NSA4MSAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcclxufVxyXG4uaG92ZXJcXDpiZy1tYy1ncmVlbkRhcms6aG92ZXIge1xyXG4gIC0tdHctYmctb3BhY2l0eTogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTggMTIyIDM2IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5ob3ZlclxcOmJnLXJlZC01MDA6aG92ZXIge1xyXG4gIC0tdHctYmctb3BhY2l0eTogMTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5IDY4IDY4IC8gdmFyKC0tdHctYmctb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5ob3ZlclxcOmJnLXdoaXRlXFwvNTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4wNSk7XHJcbn1cclxuLmhvdmVyXFw6dGV4dC1yZWQtMzAwOmhvdmVyIHtcclxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcclxuICBjb2xvcjogcmdiKDI1MiAxNjUgMTY1IC8gdmFyKC0tdHctdGV4dC1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLmhvdmVyXFw6dGV4dC13aGl0ZTpob3ZlciB7XHJcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XHJcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5ob3ZlclxcOm9wYWNpdHktODA6aG92ZXIge1xyXG4gIG9wYWNpdHk6IDAuODtcclxufVxyXG4uaG92ZXJcXDpvcGFjaXR5LTkwOmhvdmVyIHtcclxuICBvcGFjaXR5OiAwLjk7XHJcbn1cclxuLmZvY3VzXFw6Ym9yZGVyLW1jLWdyZWVuOmZvY3VzIHtcclxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiKDg2IDE3OSA1NCAvIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5LCAxKSk7XHJcbn1cclxuLmZvY3VzXFw6b3V0bGluZS1ub25lOmZvY3VzIHtcclxuICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcclxufVxyXG4uYWN0aXZlXFw6bXQtMTphY3RpdmUge1xyXG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XHJcbn1cclxuLmFjdGl2ZVxcOmJvcmRlci1iLTA6YWN0aXZlIHtcclxuICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XHJcbn1cclxuLmdyb3VwOmhvdmVyIC5ncm91cC1ob3ZlclxcOmJnLW1jLWdyZWVuIHtcclxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDg2IDE3OSA1NCAvIHZhcigtLXR3LWJnLW9wYWNpdHksIDEpKTtcclxufVxyXG4uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXFw6dGV4dC1ncmF5LTIwMCB7XHJcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XHJcbiAgY29sb3I6IHJnYigyMjkgMjMxIDIzNSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXDp0ZXh0LW1jLWdyZWVuIHtcclxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcclxuICBjb2xvcjogcmdiKDg2IDE3OSA1NCAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSwgMSkpO1xyXG59XHJcbi5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcXDpvcGFjaXR5LTEwMCB7XHJcbiAgb3BhY2l0eTogMTtcclxufVxyXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcclxuXHJcbiAgLnNtXFw6aW5saW5lIHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICB9XHJcblxyXG4gIC5zbVxcOmdyaWQtY29scy0yIHtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcclxuICB9XHJcbn1cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcblxyXG4gIC5tZFxcOnN0YXRpYyB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gIH1cclxuXHJcbiAgLm1kXFw6aGlkZGVuIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWRcXDp0cmFuc2xhdGUteC0wIHtcclxuICAgIC0tdHctdHJhbnNsYXRlLXg6IDBweDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xyXG4gIH1cclxuXHJcbiAgLm1kXFw6Z3JpZC1jb2xzLTMge1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xyXG4gIH1cclxuXHJcbiAgLm1kXFw6YmctYmxhY2tcXC8zMCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCAwIDAgLyAwLjMpO1xyXG4gIH1cclxufVxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XHJcblxyXG4gIC5sZ1xcOmdyaWQtY29scy0zIHtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcclxuICB9XHJcbn1cclxuIl19 */