/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/SliceTransformToolbar.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************/
.slice-transform-toolbar {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/LayersDrawer.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************/
.layers-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: min(360px, 92vw);
  background: #fff;
  border-left: 1px solid #eaeaea;
  transform: translateX(102%);
  transition: transform 180ms ease;
  z-index: 9999;
  display: flex;
  flex-direction: column;
}
.layers-drawer .canvas-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-bottom: 1px solid #eaeaea;
}
.layers-drawer .canvas-row .canvas-row-title {
  font-weight: bold;
  margin-right: 4px;
}
.layers-drawer .canvas-row .canvas-row-fields {
  display: flex;
  align-items: center;
  gap: 6px;
}
.layers-drawer .canvas-row .canvas-row-fields label {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.layers-drawer .canvas-row .canvas-row-fields input {
  width: 62px;
}
.layers-drawer .canvas-row .canvas-fit {
  flex: 1 1 auto;
}
.layers-drawer.open {
  transform: translateX(0);
}
.layers-drawer > .header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px dotted #eaeaea;
}
.layers-drawer > .header > .title {
  font-size: 16px;
  font-weight: 700;
}
.layers-drawer > .header > .close {
  border: 1px solid #eaeaea;
  background: #fff;
  cursor: pointer;
  padding: 4px 8px;
}
.layers-drawer > .subtitle {
  padding: 6px 12px;
  font-size: 12px;
  color: #666;
  border-bottom: 1px dotted #eaeaea;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px 8px;
}
.layers-drawer > .subtitle > .subtitle-left {
  min-width: 0;
}
.layers-drawer > .subtitle > .subtitle-right {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 6px;
  margin-left: auto;
}
.layers-drawer > .subtitle > .subtitle-right > .btn-common {
  font-size: 12px;
  white-space: nowrap;
  flex: 0 0 auto;
}
.layers-drawer > .list {
  overflow: auto;
  padding: 8px 8px 12px;
}
.layers-drawer > .list > .item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px dotted #eaeaea;
  margin: 0 0 8px 0;
  background: #fff;
  cursor: pointer;
}
.layers-drawer > .list > .item:hover {
  background: #f7f7f7;
}
.layers-drawer > .list > .item:focus {
  outline: 2px solid #239373;
  outline-offset: 1px;
}
.layers-drawer > .list > .item.current {
  border: 1px solid #239373;
  background: #f0fbf7;
}
.layers-drawer > .list > .item.hidden {
  opacity: 0.55;
}
.layers-drawer > .list > .item.dragging {
  opacity: 0.4;
}
.layers-drawer > .list > .item.drop-above::before, .layers-drawer > .list > .item.drop-below::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 1px solid #504ff6;
  pointer-events: none;
}
.layers-drawer > .list > .item.drop-above::before {
  top: -5px;
}
.layers-drawer > .list > .item.drop-below::after {
  bottom: -5px;
}
.layers-drawer > .list > .item > .eye {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border: 1px solid #eaeaea;
  background: #fafafa;
  cursor: pointer;
  line-height: 1;
}
.layers-drawer > .list > .item > .eye.off {
  color: #aaa;
  background: #fff;
}
.layers-drawer > .list > .item > .thumb {
  width: 44px;
  height: 44px;
  border: 1px solid #eaeaea;
  background: #fafafa;
  flex: 0 0 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.layers-drawer > .list > .item > .thumb img {
  width: 44px;
  height: 44px;
  object-fit: cover;
  display: block;
}
.layers-drawer > .list > .item > .thumb .thumb-empty,
.layers-drawer > .list > .item > .thumb .thumb-bg {
  width: 100%;
  height: 100%;
}
.layers-drawer > .list > .item > .thumb .thumb-empty {
  background: repeating-linear-gradient(45deg, #f7f7f7, #f7f7f7 6px, #fff 6px, #fff 12px);
}
.layers-drawer > .list > .item > .thumb .thumb-bg {
  background: #fff;
  border: 1px solid #eaeaea;
}
.layers-drawer > .list > .item > .body {
  min-width: 0;
  flex: 1 1 auto;
}
.layers-drawer > .list > .item > .body > .name-input {
  width: 100%;
  padding: 0;
  border: 0;
  border-bottom: 1px solid #504ff6;
  background: transparent;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
}
.layers-drawer > .list > .item > .body > .name-input:focus {
  outline: none;
}
.layers-drawer > .list > .item > .body > .name {
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.layers-drawer > .list > .item > .body > .controls {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}
.layers-drawer > .list > .item > .body > .controls > .blend {
  font-size: 11px;
  max-width: 110px;
}
.layers-drawer > .list > .item > .body > .controls > .opacity {
  flex: 1 1 auto;
  min-width: 0;
}
.layers-drawer > .list > .item > .delete {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border: 1px solid #eaeaea;
  background: #fff;
  cursor: pointer;
  line-height: 1;
}
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/AuthModal.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
/* Modal UI for "real auth" and dev-auth variant. */
.auth-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  opacity: 0;
  transition: opacity 300ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.auth-modal-overlay[data-state=open] {
  opacity: 1;
}
.auth-modal-overlay[data-state=exit] {
  opacity: 0;
  pointer-events: none;
}
.auth-modal-overlay .auth-modal {
  position: relative;
  width: min(980px, 100vw - 24px);
  height: min(640px, 100vh - 24px);
  background: #fff;
  border-radius: 3px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.12fr 1fr;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
  line-height: 1.25;
  box-sizing: border-box;
  transform-origin: center;
  transform: scale(0.6);
  opacity: 0;
  transition: transform 300ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 300ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.auth-modal-overlay .auth-modal .auth-modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 1;
  width: 28px;
  height: 28px;
  border-radius: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.auth-modal-overlay .auth-modal .auth-modal-close:hover {
  background: #f3f3f3;
}
.auth-modal-overlay .auth-modal .auth-modal-left {
  position: relative;
  background: #111;
  overflow: hidden;
}
.auth-modal-overlay .auth-modal .auth-modal-left .auth-modal-left-image {
  width: 100%;
  height: 100%;
  display: block;
}
.auth-modal-overlay .auth-modal .auth-modal-left::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(900px 520px at 20% 15%, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 55%), linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.38));
  pointer-events: none;
}
.auth-modal-overlay .auth-modal .auth-modal-right {
  padding: 22px 22px 18px;
  overflow: auto;
  box-sizing: border-box;
  background: #fff;
  border-left: 1px dotted #eaeaea;
  font-size: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form-hero {
  text-align: center;
  margin-top: 2px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form-hero-title {
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form-hero-subtitle {
  margin-top: 10px;
  font-size: 14px;
  color: #444;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form-switch {
  text-align: center;
  color: #444;
  margin-top: 6px;
  margin-bottom: 2px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-field {
  display: block;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-field-label {
  font-size: 14px;
  font-weight: 800;
  color: #111;
  margin-bottom: 8px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-input-with-icon {
  position: relative;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-icon-btn {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: none;
  cursor: pointer;
  padding: 4px 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-icon-btn .auth-icon {
  width: 16px;
  height: 16px;
  display: block;
  opacity: 0.75;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-icon-btn:hover .auth-icon {
  opacity: 1;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-remember-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 6px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-toggle {
  position: relative;
  width: 54px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid #ccc;
  background: #fff;
  cursor: pointer;
  padding: 0;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-toggle-knob {
  position: absolute;
  top: 50%;
  left: 3px;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: #111;
  transition: left 160ms ease, background 160ms ease;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-toggle.on .auth-toggle-knob {
  left: 27px;
  background: #111;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-remember-label {
  font-size: 14px;
  font-weight: 400;
  color: #111;
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-forgot {
  margin-top: 6px;
  text-align: center;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-title {
  font-size: 20px;
  font-weight: 900;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-toggle-row {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-toggle-row button {
  padding: 6px 10px;
  font-size: 13px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fff;
  cursor: pointer;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-toggle-row button.active {
  border-color: #239373;
  background: #f0fbf7;
  font-weight: 700;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-field {
  display: block;
  margin-bottom: 12px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-label {
  font-size: 12px;
  color: #444;
  margin-bottom: 4px;
  font-weight: 700;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-field input {
  width: 100%;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid #ddd;
  font-size: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 10px 0 6px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-actions button {
  padding: 9px 12px;
  border-radius: 12px;
  border: 1px solid #ddd;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-actions button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-note {
  font-size: 13px;
  color: #333;
  margin: 10px 0;
  padding: 10px 12px;
  border: 1px solid #eee;
  border-radius: 12px;
  background: #fafafa;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #eee;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev-title {
  font-size: 13px;
  font-weight: 900;
  margin-bottom: 10px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev-section {
  margin-bottom: 14px;
  padding: 10px 12px;
  border: 1px solid #eee;
  border-radius: 12px;
  background: #fff;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev-section-title {
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 6px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev-section-subtitle {
  font-size: 12px;
  color: #555;
  line-height: 1.35;
  margin-bottom: 10px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-info {
  margin-top: 10px;
  color: #1b5e20;
  font-size: 13px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-error {
  margin-top: 10px;
  color: #b00020;
  font-size: 13px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-legal {
  margin-top: 14px;
  font-size: 12px;
  color: #666;
  line-height: 1.35;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-legal a {
  color: inherit;
  text-decoration: underline;
}
.auth-modal-overlay[data-state=open] .auth-modal {
  transform: scale(1);
  opacity: 1;
}
.auth-modal-overlay[data-state=exit] .auth-modal {
  transform: scale(0.6);
  opacity: 0;
}
@media (max-width: 820px) {
  .auth-modal-overlay .auth-modal {
    grid-template-columns: 1fr;
    height: auto;
    max-height: calc(100vh - 24px);
  }
  .auth-modal-overlay .auth-modal-left {
    height: 220px;
  }
  .auth-modal-overlay .auth-modal-right {
    padding: 20px 16px 16px;
    border-left: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .auth-modal-overlay {
    transition: none !important;
  }
  .auth-modal-overlay .auth-modal {
    transition: none !important;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/AuthLauncher.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************/
.auth-launcher-btn {
  position: fixed;
  right: 12px;
  bottom: 12px;
  z-index: 99999;
  max-width: min(320px, 100vw - 24px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.auth-launcher-manage {
  bottom: 48px;
  font-size: 12px;
  opacity: 0.85;
}
.auth-launcher-manage:hover {
  opacity: 1;
}
.auth-launcher-manage:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/*!******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/AppErrorBanner.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************/
.app-error-banner .err-dev-diagnostic {
  display: block;
  max-width: 720px;
  margin: 12px auto 0;
  padding: 8px 12px;
  text-align: left;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  line-height: 1.4;
  color: #5a4500;
  background: #fff3cd;
  border: 1px solid #c9a227;
  border-radius: 4px;
  white-space: pre-wrap;
  word-break: break-word;
}
/*!********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/App.scss ***!
  \********************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * App.scss
 * The most most CSS SCSS file there is in the universe.
 */
/**
 * Baseline stylesheet — the element reset and the shared component styles the whole app
 * is drawn on top of. Loaded from `App.scss` BEFORE everything else, so any rule here can
 * be overridden simply by restating it later.
 *
 * ⚠️ THIS FILE IS NOT DEAD WEIGHT, and it is not optional. It was called
 * `_legacyMainMin.scss` until 2026-08-12 and that name cost real time: it reads as
 * disposable v1 cruft, so people kept proposing to delete it.
 *
 * Measured before renaming it — removing the import changes **1325 of 1826 element-states,
 * 73% of the rendered app**: box geometry, heights, margins, list styles, table spacing.
 * `.slider`, `.switch`, `.select-areas-*`, `.thumbDiv`, `.result-wrap`, `.download-all`,
 * `.container`, `#menu`, `#actions`, `#tool-box`, `.btn-chop`, `.tmpImg`, `.delete-area`,
 * `.blurred` and the `button.btn-add/.btn-clear::before` icons are styled ONLY here.
 *
 * ⚠️ `npm run verify:all` passes with this file removed entirely. The suite asserts geometry
 * and behaviour, never appearance — so it is not evidence for any change made here. Prove CSS
 * changes with the computed-style fingerprint harness instead:
 * `.ai-assist/tools/imageslicer-css-fingerprint.pwspec.ts`.
 *
 * An audit in 2026-08-11 found exactly five dead rules in it (`.r`, `.g`, `.b`, `.left`,
 * `.switch-label`); they are gone. What remains is live. Do not prune it rule-by-rule — retire
 * it, if ever, by superseding it during a restyle.
 *
 * Origin: `css/main.min.css` (v1-era), unminified. Asset URLs point at webpack-managed files
 * under `src/front/resources/`. Mostly plain CSS, but it is compiled as SCSS and does use
 * `$default-font-size`, so it must be imported after `_variables`.
 */
#err,
.err {
  color: red;
}

#imgWrap,
#uploadForm,
.center,
.err,
.result-wrap,
.thumbDiv,
h1,
h2 {
  text-align: center;
}

.delete-area,
.slider,
.tmpImg {
  cursor: pointer;
}

#actions,
#menu,
#tool-box,
.result-wrap img {
  vertical-align: middle;
}

#actions,
#switch-status,
#tool-box,
.btn-chop,
.switch {
  display: inline-block;
}

a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 110%;
  font: inherit;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
  font-size: 14px;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

h1,
h3 {
  font-weight: 400;
}

h1,
h2 {
  margin-top: 5px;
  margin-bottom: 3px;
  font-size: 25px;
}

h1 {
  font-size: 33px;
}

button {
  height: 30px;
}

.container {
  max-width: 780px;
  margin: 0 auto;
}

.container h2 {
  font-size: 21px;
}

.container h3 {
  margin-bottom: 8px;
}

#uploadForm {
  max-width: 750px;
  margin: 20px auto;
  font-size: 18px;
}

#err,
.err {
  font-size: 16px;
}

#actions,
.download-all,
.right {
  text-align: right;
}

.next {
  font-size: 18px;
}

.tmpImg {
  margin: 0 auto;
  padding: 5rem;
  max-width: 69px;
}

.result-wrap img {
  height: auto;
  width: auto;
  max-height: 140px;
  max-width: 140px;
  -webkit-box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
  box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
}

.thumbDiv {
  height: 142px;
  width: 142px;
  float: left;
  margin: 10px;
  line-height: 140px;
  padding: 5px;
  border: 1px dotted #999;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  -webkit-box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
  box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
}

.clearfix {
  clear: both;
}

.download-all {
  clear: both;
  margin: 20px auto;
}

.select-areas-overlay {
  background-color: #000;
  overflow: hidden;
  position: absolute;
}

.blurred {
  -webkit-filter: blur(3px);
  -moz-filter: blur(3px);
  -o-filter: blur(3px);
  filter: blur(3px);
}

.select-areas-resize-handler {
  background-color: #000;
  border: 1px solid #fff;
  height: 8px;
  width: 8px;
  overflow: hidden;
}

.select-areas-delete-area {
  cursor: pointer;
  height: 20px;
  width: 20px;
  display: block;
  pointer-events: none;
}

.delete-area {
  position: absolute;
  padding: 5px 5px 2px 2px;
}

.switch {
  position: relative;
  width: 38px;
  height: 22px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 2px;
  bottom: 2px;
  background-color: #fff;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

input:checked + .slider {
  background-color: #239373;
}

input:focus + .slider {
  box-shadow: 0 0 1px #239373;
}

input:checked + .slider:before {
  -webkit-transform: translateX(16px);
  -ms-transform: translateX(16px);
  transform: translateX(16px);
}

.slider.round {
  border-radius: 20px;
}

.slider.round:before {
  border-radius: 50%;
}

#menu {
  border-bottom: 1px dotted #eaeaea;
  border-top: 1px dotted #eaeaea;
  position: relative;
}

#actions {
  width: 26%;
}

#switch-status {
  min-width: 30px;
}

.btn-add-txt,
.btn-clear-txt {
  font-size: 15px;
  position: relative;
  top: -4px;
}

button.btn-add:before,
button.btn-clear:before {
  background-size: 18px 18px;
  display: inline-block;
  width: 18px;
  height: 18px;
  content: "";
}

button.btn-add:before {
  background-image: url(/add-new-icon.02471d5f1c2054f3636f7ebed3a1e976.png);
}

button.btn-clear:before {
  background-image: url(/clear-all-icon.f2ebfec47e186fe7e3bfb65cf0a7ec4c.png);
}

.btn-chop {
  font-weight: 700;
  margin-top: -2px;
}

.hide {
  display: none;
}

.bold {
  font-weight: bold;
}

:root {
  --z-layer-live-canvas: 40;
  --z-layer-canvas-boundary: 46;
  --z-layer-move-capture: 50;
  --z-layer-chrome: 52;
  --z-slice-outline-active: 100;
  --z-slice-delete-button: 104;
  --z-slice-bg-active: 102;
  --z-slice-interactive-layer: 110;
  --z-slice-resize-handle: 105;
  --z-slice-bg-inactive: 2;
  --z-slice-outline-inactive: 0;
  --z-canvas-world: 200;
  --z-canvas-overlay: 500;
  --z-help-popover: 1000;
  --z-zoom-pan-hit-surface: 9996;
}

:root {
  --font-size-sm: 12px;
  --font-size-base: 14px;
}

@keyframes MOVE-BG {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(46px);
  }
}
@keyframes rainbow {
  0% {
    background-position: 0 50%;
  }
  50% {
    background-position: 100% 25%;
  }
  100% {
    background-position: 0 50%;
  }
}
.clearfix {
  clear: both;
}

.hide {
  display: none;
}

#actions.full-width {
  width: 100%;
}

.right {
  text-align: right;
}

h1,
h2 {
  margin-top: 5px;
  margin-bottom: 3px;
  font-size: 25px;
}

h1,
h2,
h3 {
  font-weight: 400;
}

.delete-area {
  position: absolute;
  cursor: pointer;
  padding: 5px 5px 2px 2px;
}

#imgWrap, #uploadForm, .center, h1, h2 {
  text-align: center;
}

#uploadForm {
  max-width: 780px;
  margin: 20px auto;
  font-size: 18px;
}

body {
  margin: 0;
  font-size: 14px;
  line-height: 1;
}

*,
body {
  font-family: "Courier New", Courier, "Lucida Sans Typewriter", "Lucida Typewriter", monospace;
}

#dynamic-text {
  font-size: 14px;
}

.download-all {
  clear: both;
  margin: 20px auto;
  text-align: right;
}

.feedback {
  text-align: center;
  padding-top: 8px;
  font-size: 13px;
}

.bold {
  font-weight: bold;
}

.thumbDiv {
  height: 142px;
  width: 142px;
  float: left;
  margin: 10px;
  line-height: 140px;
  padding: 5px;
  border: 1px dotted #999;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  -webkit-box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
  box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
}

.result-wrap, .thumbDiv {
  text-align: center;
}

.result-wrap img {
  height: auto;
  width: auto;
  max-height: 140px;
  max-width: 140px;
  vertical-align: middle;
  -webkit-box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
  box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
}

#the-grid {
  margin: 10px auto;
  width: auto;
  height: auto;
  min-height: 400px;
}
#the-grid .img-canvas {
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  width: 777px;
  max-width: 100%;
}
#the-grid .img-canvas #sliceImg {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  -webkit-user-select: none;
}

.img-canvas {
  position: relative;
}

.img-canvas-zoompan {
  overflow: hidden;
  touch-action: none;
  isolation: isolate;
  contain: paint;
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  background-color: #f7f7f7;
  background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.04) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.04) 75%, rgba(0, 0, 0, 0.04)), linear-gradient(45deg, rgba(0, 0, 0, 0.04) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.04) 75%, rgba(0, 0, 0, 0.04));
  background-size: 36px 36px;
  background-position: 0 0, 18px 18px;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.img-canvas-zoompan-space {
  cursor: grab;
}
.img-canvas-zoompan-space .canvas-world,
.img-canvas-zoompan-space .select-areas-overlay,
.img-canvas-zoompan-space .select-areas-slice-wrap,
.img-canvas-zoompan-space .select-areas-outline,
.img-canvas-zoompan-space .select-areas-resize-handler,
.img-canvas-zoompan-space .delete-area,
.img-canvas-zoompan-space .select-areas-delete-area {
  cursor: grab !important;
}

.img-canvas-zoompan-panning {
  cursor: grabbing;
}
.img-canvas-zoompan-panning .canvas-world,
.img-canvas-zoompan-panning .select-areas-overlay,
.img-canvas-zoompan-panning .select-areas-slice-wrap,
.img-canvas-zoompan-panning .select-areas-outline,
.img-canvas-zoompan-panning .select-areas-resize-handler,
.img-canvas-zoompan-panning .delete-area,
.img-canvas-zoompan-panning .select-areas-delete-area {
  cursor: grabbing !important;
}

.canvas-world {
  position: relative;
  display: block;
  z-index: var(--z-canvas-world);
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.canvas-layout {
  position: relative;
  display: inline-block;
  max-width: 100%;
}

.slice-delete-escape {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: visible;
  pointer-events: none;
  z-index: var(--z-canvas-overlay);
}
.slice-delete-escape .delete-area,
.slice-delete-escape .select-areas-delete-host {
  pointer-events: auto;
}

.canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-canvas-overlay);
  pointer-events: none;
}

.container {
  max-width: 780px;
  margin: 0 auto;
}
.container h2 {
  font-size: 21px;
}
.container h3 {
  margin-bottom: 8px;
}

.select-areas-outline {
  background-color: transparent;
  overflow: hidden;
  position: relative;
  touch-action: none;
  background-image: linear-gradient(90deg, #fff 50%, #000 50%), linear-gradient(90deg, #fff 50%, #000 50%), linear-gradient(0deg, #fff 50%, #000 50%), linear-gradient(0deg, #fff 50%, #000 50%);
  background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
  background-size: 8px 1px, 8px 1px, 1px 8px, 1px 8px;
  background-position: 0 0, 0 100%, 0 0, 100% 0;
  animation: marchingAnts 0.6s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .select-areas-outline {
    animation: none;
  }
}
.select-areas-outline::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 160ms ease;
  background-image: linear-gradient(90deg, #fff 75%, #000 75%), linear-gradient(90deg, #fff 75%, #000 75%), linear-gradient(0deg, #fff 75%, #000 75%), linear-gradient(0deg, #fff 75%, #000 75%);
  background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
  background-size: 8px 1px, 8px 1px, 1px 8px, 1px 8px;
  background-position: 0 0, 0 100%, 0 0, 100% 0;
  animation: marchingAnts 1.2s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .select-areas-outline::after {
    animation: none;
  }
}

.select-areas-outline-hover::after {
  opacity: 1;
}

.select-areas-outline-frozen,
.select-areas-outline-frozen::after {
  animation-play-state: paused;
}

@keyframes marchingAnts {
  to {
    background-position: 8px 0, -8px 100%, 0 -8px, 100% 8px;
  }
}
.tetris-rotate-cw,
.tetris-rotate-ccw,
.tetris-counter-cw,
.tetris-counter-ccw {
  transform-origin: center;
}

@keyframes tetrisRotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(var(--tetris-rot));
  }
}
@keyframes tetrisCounterRotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(var(--tetris-rot));
  }
}
@keyframes tetrisSpin360 {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes tetrisSpin360Ccw {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-360deg);
  }
}
@keyframes tetrisRainbowHue {
  0% {
    filter: hue-rotate(0deg) saturate(1.6) contrast(1.15);
  }
  100% {
    filter: hue-rotate(360deg) saturate(1.6) contrast(1.15);
  }
}
@keyframes tetrisRainbowHueCcw {
  0% {
    filter: hue-rotate(0deg) saturate(1.6) contrast(1.15);
  }
  100% {
    filter: hue-rotate(-360deg) saturate(1.6) contrast(1.15);
  }
}
.tetris-rotate {
  animation: tetrisRotate 0.3s ease;
}

.tetris-rotate-cw {
  --tetris-rot: 90deg;
}

.tetris-rotate-ccw {
  --tetris-rot: -90deg;
}

.tetris-counter {
  animation: tetrisCounterRotate 0.3s ease;
}

.tetris-counter-cw {
  --tetris-rot: -90deg;
}

.tetris-counter-ccw {
  --tetris-rot: 90deg;
}

.select-areas-background-area {
  transition: opacity 0.18s ease;
}

.select-areas-background-area.tetris-counter-cw,
.select-areas-background-area.tetris-counter-ccw {
  opacity: 0;
}

.tetris-spin360-rainbow {
  animation: tetrisSpin360 0.5s ease, tetrisRainbowHue 0.5s linear;
}

.tetris-spin360-rainbow-ccw {
  animation: tetrisSpin360Ccw 0.5s ease, tetrisRainbowHueCcw 0.5s linear;
}

.select-areas-resize-handler {
  background-color: #000;
  border: 1px solid #fff;
  height: 8px;
  width: 8px;
  overflow: hidden;
  touch-action: none;
}

.select-areas-delete-area {
  cursor: pointer;
  height: 20px;
  width: 20px;
  display: block;
  pointer-events: none;
  background: url(/bt-delete.4bc64b36232b57c1b7171848b8bb906f.png) center/contain no-repeat;
}

.select-areas-delete-host {
  padding: 5px 5px 2px 2px;
}

.tmpImg,
.my-panda-bro {
  margin: 0 auto;
  padding: 5rem;
  max-width: 69px;
}

.tmpImg {
  cursor: pointer;
}

#imgWrap .tmpImg {
  border-radius: 3px;
}

.select-areas-overlay {
  background-color: #000;
  overflow: hidden;
  position: absolute;
  opacity: 0;
  position: absolute;
  touch-action: none;
  display: block;
  cursor: crosshair;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.select-areas-overlay.has-slice {
  opacity: 0.5;
}

.touch-guides-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 999;
}

@keyframes touchGuideBlink {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  65% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.touch-guide-line {
  position: absolute;
  animation: touchGuideBlink 0.45s ease;
  opacity: 0;
}

.touch-guide-v {
  width: 1px;
  height: 100%;
}

.touch-guide-h {
  height: 1px;
  width: 100%;
}

.touch-guide-snap {
  background: rgba(0, 180, 255, 0.95);
  box-shadow: none;
}

.touch-guide-clamp {
  background: rgba(255, 80, 80, 0.95);
  box-shadow: none;
}

.help-popover-wrap {
  position: relative;
  display: inline-block;
}

.help-popover {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  width: min(620px, 100vw - 24px);
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 2px;
  padding: 10px 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
  z-index: var(--z-help-popover);
}

.help-popover-title {
  font-weight: 700;
  font-size: 12px;
  margin-bottom: 6px;
}

.help-popover-section {
  margin: 22px 0 4px;
  padding-bottom: 3px;
  border-bottom: 1px solid #eaeaea;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #111;
}
.help-popover-section:first-of-type {
  margin-top: 6px;
}

.help-popover-note {
  font-weight: normal;
  text-transform: none;
  letter-spacing: 0;
  color: #666;
}

.help-popover-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 1.35;
}

.help-popover-desc {
  padding: 3px 10px 3px 0;
  text-align: left;
  vertical-align: top;
}

.help-popover-keys {
  padding: 3px 0;
  text-align: right;
  vertical-align: top;
  white-space: nowrap;
}

.help-popover kbd {
  display: inline-block;
  padding: 1px 6px;
  border: 1px solid rgba(0, 0, 0, 0.18);
  border-bottom-width: 2px;
  border-radius: 6px;
  background: whitesmoke;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 11px;
}

.blurred {
  -webkit-filter: blur(3px);
  -moz-filter: blur(3px);
  -o-filter: blur(3px);
  filter: blur(3px);
}

.next {
  font-size: 18px;
  margin-top: 10px;
}

.btn-chop {
  font-weight: 700;
  margin-top: -2px;
}

.btn-add,
.btn-clear {
  position: relative;
  padding: 3px 8px 0 5px;
  font-size: 15px;
}
.btn-add-txt,
.btn-clear-txt {
  font-size: 15px;
  position: relative;
  top: -4px;
}
.btn-add::before,
.btn-clear::before {
  background-size: 18px 18px;
  display: inline-block;
  width: 18px;
  height: 18px;
  content: "";
}

button.btn-add::before {
  background-image: url(/add-new-icon.02471d5f1c2054f3636f7ebed3a1e976.png);
}

button.btn-clear::before {
  background-image: url(/clear-all-icon.f2ebfec47e186fe7e3bfb65cf0a7ec4c.png);
}

.btn-common {
  font-size: 14px;
  padding: 3px 8px;
}
.btn-common:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.layer-src-hidden {
  visibility: hidden;
}

.layer-live-canvas {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: var(--z-layer-live-canvas);
}

.layer-move-capture {
  position: absolute;
  inset: 0;
  cursor: default;
  z-index: var(--z-layer-move-capture);
}
.layer-move-capture.over-layer {
  cursor: move;
}

.canvas-context-menu {
  position: fixed;
  z-index: 1010;
  min-width: 170px;
  padding: 4px;
  background: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 6px;
  box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.4);
}
.canvas-context-menu > .item {
  display: block;
  width: 100%;
  padding: 6px 10px;
  border: 0;
  background: transparent;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}
.canvas-context-menu > .item:hover:not(:disabled) {
  background: rgba(80, 79, 246, 0.12);
}
.canvas-context-menu > .item:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.canvas-context-menu > .separator {
  margin: 4px 2px;
  border-top: 1px solid #eaeaea;
}

.layer-options-bar {
  position: fixed;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 990;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  max-width: calc(100vw - 24px);
  background: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 8px;
  box-shadow: 0 6px 20px -6px rgba(0, 0, 0, 0.35);
  font-size: 12px;
  animation: layerOptionsIslandIn 140ms ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .layer-options-bar {
    animation: none;
  }
}
.layer-options-bar > .layer-options-name {
  font-weight: 700;
  max-width: 14ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.layer-options-bar > .layer-options-sep {
  color: #cfcfcf;
}
.layer-options-bar > .layer-field {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.layer-options-bar > .layer-field > .layer-field-label {
  color: #666;
  font-size: 11px;
}
.layer-options-bar > .layer-field > .layer-field-input {
  width: 6ch;
  padding: 2px 4px;
  font-size: 12px;
  border: 1px solid #cfcfcf;
  appearance: textfield;
  -moz-appearance: textfield;
}
.layer-options-bar > .layer-field > .layer-field-input::-webkit-outer-spin-button, .layer-options-bar > .layer-field > .layer-field-input::-webkit-inner-spin-button {
  appearance: none;
  margin: 0;
}
.layer-options-bar > .layer-field > .layer-field-input:focus {
  outline: 2px solid #504ff6;
  outline-offset: -1px;
}
.layer-options-bar > .layer-aspect-link {
  position: relative;
  opacity: 0.45;
}
.layer-options-bar > .layer-aspect-link.active {
  opacity: 1;
  border-color: #504ff6;
  background: rgba(80, 79, 246, 0.12);
}
.layer-options-bar > .layer-aspect-link:not(.active)::after {
  content: "";
  position: absolute;
  left: 15%;
  right: 15%;
  top: 50%;
  border-top: 1px solid #333;
  transform: rotate(-20deg);
}

@keyframes layerOptionsIslandIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
.layer-chrome-escape {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: var(--z-layer-chrome);
}

.layer-chrome {
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  box-sizing: border-box;
  pointer-events: none;
  z-index: var(--z-layer-chrome);
}
.layer-chrome > .hover,
.layer-chrome > .frame {
  --layer-accent: #504ff6;
  position: absolute;
  box-sizing: border-box;
}
.layer-chrome > .hover {
  outline: 1px solid #504ff6;
  outline-offset: -1px;
  background: rgba(80, 79, 246, 0.12);
}
.layer-chrome > .frame {
  background: transparent;
}
.layer-chrome > .frame > .edge-strip {
  position: absolute;
  background: transparent;
  pointer-events: auto;
  touch-action: none;
}
.layer-chrome > .frame > .edge-strip.edge-strip-n, .layer-chrome > .frame > .edge-strip.edge-strip-s {
  cursor: ns-resize;
}
.layer-chrome > .frame > .edge-strip.edge-strip-e, .layer-chrome > .frame > .edge-strip.edge-strip-w {
  cursor: ew-resize;
}
.layer-chrome > .frame > .handle {
  position: absolute;
  background: #504ff6;
  border: 1px solid #fff;
  border-radius: 2px;
  box-sizing: border-box;
  pointer-events: auto;
  touch-action: none;
}
.layer-chrome > .frame > .handle.handle-nw, .layer-chrome > .frame > .handle.handle-se {
  cursor: nwse-resize;
}
.layer-chrome > .frame > .handle.handle-ne, .layer-chrome > .frame > .handle.handle-sw {
  cursor: nesw-resize;
}
.layer-chrome > .frame > .handle.handle-n, .layer-chrome > .frame > .handle.handle-s {
  cursor: ns-resize;
}
.layer-chrome > .frame > .handle.handle-e, .layer-chrome > .frame > .handle.handle-w {
  cursor: ew-resize;
}
.layer-chrome .label {
  position: absolute;
  left: 0;
  top: 0;
  transform-origin: left top;
  padding: 1px 5px;
  background: #504ff6;
  color: #fff;
  font-size: 11px;
  line-height: 1.5;
  white-space: nowrap;
  border-radius: 2px;
  pointer-events: none;
}

.canvas-boundary {
  position: absolute;
  inset: 0;
  box-shadow: 0 0 0 var(--canvas-boundary-w, 1px) #239373;
  pointer-events: none;
  z-index: var(--z-layer-canvas-boundary);
}

.hidden-file-input {
  display: none;
}

.upload-dropzone {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 40px 24px;
  min-height: 340px;
  border: 1px dashed #cfcfcf;
  border-radius: 8px;
  transition: border-color 120ms ease, background 120ms ease;
}
.upload-dropzone:hover, .upload-dropzone.drag-active {
  border-color: #239373;
  background: #f0fbf7;
}
.upload-dropzone .upload-hint {
  font-size: 14px;
  color: #666;
}

.canvas-settings-popover .canvas-settings-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.canvas-settings-popover .canvas-settings-close {
  border: 1px solid #eaeaea;
  background: #fff;
  cursor: pointer;
  padding: 2px 7px;
  line-height: 1;
}
.canvas-settings-popover .canvas-settings-note {
  font-size: 11px;
  color: #666;
  margin: 4px 0 0;
  max-width: 220px;
}
.canvas-settings-popover .canvas-settings-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin: 8px 0;
}
.canvas-settings-popover .canvas-settings-row label {
  display: flex;
  flex-direction: column;
  font-size: 12px;
  gap: 2px;
}
.canvas-settings-popover .canvas-settings-row input {
  width: 72px;
  padding: 2px 4px;
}
.canvas-settings-popover .canvas-settings-row .canvas-settings-x {
  padding-bottom: 4px;
}
.canvas-settings-popover .canvas-settings-actions {
  display: flex;
  gap: 6px;
}

.tool-switch {
  display: inline-flex;
  border: 1px solid #cfcfcf;
  border-radius: 4px;
  overflow: hidden;
}
.tool-switch .tool-switch-btn {
  font-size: 14px;
  padding: 3px 10px;
  border: none;
  border-left: 1px solid #cfcfcf;
  background: #fafafa;
  color: #444;
  cursor: pointer;
}
.tool-switch .tool-switch-btn:first-child {
  border-left: none;
}
.tool-switch .tool-switch-btn.active {
  background: #239373;
  color: #fff;
  font-weight: 700;
}
.tool-switch .tool-switch-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.zoom-percent-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 0 2px;
  font-size: 12px;
  color: #333;
}

.zoom-percent-input {
  width: auto;
  min-width: 4ch;
  max-width: 6ch;
  height: 30px;
  box-sizing: border-box;
  font-size: 12px;
  text-align: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 2px;
  background: transparent;
  color: #111;
  font-variant-numeric: tabular-nums;
}
.zoom-percent-input:focus-visible {
  border-color: rgba(0, 0, 0, 0.25);
  background: #fff;
  outline: 2px solid rgba(35, 147, 115, 0.35);
  outline-offset: 1px;
}

.zoom-percent-wrap.is-active .zoom-percent-input {
  border-color: rgba(0, 0, 0, 0.25);
  background: #fff;
}

.history-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
  z-index: 9998;
}
.history-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

.history-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: min(360px, 92vw);
  background: #fff;
  border-left: 1px solid #eaeaea;
  transform: translateX(102%);
  transition: transform 180ms ease;
  z-index: 9999;
  display: flex;
  flex-direction: column;
}
.history-drawer.open {
  transform: translateX(0);
}

.history-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px dotted #eaeaea;
}

.history-drawer-title {
  font-size: 16px;
  font-weight: bold;
}

.history-close {
  border: 1px solid #eaeaea;
  background: #fff;
  cursor: pointer;
  padding: 4px 8px;
}

.history-drawer-subtitle {
  padding: 6px 12px;
  font-size: 12px;
  color: #666;
  border-bottom: 1px dotted #eaeaea;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.history-drawer-subtitle-left {
  min-width: 0;
}

.history-drawer-subtitle-right {
  display: flex;
  align-items: center;
  gap: 6px;
}

.history-list {
  overflow: auto;
  padding: 8px 8px 12px;
}

.history-item {
  display: flex;
  gap: 10px;
  padding: 8px;
  border: 1px dotted #eaeaea;
  margin: 0 0 8px 0;
  background: #fff;
  cursor: pointer;
}

.history-item:hover {
  background: #f7f7f7;
}

.history-item:focus {
  outline: 2px solid #239373;
  outline-offset: 1px;
}

.history-item.current {
  border: 1px solid #239373;
  background: #f0fbf7;
}

.history-item.future {
  opacity: 0.55;
}

.history-item.future:hover {
  opacity: 0.75;
}

.history-item.root .history-primary {
  font-style: italic;
}

.auth-modal-close, .history-index {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #eaeaea;
  background: #fafafa;
  color: #666;
}

.history-index {
  width: 22px;
  flex: 0 0 22px;
  font-size: 12px;
}

.history-thumb {
  width: 44px;
  height: 44px;
  border: 1px solid #eaeaea;
  background: #fafafa;
  flex: 0 0 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.history-thumb img {
  width: 44px;
  height: 44px;
  display: block;
}

.my-slices-thumb-empty, .history-thumb-empty {
  width: 100%;
  height: 100%;
  background: repeating-linear-gradient(45deg, #f7f7f7, #f7f7f7 6px, #ffffff 6px, #ffffff 12px);
}

.history-text {
  min-width: 0;
}

.history-primary {
  font-size: 13px;
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.history-secondary {
  font-size: 12px;
  color: #444;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.my-slices-list-wrap {
  margin-top: 20px;
  margin-bottom: 20px;
  text-align: left;
  width: 100%;
  display: inline-block;
}

.my-slices-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.my-slices-summary {
  margin-top: 16px;
  margin-bottom: 16px;
  padding: 10px 12px;
  border: 1px dotted #eaeaea;
  background: #fff;
  text-align: center;
}

.my-slices-summary-title {
  font-size: 16px;
  font-weight: 800;
  margin-bottom: 11px;
}

.my-slices-summary-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 14px;
  color: #333;
}

.my-slices-summary-sep {
  color: #777;
  display: inline-block;
  margin: 0 6px;
}

.my-slices-summary-fun {
  margin-top: 6px;
  font-size: 12px;
  color: #555;
}

.my-slices-item {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid #e3e3e3;
  border-radius: 0;
  background: #fff;
  cursor: default;
}
.my-slices-item:hover {
  background: #f7f7f7;
}
.my-slices-item:focus {
  outline: 2px solid #239373;
  outline-offset: 1px;
}

.my-slices-item .history-index {
  align-self: stretch;
}

.my-slices-thumb {
  width: 56px;
  height: 56px;
  border: 1px solid #ddd;
  background: #f3f3f3;
  flex: 0 0 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
}
.my-slices-thumb:focus {
  outline: 2px solid #239373;
  outline-offset: 1px;
}
.my-slices-thumb img {
  width: 56px;
  height: 56px;
  display: block;
  object-fit: cover;
}

.my-slices-text {
  flex: 1;
  min-width: 0;
}

.my-slices-version {
  margin-left: 8px;
  font-size: 12px;
  font-weight: normal;
  color: #666;
}

.my-slices-primary {
  font-size: 13px;
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.my-slices-secondary {
  font-size: 12px;
  color: #444;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.my-slices-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.my-slices-action {
  font-size: 14px;
}

#menu {
  border-bottom: 1px dotted #eaeaea;
  border-top: 1px dotted #eaeaea;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 4px;
}

#tool-box,
#actions {
  padding: 4px;
  vertical-align: middle;
  display: inline-block;
}

#tool-box {
  flex: 1 1 0;
  min-width: 200px;
  max-width: calc(100% - 150px);
  font-size: 15px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
#tool-box .tool-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
#tool-box .switch-box {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
#tool-box .switch-box .switch {
  position: relative;
  top: 0;
}
#tool-box .switch--disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

#actions {
  width: auto;
  flex: 0 0 auto;
  min-width: 140px;
  text-align: right;
  flex-shrink: 0;
  align-self: flex-start;
}

.active-animation {
  animation-name: MOVE-BG;
  animation-duration: 4s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.logo {
  background-image: repeating-linear-gradient(45deg, violet, indigo, #00f, green, #ff0, orange, red, #d04343, #3d773d, #d0ae0b, #3961ab, #a22ea2);
  font-weight: bold;
  text-align: center;
  background-size: 314% 314%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  animation: rainbow 11s ease infinite;
}
@media (prefers-reduced-motion: reduce) {
  .logo {
    animation: none;
  }
}

.aitch-one {
  font-size: 36px;
}

.commanding-input,
.super-commanding-input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #ccc;
  background: #fff;
  padding: 8px 10px;
  font-size: 14px;
}

.commanding-input {
  height: 30px;
}

.super-commanding-input {
  height: 60px;
}

.auth-link {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: #239373;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.auth-link:hover {
  text-decoration: underline;
}

.green-link-btn {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: #239373;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}

.green-link-btn:hover {
  color: #1f8668;
}

.primary-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 16px;
  border-radius: 10px;
  background: #239373;
  color: #fff;
  border: 1px solid #1a6e55;
  cursor: pointer;
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
}

.primary-btn:hover:enabled {
  background: #1f8668;
}

.primary-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.auth-btn-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Switch styles adapted from provided CSS */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
  cursor: pointer;
}

.slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  cursor: pointer;
}
.slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 2px;
  bottom: 2px;
  background-color: #fff;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
.slider.round {
  border-radius: 20px;
}
.slider.round:before {
  border-radius: 50%;
}

input:checked + .slider {
  background-color: #239373;
}

input:focus + .slider {
  box-shadow: 0 0 1px #239373;
}

input:checked + .slider:before {
  -webkit-transform: translateX(16px);
  -ms-transform: translateX(16px);
  transform: translateX(16px);
}

#switch-status {
  min-width: 30px;
}

.tool-sep {
  padding: 0 3px;
  color: #aeaeae;
  line-height: 30px;
  vertical-align: middle;
}

@media (max-width: 600px) {
  #menu {
    justify-content: center;
  }

  #tool-box {
    width: 100%;
    text-align: center;
  }

  #actions {
    width: 100%;
    text-align: center;
  }

  #the-grid {
    padding: 0 12px;
  }
}
.grid-document-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #f7f7f7;
  background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.06) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.06) 75%, rgba(0, 0, 0, 0.06)), linear-gradient(45deg, rgba(0, 0, 0, 0.06) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.06) 75%, rgba(0, 0, 0, 0.06));
}

#sliceImg {
  position: relative;
  z-index: 0;
}
/*!****************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/About.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************/
.page-about .root, .page-about .root a {
  text-decoration: none;
}

.page-about h2, .page-about h3 .cta {
  font-size: 16px;
}

.page-about .logo {
  background-image: repeating-linear-gradient(45deg, violet, indigo, #00f, green, #ff0, orange, red, #d04343, #3d773d, #d0ae0b, #3961ab, #a22ea2);
  font-weight: 700;
  text-align: center;
  background-size: 314% 314%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  animation: rainbow 11s ease infinite;
}

@keyframes rainbow {
  0% {
    background-position: 0 50%;
  }
  50% {
    background-position: 100% 25%;
  }
  100% {
    background-position: 0 50%;
  }
}
.page-about .content {
  width: 600px;
  margin: 5px auto;
}

.page-about .feedback {
  text-align: center;
  border-top: 1px solid #d5d5d5;
  padding-top: 8px;
  font-size: 13px;
}
/*!******************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/Pricing.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
@keyframes rainbow {
  0% {
    background-position: 0 50%;
  }
  50% {
    background-position: 100% 25%;
  }
  100% {
    background-position: 0 50%;
  }
}
.page-pricing {
  background: #fff;
  color: #333;
  /* Pricing Cards */
}
.page-pricing.container {
  background: #fff;
}
.page-pricing .root,
.page-pricing .root a {
  text-decoration: none;
}
.page-pricing .logo {
  background-image: repeating-linear-gradient(45deg, violet, indigo, #00f, green, #ff0, orange, red, #d04343, #3d773d, #d0ae0b, #3961ab, #a22ea2);
  font-weight: 700;
  text-align: center;
  background-size: 314% 314%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  animation: rainbow 11s ease infinite;
  margin-bottom: 10px;
}
.page-pricing .pricing-page .content {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
}
.page-pricing .feedback {
  text-align: center;
  border-top: 1px solid #d5d5d5;
  padding-top: 8px;
  font-size: 13px;
  margin-top: 40px;
  padding-bottom: 20px;
}
.page-pricing .pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 30px 0;
}
.page-pricing .plan {
  display: flex;
  flex-direction: column;
  border: 1px solid #e8e8e8;
  border-radius: 16px;
  padding: 24px;
  text-align: left;
  background: #fff;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
@media (min-width: 801px) {
  .page-pricing .plan:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    border-color: #ccc;
  }
}
.page-pricing .plan.active {
  border-color: #333;
}
.page-pricing .plan.active:hover {
  border-color: #333;
}
.page-pricing .plan--featured {
  background: #f3f1fe;
  border-color: #d8d2f7;
}
.page-pricing .plan--featured.active {
  border-color: #6759d6;
}
.page-pricing .plan-head {
  margin-bottom: 18px;
}
.page-pricing .plan-name-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.page-pricing .plan-name {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 6px;
}
.page-pricing .plan-price {
  font-size: 38px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.1;
}
.page-pricing .plan-price span {
  font-size: 14px;
  color: #888;
  font-weight: 400;
  margin-left: 2px;
}
.page-pricing .plan-price .plan-cur {
  font-size: 16px;
  color: #1a1a1a;
  font-weight: 700;
  vertical-align: top;
  margin-left: 0;
  margin-right: 1px;
  line-height: 1;
}
.page-pricing .plan-desc {
  color: #666;
  font-size: 14px;
  margin: 8px 0 0;
}
.page-pricing .plan-cta {
  margin-bottom: 18px;
}
.page-pricing .plan-cta-error {
  color: #c62828;
  font-size: 12px;
  margin-top: 8px;
}
.page-pricing .plan-features-title {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 12px;
}
.page-pricing .plan-features {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.page-pricing .plan-features li {
  font-size: 14px;
  padding-left: 26px;
  position: relative;
  line-height: 1.4;
}
.page-pricing .plan-features li.yes::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #6759d6;
  font-weight: 700;
}
.page-pricing .plan-features li.no {
  color: #aaa;
}
.page-pricing .plan-features li.no::before {
  content: "—";
  position: absolute;
  left: 0;
  color: #ccc;
}
.page-pricing .save-pill {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: #22a722;
  padding: 2px 7px;
  border-radius: 9px;
  vertical-align: middle;
  position: relative;
  top: -2px;
  margin-left: 4px;
}
.page-pricing .cta-btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  padding: 12px 20px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.page-pricing .cta-btn.disabled {
  opacity: 0.6;
  pointer-events: none;
  cursor: not-allowed;
}
.page-pricing .cta-outline {
  background: #fff;
  color: #1a1a1a;
  border: 1px solid #d0d0d0;
}
.page-pricing .cta-outline:hover {
  border-color: #888;
  background: #fafafa;
}
.page-pricing .cta-accent {
  background: #6759d6;
  color: #fff;
  border: 1px solid #6759d6;
}
.page-pricing .cta-accent:hover {
  background: #5546c9;
}
.page-pricing .cta-current {
  background: transparent;
  color: #999;
  border: 1px solid #e0e0e0;
  cursor: default;
}
.page-pricing .cta-current:hover {
  background: transparent;
}
.page-pricing .cta-founding {
  display: inline-block;
  width: auto;
  background: transparent;
  border: 2px solid #b38600;
  color: #b38600;
  margin: 0;
  white-space: nowrap;
}
.page-pricing .cta-founding:hover {
  background: #fffbe6;
}
.page-pricing .interval-toggle {
  display: inline-flex;
  gap: 2px;
  background: #eee;
  border-radius: 14px;
  padding: 2px;
}
.page-pricing .interval-btn {
  padding: 4px 10px;
  border: none;
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: #888;
  transition: background 0.15s, color 0.15s;
}
.page-pricing .interval-btn.active {
  background: #fff;
  color: #333;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.page-pricing .interval-btn:hover:not(.active) {
  color: #555;
}
.page-pricing .founding-note {
  background: #fffbe6;
  border: 1px solid #ffe066;
  border-radius: 8px;
  padding: 16px 20px;
  margin: 30px 0;
  font-size: 14px;
}
.page-pricing .founding-note strong {
  color: #b38600;
}
.page-pricing h2 {
  margin-top: 40px;
  margin-bottom: 10px;
}
.page-pricing .subtitle {
  color: #666;
  margin-top: 0;
  margin-bottom: 20px;
}
@media (max-width: 800px) {
  .page-pricing .pricing-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 500px) {
  .page-pricing .logo {
    font-size: 28px;
  }
  .page-pricing .plan-price {
    font-size: 28px;
  }
  .page-pricing .founding-note {
    padding: 12px 16px;
  }
  .page-pricing h2 {
    font-size: 20px;
    margin-top: 30px;
  }
  .page-pricing .content {
    padding: 0 16px;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/Faq.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************/
.page-faq {
  background: #fff;
  color: #333;
}

.page-faq .root, .page-faq .root a {
  text-decoration: none;
}

.page-faq .logo {
  background-image: repeating-linear-gradient(45deg, violet, indigo, #00f, green, #ff0, orange, red, #d04343, #3d773d, #d0ae0b, #3961ab, #a22ea2);
  font-weight: 700;
  text-align: center;
  background-size: 314% 314%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  animation: rainbow 11s ease infinite;
  margin-bottom: 10px;
}

@keyframes rainbow {
  0% {
    background-position: 0 50%;
  }
  50% {
    background-position: 100% 25%;
  }
  100% {
    background-position: 0 50%;
  }
}
.page-faq .content {
  max-width: 700px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}

.page-faq .feedback {
  text-align: center;
  border-top: 1px solid #d5d5d5;
  padding-top: 8px;
  font-size: 13px;
  margin-top: 40px;
  padding-bottom: 20px;
}

.page-faq h2 {
  margin-top: 10px;
  margin-bottom: 20px;
}

.page-faq .faq-item {
  margin-bottom: 28px;
}

.page-faq .faq-item h3 {
  margin: 0 0 8px 0;
  font-size: 17px;
  font-weight: 700;
}

.page-faq .faq-item p {
  margin: 0;
  line-height: 1.6;
  color: #444;
}

.page-faq .tier-table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 14px;
}

.page-faq .tier-table th, .page-faq .tier-table td {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid #eee;
}

.page-faq .tier-table th {
  background: #f9f9f9;
  font-weight: 600;
}

.page-faq .tier-table td:first-child {
  font-weight: 500;
}

.page-faq .yes {
  color: #22a722;
}

.page-faq .no {
  color: #999;
}

@media (max-width: 500px) {
  .page-faq .logo {
    font-size: 28px;
  }

  .page-faq .content {
    padding: 0 16px;
  }

  .page-faq .tier-table {
    font-size: 13px;
  }

  .page-faq .tier-table th, .page-faq .tier-table td {
    padding: 8px 6px;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/Terms.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************/
.page-terms .root, .page-terms .root a {
  text-decoration: none;
}

.page-terms h2, .page-terms h3 .cta {
  font-size: 16px;
}

.page-terms .logo {
  background-image: repeating-linear-gradient(45deg, violet, indigo, #00f, green, #ff0, orange, red, #d04343, #3d773d, #d0ae0b, #3961ab, #a22ea2);
  font-weight: 700;
  text-align: center;
  background-size: 314% 314%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  animation: rainbow 11s ease infinite;
}

@keyframes rainbow {
  0% {
    background-position: 0 50%;
  }
  50% {
    background-position: 100% 25%;
  }
  100% {
    background-position: 0 50%;
  }
}
.page-terms .content {
  width: 600px;
  margin: 5px auto;
}

.page-terms .feedback {
  text-align: center;
  border-top: 1px solid #d5d5d5;
  padding-top: 8px;
  font-size: 13px;
}
/*!******************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/Privacy.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************/
.page-privacy .root, .page-privacy .root a {
  text-decoration: none;
}

.page-privacy h2, .page-privacy h3 .cta {
  font-size: 16px;
}

.page-privacy .logo {
  background-image: repeating-linear-gradient(45deg, violet, indigo, #00f, green, #ff0, orange, red, #d04343, #3d773d, #d0ae0b, #3961ab, #a22ea2);
  font-weight: 700;
  text-align: center;
  background-size: 314% 314%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  animation: rainbow 11s ease infinite;
}

@keyframes rainbow {
  0% {
    background-position: 0 50%;
  }
  50% {
    background-position: 100% 25%;
  }
  100% {
    background-position: 0 50%;
  }
}
.page-privacy .content {
  width: 600px;
  margin: 5px auto;
}

.page-privacy .feedback {
  text-align: center;
  border-top: 1px solid #d5d5d5;
  padding-top: 8px;
  font-size: 13px;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBQTtBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTtBQTZCQTs7RUFFRTtBREtGOztBQ0ZBOzs7Ozs7OztFQVFFO0FES0Y7O0FDRkE7OztFQUdFO0FES0Y7O0FDRkE7Ozs7RUFJRTtBREtGOztBQ0ZBOzs7OztFQUtFO0FES0Y7O0FDRkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QURLRjs7QUNGQTtFQUNFO0FES0Y7O0FDRkE7RUFDRTtFQUNBLGVMM0VrQjtBSWdGcEI7O0FDRkE7O0VBRUU7QURLRjs7QUNGQTs7RUFFRTtBREtGOztBQ0ZBOzs7O0VBSUU7RUFDQTtBREtGOztBQ0ZBO0VBQ0U7RUFDQTtBREtGOztBQ0ZBOztFQUVFO0FES0Y7O0FDRkE7O0VBRUU7RUFDQTtFQUNBO0FES0Y7O0FDRkE7RUFDRTtBREtGOztBQ0ZBO0VBQ0U7QURLRjs7QUNGQTtFQUNFO0VBQ0E7QURLRjs7QUNGQTtFQUNFO0FES0Y7O0FDRkE7RUFDRTtBREtGOztBQ0ZBO0VBQ0U7RUFDQTtFQUNBO0FES0Y7O0FDRkE7O0VBRUU7QURLRjs7QUNGQTs7O0VBR0U7QURLRjs7QUNGQTtFQUNFO0FES0Y7O0FDRkE7RUFDRTtFQUNBO0VBQ0E7QURLRjs7QUNGQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FES0Y7O0FDRkE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBREtGOztBQ0ZBO0VBQ0U7QURLRjs7QUNGQTtFQUNFO0VBQ0E7QURLRjs7QUNGQTtFQUNFO0VBQ0E7RUFDQTtBREtGOztBQ0ZBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QURLRjs7QUNGQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QURLRjs7QUNGQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QURLRjs7QUNGQTtFQUNFO0VBQ0E7QURLRjs7QUNGQTtFQUNFO0VBQ0E7RUFDQTtBREtGOztBQ0ZBO0VBQ0U7RUFDQTtFQUNBO0FES0Y7O0FD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QTtFQUNBO0FBSUY7O0FBRkE7RUFDRTtJQUFLO0VBTUw7RUFMQTtJQUFNO0VBUU47RUFQQTtJQUFPO0VBVVA7QUFDRjtBQVRBO0VBQXlCO0VBQWM7QUFhdkM7O0FBWkE7RUFBMEI7RUFBb0I7RUFBK0I7RUFBa0IsZVg4RGhGO0FXM0NmLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L2NvbXBvbmVudHMvU2xpY2VUcmFuc2Zvcm1Ub29sYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC9jb21wb25lbnRzL0xheWVyc0RyYXdlci5zY3NzIiwid2VicGFjazovL2ltZy1zbGljZXIvLi9zcmMvZnJvbnQvdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC9jb21wb25lbnRzL0F1dGhNb2RhbC5zY3NzIiwid2VicGFjazovL2ltZy1zbGljZXIvLi9zcmMvZnJvbnQvY29tcG9uZW50cy9BdXRoTGF1bmNoZXIuc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L2NvbXBvbmVudHMvQXBwRXJyb3JCYW5uZXIuc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L0FwcC5zY3NzIiwid2VicGFjazovL2ltZy1zbGljZXIvLi9zcmMvZnJvbnQvX2Jhc2VsaW5lLnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC96SW5kZXguc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L3ZpZXdzL0Fib3V0LnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC92aWV3cy9QcmljaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC92aWV3cy9GYXEuc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L3ZpZXdzL1Rlcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC92aWV3cy9Qcml2YWN5LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLnNsaWNlLXRyYW5zZm9ybS10b29sYmFyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA2cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4iLCIvLyBMYXllcnMgcGFuZWwg4oCUIHZpc3VhbCBzaWJsaW5nIG9mIHRoZSBIaXN0b3J5IGRyYXdlciAoc2VlIEFwcC5zY3NzXG4vLyAuaGlzdG9yeS1kcmF3ZXIpLiBTYW1lIHJpZ2h0LXNpZGUgc2xpZGUtb3ZlciBjaHJvbWUgKyBkb3R0ZWQtYm9yZGVyIGxpc3Qgcm93c1xuLy8gKyBncmVlbiBhY3RpdmUgYWNjZW50LCB3aXRoIGludGVyYWN0aXZlIHBlci1yb3cgY29udHJvbHMuIEV2ZXJ5dGhpbmcgaXMgc2NvcGVkXG4vLyB1bmRlciB0aGUgYC5sYXllcnMtZHJhd2VyYCBibG9jaywgc28gY2hpbGQgZWxlbWVudHMgY2Fycnkgc2hvcnQsIHVucHJlZml4ZWRcbi8vIGNsYXNzIG5hbWVzIChgLml0ZW1gLCBgLm5hbWVgLCDigKYpIGFuZCB0aGUgYmxvY2sgb3ducyB0aGUgc2NvcGluZy5cbkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5cbi5sYXllcnMtZHJhd2VyIHtcbiAgLy8gQ2FudmFzIHNpemUgbGl2ZXMgaGVyZSByYXRoZXIgdGhhbiBpbiBhIHRvb2xiYXIgcG9wb3ZlcjogY2FudmFzIGFuZCBsYXllcnMgYXJlIG9uZVxuICAvLyBtZW50YWwgbW9kZWwg4oCUIGEgZG9jdW1lbnQgYW5kIHRoZSB0aGluZ3MgaW5zaWRlIGl0IOKAlCB3aGlsZSB6b29tIGlzIG9ubHkgaG93IHlvdSBhcmVcbiAgLy8gbG9va2luZyBhdCBpdC4gS2VlcGluZyBhbGwgdGhyZWUgc2NvcGVzIGluIG9uZSB0b29sYmFyIHJvdyBpcyB3aGF0IG1hZGUgXCJGaXQgb25cbiAgLy8gc2NyZWVuXCIsIFwiRml0IGNhbnZhcyB0byBsYXllcnNcIiBhbmQgXCJGaXQgdG8gY2FudmFzXCIgcmVhZCBhcyB0aGUgc2FtZSB2ZXJiIHRocmVlIHRpbWVzLlxuICAuY2FudmFzLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodDtcblxuICAgIC5jYW52YXMtcm93LXRpdGxlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgfVxuXG4gICAgLmNhbnZhcy1yb3ctZmllbGRzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA2cHg7XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogM3B4O1xuICAgICAgfVxuXG4gICAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiA2MnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyYXBzIHRvIGl0cyBvd24gbGluZSBiZWZvcmUgdGhlIGxhYmVsIGNhbiBicmVhayDigJQgdGhlIHNhbWUgcnVsZSB0aGUgbGF5ZXIgYWN0aW9uXG4gICAgLy8gYnV0dG9ucyBmb2xsb3csIGFmdGVyIGEgYnJvd3NlciBtaW5pbXVtLWZvbnQtc2l6ZSBvbmNlIHB1c2hlZCB0aGVtIG91dCBvZiB0aGVpciByb3cuXG4gICAgLmNhbnZhcy1maXQge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuICB9XG5cbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogbWluKDM2MHB4LCA5MnZ3KTtcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDIlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE4MG1zIGVhc2U7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJi5vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICA+IC5oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGNvbG9yLWJvcmRlci1saWdodDtcblxuICAgID4gLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10aXRsZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICB9XG5cbiAgICA+IC5jbG9zZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICB9XG4gIH1cblxuICA+IC5zdWJ0aXRsZSB7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1tdXRlZDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAvLyBXaG9sZSBST1dTIHJlZmxvdyBiZWZvcmUgYW55IGxhYmVsIGRvZXMuIFdoZW4gdGhlIGxhYmVscyBkb24ndCBmaXQgYmVzaWRlIHRoZVxuICAgIC8vIGxheWVyIGNvdW50IOKAlCBhIGJyb3dzZXIgbWluaW11bS1mb250LXNpemUsIE9TIHRleHQgc2NhbGluZywgb3IgYSBuYXJyb3cgd2luZG93XG4gICAgLy8gYWxsIGNhdXNlIHRoaXMg4oCUIHRoZSBhY3Rpb24gZ3JvdXAgZHJvcHMgdG8gaXRzIG93biBsaW5lIGludGFjdCwgaW5zdGVhZCBvZlxuICAgIC8vIGJyZWFraW5nIFwiRml0IHRvIGNhbnZhc1wiIGFjcm9zcyB0d28gbGluZXMgYW5kIHNwaWxsaW5nIGl0IHBhc3QgaXRzIG93biBib3JkZXIuXG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNnB4IDhweDtcblxuICAgIC8vIFRoZSBsYXllciBjb3VudCB5aWVsZHMgc3BhY2UgZmlyc3QuXG4gICAgPiAuc3VidGl0bGUtbGVmdCB7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLy8gTGF5ZXItbGV2ZWwgYWN0aW9ucyAoRml0IHRvIGNhbnZhcywgKyBBZGQgbGF5ZXIpIHNoYXJlIHRoaXMgZW5kIG9mIHRoZSByb3cuXG4gICAgLy8gYG5vd3JhcGAgKyBubyBzaHJpbmtpbmcgbWVhbnMgZWFjaCBidXR0b24gaXMgYW4gaW5kaXZpc2libGUgdW5pdDogaXQga2VlcHMgaXRzXG4gICAgLy8gd2hvbGUgbGFiZWwgYXQgd2hhdGV2ZXIgZm9udCBzaXplIHRoZSBicm93c2VyIGVuZHMgdXAgdXNpbmcuXG4gICAgPiAuc3VidGl0bGUtcmlnaHQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGdhcDogNnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgID4gLmJ0bi1jb21tb24ge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gLmxpc3Qge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHBhZGRpbmc6IDhweCA4cHggMTJweDtcblxuICAgID4gLml0ZW0ge1xuICAgICAgLy8gUG9zaXRpb25lZCBzbyB0aGUgZHJvcC1pbmRpY2F0b3IgcHNldWRvLWVsZW1lbnRzIGNhbiBzaXQgaW4gdGhlIG1hcmdpbiBnYXAuXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgYm9yZGVyOiAxcHggZG90dGVkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgICBtYXJnaW46IDAgMCA4cHggMDtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1jYW52YXMtY2hlY2tlci1iZztcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAkY29sb3ItZ3JlZW4tbGluaztcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIH1cblxuICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyZWVuLWxpbms7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmVlbi10aW50LWJnO1xuICAgICAgfVxuXG4gICAgICAmLmhpZGRlbiB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgICB9XG5cbiAgICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICB9XG5cbiAgICAgIC8vIEluc2VydGlvbiBsaW5lOiBhIDFweCBoYWlybGluZSBvbiB0aGUgc2lkZSB0aGUgcm93IHdvdWxkIGxhbmQsIHNvIHRoZSBkcmFnIHNheXNcbiAgICAgIC8vIFdIRVJFIGl0IGlzIGdvaW5nIHJhdGhlciB0aGFuIG9ubHkgdGhhdCBzb21ldGhpbmcgaXMgYmVpbmcgZHJhZ2dlZC4gRHJhd24gYXMgYVxuICAgICAgLy8gcHNldWRvLWVsZW1lbnQgb3V0c2lkZSB0aGUgcm93J3MgYm9yZGVyIGJveCAoYG1hcmdpbmAgZ2FwIGlzIDhweCkgc28gaXQgcmVhZHMgYXNcbiAgICAgIC8vIGEgZ2FwIGJldHdlZW4gcm93cyByYXRoZXIgdGhhbiBhbiBlZGdlIG9mIG9uZSwgYW5kIGluIHRoZSBsYXllciBhY2NlbnQgc28gaXQgaXNcbiAgICAgIC8vIGRpc3RpbmN0IGZyb20gdGhlIGdyZWVuIFwiY3VycmVudCByb3dcIiBoaWdobGlnaHQsIHdoaWNoIHN0YXlzIHZpc2libGUgdW5kZXJuZWF0aC5cbiAgICAgICYuZHJvcC1hYm92ZTo6YmVmb3JlLFxuICAgICAgJi5kcm9wLWJlbG93OjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItbGF5ZXItYWNjZW50O1xuICAgICAgICAvLyBOdWRnZSBpbnRvIHRoZSBtYXJnaW4gZ2FwOyB0aGUgMXB4IGxpbmUgaXRzZWxmIG11c3Qgbm90IHNoaWZ0IHRoZSByb3cuXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmLmRyb3AtYWJvdmU6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogLTVweDtcbiAgICAgIH1cblxuICAgICAgJi5kcm9wLWJlbG93OjphZnRlciB7XG4gICAgICAgIGJvdHRvbTogLTVweDtcbiAgICAgIH1cblxuICAgICAgPiAuZXllIHtcbiAgICAgICAgZmxleDogMCAwIDI2cHg7XG4gICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1zdXJmYWNlLW11dGVkO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYub2ZmIHtcbiAgICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiAudGh1bWIge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itc3VyZmFjZS1tdXRlZDtcbiAgICAgICAgZmxleDogMCAwIDQ0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRodW1iLWVtcHR5LFxuICAgICAgICAudGh1bWItYmcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aHVtYi1lbXB0eSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDQ1ZGVnLFxuICAgICAgICAgICAgJGNvbG9yLWNhbnZhcy1jaGVja2VyLWJnLFxuICAgICAgICAgICAgJGNvbG9yLWNhbnZhcy1jaGVja2VyLWJnIDZweCxcbiAgICAgICAgICAgICRjb2xvci13aGl0ZSA2cHgsXG4gICAgICAgICAgICAkY29sb3Itd2hpdGUgMTJweFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAudGh1bWItYmcge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgID4gLmJvZHkge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuXG4gICAgICAgIC8vIE1hdGNoZXMgYC5uYW1lYCBzbyB0aGUgcm93IGRvZXNuJ3QganVtcCB3aGVuIGVkaXRpbmcgc3RhcnRzLlxuICAgICAgICA+IC5uYW1lLWlucHV0IHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWxheWVyLWFjY2VudDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiAubmFtZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgID4gLmNvbnRyb2xzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuXG4gICAgICAgICAgPiAuYmxlbmQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXhzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMTBweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICA+IC5vcGFjaXR5IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+IC5kZWxldGUge1xuICAgICAgICBmbGV4OiAwIDAgMjZweDtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVkFSSUFBQUJMRVNTXG4vLyBMb3Qgb2YgdmFyaWF0aW9ucyBpbiBoZXJlIG1hbi4uLi5cbi8vIExldCdzIG5vdCBnZXQgbG9zdC5cbi8vXG4vLyB2YXJpYWJsZXMuc2Nzc1xuLy9cbiRkZWZhdWx0LWZvbnQtc2l6ZTogMTRweDtcblxuLy8gTGF5b3V0XG4kaW1nLWNhbnZhcy13aWR0aDogNzc3cHg7XG4kY2FudmFzLW1pbi1oZWlnaHQ6IDQwMHB4O1xuJGNvbnRhaW5lci1oMi1mb250LXNpemU6IDIxcHg7XG4kY29udHJvbC1oZWlnaHQtbWQ6IDMwcHg7XG5cbi8vIENvbG9yc1xuJGNvbG9yLXdoaXRlOiAjZmZmO1xuJGNvbG9yLXN1cmZhY2U6ICRjb2xvci13aGl0ZTtcbiRjb2xvci1ibGFjazogIzAwMDtcbiRjb2xvci10ZXh0LXVpOiAjMzMzO1xuJGNvbG9yLXRleHQtc3Ryb25nOiAjMTExO1xuJGNvbG9yLWJvcmRlci1kZWZhdWx0OiAjY2NjO1xuJGNvbG9yLWdyZWVuLWxpbms6ICMyMzkzNzM7XG4kY29sb3ItZ3JlZW4tbGluay1ob3ZlcjogIzFmODY2ODtcbiRjb2xvci1ncmVlbi10aW50LWJnOiAjZjBmYmY3OyAgICAgLy8gYWN0aXZlLXJvdyAvIGRyb3AtdGFyZ2V0IHRpbnQgb2YgJGNvbG9yLWdyZWVuLWxpbmtcbiRjb2xvci1jYW52YXMtY2hlY2tlci1iZzogI2Y3ZjdmNztcbiRjb2xvci1ib3JkZXItbGlnaHQ6ICNlYWVhZWE7ICAgICAgLy8gaGFpcmxpbmUgZGl2aWRlcnMgLyBwYW5lbCBib3JkZXJzIChkcmF3ZXJzLCBjaGlwcylcbiRjb2xvci1ib3JkZXItbWlkOiAjY2ZjZmNmOyAgICAgICAgLy8gc2xpZ2h0bHkgc3Ryb25nZXIgY29udHJvbCBib3JkZXJzIChzZWdtZW50ZWQgY29udHJvbCwgZHJvcHpvbmUpXG4kY29sb3Itc3VyZmFjZS1tdXRlZDogI2ZhZmFmYTsgICAgIC8vIGluc2V0IGNvbnRyb2wgc3VyZmFjZSAoZXllL3RodW1iL2RlbGV0ZSBiYWNrZ3JvdW5kcylcbiRjb2xvci10ZXh0LW11dGVkOiAjNjY2OyAgICAgICAgICAgLy8gc2Vjb25kYXJ5L3N1YnRpdGxlIHRleHRcbi8vIExheWVyIGNocm9tZSBhY2NlbnQuIERlbGliZXJhdGVseSBOT1QgdGhlIGdyZWVuIHVzZWQgYnkgdGhlIGRvY3VtZW50IGJvdW5kYXJ5IGFuZCB0aGVcbi8vIExheWVycyBwYW5lbCdzIGFjdGl2ZSByb3csIGFuZCBuZXZlciBkYXNoZWQg4oCUIHNsaWNlcyBhbHJlYWR5IG93biBtYXJjaGluZyBhbnRzLCBzb1xuLy8gbGF5ZXIgc2VsZWN0aW9uIGhhcyB0byByZWFkIGFzIGEgZGlmZmVyZW50IGtpbmQgb2YgdGhpbmcgYXQgYSBnbGFuY2UuXG4kY29sb3ItbGF5ZXItYWNjZW50OiAjNTA0ZmY2O1xuLy8gV2hpdGUgc2hhcmUgb2YgZWFjaCBtYXJjaGluZy1hbnQgZGFzaCB3aGlsZSBhIHNsaWNlIGlzIGhvdmVyZWQuIElkbGUgaXMgYW4gZXZlbiA1MC81MFxuLy8gd2hpdGUvYmxhY2sgc3BsaXQgKDRweC80cHggb2YgdGhlIDhweCB0aWxlKTsgdGhpcyB3aWRlbnMgd2hpdGUgdG8gNnB4LzJweC5cbi8vXG4vLyBUaGUgdmFsdWUgaXMgUVVBTlRJWkVELCBzbyBkbyBub3QgdHJlYXQgaXQgYXMgYSBmcmVlIGRpYWwuIEEgMXB4IGxpbmUgb24gYW4gOHB4IHRpbGUgY2FuXG4vLyBvbmx5IHJlbmRlciB3aG9sZS1waXhlbCBzcGxpdHMsIHNvIDcwJSwgNzUlIGFuZCA4MCUgYWxsIHJhc3Rlcml6ZSB0byB0aGUgc2FtZSA2LzIgYW5kXG4vLyBtZWFzdXJlIGlkZW50aWNhbGx5LiBUaGUgcmVhY2hhYmxlIHN0ZXBzIGFyZSA1MCUgKGlkbGUpLCA2Mi41JSAoNS8zKSBhbmQgNzUlICg2LzIpLlxuLy8gTWVhc3VyZWQgbGlmdCBpbiByZW5kZXJlZCBwaXhlbHMsIGF2ZXJhZ2VkIG92ZXIgc2l4IGFuaW1hdGlvbiBmcmFtZXM6XG4vLyAgIDUvMyAtPiArMTcuNyUgb24gYSBkYXJrIHBob3RvLCArMTIuNiUgb24gYSB3aGl0ZSBvbmVcbi8vICAgNi8yIC0+ICszNS41JSBvbiBhIGRhcmsgcGhvdG8sICsyNS4xJSBvbiBhIHdoaXRlIG9uZVxuJHNsaWNlLWhvdmVyLXdoaXRlLXNoYXJlOiA3NSU7XG4vLyBNYXJjaGluZy1hbnRzIGRhc2ggdGlsZSBhbmQgc3BlZWQuIEhvaXN0ZWQgb3V0IG9mIGBBcHAuc2Nzc2Agc28gdGhlIGhvdmVyIG92ZXJsYXkgY2FuXG4vLyBERVJJVkUgZnJvbSB0aGVtIOKAlCB0aGUgb3ZlcmxheSBtdXN0IHNoYXJlIHRoZSB0aWxlIGV4YWN0bHkgb3IgdGhlIHR3byBsYXllcnMgY3Jvc3MtZmFkZVxuLy8gb3V0IG9mIHJlZ2lzdGVyLCBhbmQgaXQgaGFsdmVzIHRoZSBkdXJhdGlvbiByYXRoZXIgdGhhbiByZXN0YXRpbmcgYSBtYWdpYyBudW1iZXIuXG4kc2xpY2UtYW50cy10aWxlOiA4cHg7XG4kc2xpY2UtYW50cy1kdXJhdGlvbjogMC42cztcbi8vIEhvdmVyIHJ1bnMgYXQgSEFMRiBTUEVFRCwgc28gdHdpY2UgdGhlIGR1cmF0aW9uLlxuJHNsaWNlLWFudHMtaG92ZXItZHVyYXRpb246ICRzbGljZS1hbnRzLWR1cmF0aW9uICogMjtcbi8vIENyb3NzLWZhZGUgYmV0d2VlbiB0aGUgaWRsZSBhbmQgaG92ZXIgYW50cy4gU2hvcnQgZW5vdWdoIHRvIGZlZWwgbGlrZSBhIHJlc3BvbnNlIHRvIHRoZVxuLy8gcG9pbnRlciByYXRoZXIgdGhhbiBhbiBlZmZlY3QgcGxheWluZyBhdCB5b3UuXG4kc2xpY2UtaG92ZXItZmFkZTogMTYwbXM7XG4kY29sb3ItbGF5ZXItYWNjZW50LXNvZnQ6IHJnYmEoODAsIDc5LCAyNDYsIDAuMTIpO1xuJGNvbG9yLWRhbmdlci1ib3JkZXI6ICNkMzJmMmY7XG4kY29sb3ItZGFuZ2VyLWJnOiAjZmZlYmVlO1xuJGNvbG9yLWRhbmdlci10ZXh0OiAjYzYyODI4O1xuXG4vLyBNZW93IE1peCBiYWRnZXNcbiRiYWRnZS1wcm8tYmc6ICNmZmQ1NGY7XG4kYmFkZ2UtcHJvLXRleHQ6ICM1YTQ1MDA7XG4kYmFkZ2UtZGV2LWJnOiAjN2U1N2MyO1xuJGJhZGdlLWRldi10ZXh0OiAkY29sb3Itd2hpdGU7XG4kYmFkZ2UtZm9udC1zaXplOiAxMHB4O1xuJGJhZGdlLXBhZGRpbmcteTogMXB4O1xuJGJhZGdlLXBhZGRpbmcteDogNnB4O1xuJGJhZGdlLW1hcmdpbi1sZWZ0OiA4cHg7XG4kYmFkZ2UtcmFkaXVzOiAzcHg7XG5cbi8vIFJlc2l6ZSBoYW5kbGUgKG1hdGNoIGNvbnN0YW50cyArIEFwcC5zY3NzKVxuJHJlc2l6ZS1oYW5kbGUtcHg6IDhweDtcblxuLy8gTGF5ZXIgc2VsZWN0aW9uIGNocm9tZSAobWF0Y2ggY29uc3RhbnRzLkxBWUVSX0hBTkRMRV9QWCAvIExBWUVSX0hPVkVSX0ZSQU1FX1BYKS5cbi8vIFNDUkVFTiBwaXhlbHMg4oCUIHRoZSBjaHJvbWUgaXMgY291bnRlci1zY2FsZWQgYnkgMS9rIHNvIHpvb20gbmV2ZXIgY2hhbmdlcyB0aGVtLlxuJGxheWVyLWhhbmRsZS1weDogMTBweDtcbiRsYXllci1ob3Zlci1mcmFtZS1weDogMXB4O1xuXG4vLyBTbGljZSBvdXRsaW5lIG1hcmNoaW5nLWFudHMgdGlsZSAobWF0Y2ggY29uc3RhbnRzLlNMSUNFX09VVExJTkVfVElMRV9QWCkuXG4kc2xpY2Utb3V0bGluZS10aWxlLXB4OiA0NnB4O1xuXG4vLyBUeXBvZ3JhcGh5XG4kZm9udC1zaXplLXhzOiAxMXB4O1xuJGZvbnQtc2l6ZS1zbTogMTJweDtcbiRmb250LXNpemUtbWQ6IDEzcHg7XG4kZm9udC1zaXplLWxnOiAxOHB4O1xuJGZvbnQtc2l6ZS10aXRsZTogMTZweDsgICAgICAgICAgICAvLyBkcmF3ZXIgLyBwYW5lbCBzZWN0aW9uIHRpdGxlc1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDsgICAgICAgICAgICAvLyBnZW5lcmljIGJvbGQgbGFiZWxzICg9PSBDU1MgYGJvbGRgKVxuJGZvbnQtd2VpZ2h0LWN0YTogNzAwO1xuJGZvbnQtd2VpZ2h0LWhlYXZ5OiA5MDA7XG5cbi8vIEF1dGggbW9kYWxcbiRhdXRoLW1vZGFsLWJnOiAkY29sb3Itc3VyZmFjZTtcbiRhdXRoLW1vZGFsLWJvcmRlci1yYWRpdXM6IDNweDtcbiRhdXRoLW1vZGFsLWxlZnQtYmc6ICMxMTE7XG4kYXV0aC1tb2RhbC1zY2FsZS1jbG9zZWQ6IDAuNjA7XG4kYXV0aC1tb2RhbC16LWluZGV4OiAxMDAwMDA7XG5cbi8vIEhlbHAgcG9wb3ZlclxuJGhlbHAtcG9wb3Zlci1tYXgtd2lkdGg6IDYyMHB4O1xuJGhlbHAtcG9wb3Zlci1iZzogJGNvbG9yLXN1cmZhY2U7XG4kaGVscC1wb3BvdmVyLWJvcmRlci1jb2xvcjogJGNvbG9yLWJvcmRlci1kZWZhdWx0O1xuJGhlbHAtcG9wb3Zlci10aXRsZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWN0YTtcbiRoZWxwLXBvcG92ZXItdGl0bGUtZm9udC1zaXplOiAxMnB4O1xuJGhlbHAtcG9wb3Zlci1rYmQtZm9udC1zaXplOiAxMXB4O1xuXG4vLyBNb3Rpb25cbiR0ZXRyaXMtYW5pbS1kdXJhdGlvbjogMC4zcztcblxuLy8gT3BhY2l0eVxuJHNlbGVjdC1hcmVhcy1vdmVybGF5LWhhcy1zbGljZS1vcGFjaXR5OiAwLjU7XG4kZGlzYWJsZWQtb3BhY2l0eTogMC41O1xuXG4vLyBaLWluZGV4IChrZWVwIHRoZXNlIHNvcnRlZCBhc2NlbmRpbmcpXG4kei1zbGljZS1vdXRsaW5lLWluYWN0aXZlOiAwO1xuJHotc2xpY2UtYmctaW5hY3RpdmU6IDI7XG4vLyBQcm8gTGF5ZXJzOiBsaXZlIGNvbXBvc2l0ZSBjYW52YXMg4oaSIGRvY3VtZW50IGJvdW5kYXJ5IOKGkiBtb3ZlLWNhcHR1cmUgc3VyZmFjZSDihpJcbi8vIHNlbGVjdGlvbiBjaHJvbWUsIGFsbCB3aXRoaW4gdGhlIC5jYW52YXMtd29ybGQgc3RhY2tpbmcgY29udGV4dCAoYmVsb3cgdGhlIGFjdGl2ZVxuLy8gc2xpY2UgY2hyb21lKS4gVGhlIGNocm9tZSBzaXRzIEFCT1ZFIHRoZSBjYXB0dXJlIHN1cmZhY2Ugc28gaXRzIHJlc2l6ZSBoYW5kbGVzIHdpblxuLy8gdGhlIHBvaW50ZXIsIHdoaWxlIGEgZHJhZyBhbnl3aGVyZSBlbHNlIGluIHRoZSBsYXllciBzdGlsbCBmYWxscyB0aHJvdWdoIHRvIGEgbW92ZS5cblxuJHotbGF5ZXItbGl2ZS1jYW52YXM6IDQwO1xuJHotbGF5ZXItY2FudmFzLWJvdW5kYXJ5OiA0NjtcbiR6LWxheWVyLW1vdmUtY2FwdHVyZTogNTA7XG4kei1sYXllci1jaHJvbWU6IDUyO1xuJHotc2xpY2Utb3V0bGluZS1hY3RpdmU6IDEwMDtcbiR6LXNsaWNlLWJnLWFjdGl2ZTogMTAyO1xuJHotc2xpY2UtZGVsZXRlLWJ1dHRvbjogMTA0O1xuJHotc2xpY2UtcmVzaXplLWhhbmRsZTogMTA1O1xuLy8gSW50ZXJhY3RpdmUgbGF5ZXIgKGhhbmRsZXMvZGVsZXRlL2RyYWcgaGl0KSBhYm92ZSBjcm9wIHByZXZpZXcgaW4gem9vbS9wYW4gbW9kZS5cbiR6LXNsaWNlLWludGVyYWN0aXZlLWxheWVyOiAxMTA7XG4kei1jYW52YXMtd29ybGQ6IDIwMDtcbiR6LWNhbnZhcy1vdmVybGF5OiA1MDA7XG4kei10b3VjaC1ndWlkZXMtb3ZlcmxheTogOTk5O1xuLy8gRmxvYXRpbmcgbGF5ZXItb3B0aW9ucyBpc2xhbmQ6IGFib3ZlIHRoZSBjYW52YXMgKyBkcmF3ZXJzLCBiZWxvdyBwb3BvdmVycyBhbmQgbW9kYWxzXG4vLyBzbyBhbiBvcGVuIEhlbHAvY2FudmFzLXNpemUgcG9wb3ZlciBpcyBuZXZlciBjb3ZlcmVkIGJ5IGl0LlxuJHotbGF5ZXItb3B0aW9ucy1pc2xhbmQ6IDk5MDtcbiR6LWhlbHAtcG9wb3ZlcjogMTAwMDtcbi8vIENvbnRleHQgbWVudSBzaXRzIGFib3ZlIGV2ZXJ5dGhpbmcgaXQgY2FuIGJlIG9wZW5lZCBvdmVyLCBpbmNsdWRpbmcgdGhlIG9wdGlvbnMgaXNsYW5kLlxuJHotY2FudmFzLWNvbnRleHQtbWVudTogMTAxMDtcbiR6LXpvb20tcGFuLWhpdC1zdXJmYWNlOiA5OTk2O1xuJHotYXV0aC1sYXVuY2hlcjogOTk5OTk7XG4iLCIvKiBNb2RhbCBVSSBmb3IgXCJyZWFsIGF1dGhcIiBhbmQgZGV2LWF1dGggdmFyaWFudC4gKi9cbkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5cbi5hdXRoLW1vZGFsLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNTUpO1xuICB6LWluZGV4OiAkYXV0aC1tb2RhbC16LWluZGV4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMThweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSk7XG5cbiAgJltkYXRhLXN0YXRlPVwib3BlblwiXSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gICZbZGF0YS1zdGF0ZT1cImV4aXRcIl0ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAuYXV0aC1tb2RhbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiBtaW4oOTgwcHgsIGNhbGMoMTAwdncgLSAyNHB4KSk7XG4gICAgaGVpZ2h0OiBtaW4oNjQwcHgsIGNhbGMoMTAwdmggLSAyNHB4KSk7XG4gICAgYmFja2dyb3VuZDogJGF1dGgtbW9kYWwtYmc7XG4gICAgYm9yZGVyLXJhZGl1czogJGF1dGgtbW9kYWwtYm9yZGVyLXJhZGl1cztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxLjEyZnIgMWZyO1xuICAgIGJveC1zaGFkb3c6IDAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgkYXV0aC1tb2RhbC1zY2FsZS1jbG9zZWQpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIHRyYW5zZm9ybSAzMDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSksXG4gICAgICBvcGFjaXR5IDMwMG1zIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcblxuICAgIC5hdXRoLW1vZGFsLWNsb3NlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTBweDtcbiAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmF1dGgtbW9kYWwtbGVmdCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkYXV0aC1tb2RhbC1sZWZ0LWJnO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgLmF1dGgtbW9kYWwtbGVmdC1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIC8vIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgLy8gZmlsdGVyOiBzYXR1cmF0ZSgxLjA1KSBjb250cmFzdCgxLjAyKTtcbiAgICAgIH1cblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoOTAwcHggNTIwcHggYXQgMjAlIDE1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA1NSUpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMCwgMCwgMC4wOCksIHJnYmEoMCwgMCwgMCwgMC4zOCkpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0aC1tb2RhbC1yaWdodCB7XG4gICAgICBwYWRkaW5nOiAyMnB4IDIycHggMThweDtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1zdXJmYWNlO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkb3R0ZWQgI2VhZWFlYTtcbiAgICAgIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xuXG4gICAgICAuYXV0aC1mb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1mb3JtLWhlcm8ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtZm9ybS1oZXJvLXRpdGxlIHtcbiAgICAgICAgLy8gRm9udCBzaXplIGNvbWVzIGZyb20gYC5haXRjaC1vbmVgIChzaGFyZWQgd2l0aCBBcHAgaGVhZGVyKS5cbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1mb3JtLWhlcm8tc3VidGl0bGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICM0NDQ7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLWZvcm0tc3dpdGNoIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogIzQ0NDtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICB9XG5cbiAgICAgIC8vIGF1dGggbGluayBzdHlsZXMgbGl2ZSBpbiBBcHAuc2NzcyAoYC5jdGEtYnRuLWxpbmtgIC8gYC5hdXRoLWxpbmtgIHVzYWdlKS5cblxuICAgICAgLmF1dGgtZmllbGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmF1dGgtZmllbGQtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgY29sb3I6ICMxMTE7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIH1cblxuICAgICAgLy8gSW5wdXQgc3R5bGVzIGxpdmUgaW4gQXBwLnNjc3MgKGAuY29tbWFuZGluZy1pbnB1dGAgLyBgLnN1cGVyLWNvbW1hbmRpbmctaW5wdXRgKS5cblxuICAgICAgLmF1dGgtaW5wdXQtd2l0aC1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1pY29uLWJ0biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwYWRkaW5nOiA0cHggNnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLmF1dGgtaWNvbiB7XG4gICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIC5hdXRoLWljb24ge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmF1dGgtcmVtZW1iZXItcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLXRvZ2dsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDU0cHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1zdXJmYWNlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLXRvZ2dsZS1rbm9iIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogM3B4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTExO1xuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDE2MG1zIGVhc2UsIGJhY2tncm91bmQgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtdG9nZ2xlLm9uIC5hdXRoLXRvZ2dsZS1rbm9iIHtcbiAgICAgICAgbGVmdDogMjdweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzExMTtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtcmVtZW1iZXItbGFiZWwge1xuICAgICAgICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICMxMTE7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLy8gUHJpbWFyeSBidXR0b24gc3R5bGUgbGl2ZXMgaW4gQXBwLnNjc3MgKGAucHJpbWFyeS1idG5gKSBmb3IgY29uc2lzdGVuY3kuXG5cbiAgICAgIC5hdXRoLWZvcmdvdCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAvLyBGb250ICsgY29sb3IgY29tZSBmcm9tIHNoYXJlZCBgLmdyZWVuLWxpbmstYnRuYC5cbiAgICAgIH1cblxuICAgICAgLmF1dGgtbW9kYWwtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtbW9kYWwtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLXRvZ2dsZS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1kO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itc3VyZmFjZTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICMyMzkzNzM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmYmY3O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmF1dGgtbW9kYWwtZmllbGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtbW9kYWwtbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAjNDQ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWZpZWxkIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgNnB4O1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1zdXJmYWNlO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcblxuICAgICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmF1dGgtbW9kYWwtbm90ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWRldiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNHB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtbW9kYWwtZGV2LXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1kO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1kZXYtc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXN1cmZhY2U7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWRldi1zZWN0aW9uLXRpdGxlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1kO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWRldi1zZWN0aW9uLXN1YnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogIzU1NTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWluZm8ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBjb2xvcjogIzFiNWUyMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1kO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1lcnJvciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIGNvbG9yOiAjYjAwMDIwO1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWQ7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWxlZ2FsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogIzY2NjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtc3RhdGU9XCJvcGVuXCJdIC5hdXRoLW1vZGFsIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmW2RhdGEtc3RhdGU9XCJleGl0XCJdIC5hdXRoLW1vZGFsIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCRhdXRoLW1vZGFsLXNjYWxlLWNsb3NlZCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA4MjBweCkge1xuICAgIC5hdXRoLW1vZGFsIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDI0cHgpO1xuICAgIH1cblxuICAgIC5hdXRoLW1vZGFsLWxlZnQge1xuICAgICAgaGVpZ2h0OiAyMjBweDtcbiAgICB9XG5cbiAgICAuYXV0aC1tb2RhbC1yaWdodCB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDE2cHggMTZweDtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuYXV0aC1tb2RhbC1vdmVybGF5IHtcbiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAuYXV0aC1tb2RhbCB7XG4gICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5cbi5hdXRoLWxhdW5jaGVyLWJ0biB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDEycHg7XG4gIGJvdHRvbTogMTJweDtcbiAgei1pbmRleDogJHotYXV0aC1sYXVuY2hlcjtcblxuICBtYXgtd2lkdGg6IG1pbigzMjBweCwgY2FsYygxMDB2dyAtIDI0cHgpKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5hdXRoLWxhdW5jaGVyLW1hbmFnZSB7XG4gIGJvdHRvbTogNDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBvcGFjaXR5OiAwLjg1O1xuICAmOmhvdmVyIHsgb3BhY2l0eTogMTsgfVxuICAmOmRpc2FibGVkIHsgb3BhY2l0eTogMC41OyBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG59XG5cbiIsIi5hcHAtZXJyb3ItYmFubmVyIHtcbiAgLmVyci1kZXYtZGlhZ25vc3RpYyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICBtYXJnaW46IDEycHggYXV0byAwO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICM1YTQ1MDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjNjZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzlhMjI3O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgfVxufVxuIiwiLyoqXG4gKiBBcHAuc2Nzc1xuICogVGhlIG1vc3QgbW9zdCBDU1MgU0NTUyBmaWxlIHRoZXJlIGlzIGluIHRoZSB1bml2ZXJzZS5cbiAqL1xuLy8gQmFzZWxpbmUgKHJlc2V0ICsgc2hhcmVkIGNvbXBvbmVudCBzdHlsZXMpIGZpcnN0LCB0aGVuIHRoZSBvdmVycmlkZXMgYmVsb3cuXG4vLyBgX2Jhc2VsaW5lYCBuZWVkcyBgJGRlZmF1bHQtZm9udC1zaXplYCwgc28gYF92YXJpYWJsZXNgIG11c3QgY29tZSBmaXJzdC5cbkBpbXBvcnQgJy4vdmFyaWFibGVzJztcbkBpbXBvcnQgJy4vYmFzZWxpbmUnO1xuQGltcG9ydCAnLi96SW5kZXgnO1xuJGRlbGV0ZS1pbWc6IHVybCgnLi9yZXNvdXJjZXMvYnQtZGVsZXRlLnBuZycpO1xuJGNvbnRhaW5lci13aWR0aDogNzgwcHg7XG4kcmFkaXVzLXNtOiAzcHg7XG5cbjpyb290IHtcbiAgLS1mb250LXNpemUtc206IDEycHg7XG4gIC0tZm9udC1zaXplLWJhc2U6IDE0cHg7XG59XG5cbkBrZXlmcmFtZXMgTU9WRS1CRyB7XG5cdGZyb20ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcblx0fVxuXHR0byB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzbGljZS1vdXRsaW5lLXRpbGUtcHgpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgcmFpbmJvd3swJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgNTAlfTUwJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgMjUlfTEwMCV7YmFja2dyb3VuZC1wb3NpdGlvbjowIDUwJX19XG5cbi5jbGVhcmZpeCB7XG4gIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICBjbGVhcjogYm90aDtcbn1cblxuLmhpZGUge1xuICAvLyBBbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2FjdGlvbnMuZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucmlnaHQge1xuICAvLyBBbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbmgxLFxuaDIge1xuICAvLyBBbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIGZvbnQtc2l6ZTogMjVweDtcbn1cblxuaDEsXG5oMixcbmgzIHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5kZWxldGUtYXJlYSB7XG4gIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLy8gTWlycm9yIE9HIHYxLjA6IHBhZGRpbmc6IDVweCA1cHggMnB4IDJweCAoc2xpZ2h0bHkgc2hvcnRlciBib3ggc28gZGVsZXRlIGljb25cbiAgLy8gc2l0cyBhIGJpdCBjbG9zZXIgdG8gdGhlIHNlbGVjdGlvbiwgbWF0Y2hpbmcgdG9wOiAtOHB4IHZzIC0xMXB4IGJlaGF2aW9yKS5cbiAgcGFkZGluZzogNXB4IDVweCAycHggMnB4O1xufVxuXG4jaW1nV3JhcCwgI3VwbG9hZEZvcm0sIC5jZW50ZXIsIGgxLCBoMiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLy8gVXBsb2FkIGZvcm0gc2l6aW5nIGFuZCB0eXBvZ3JhcGh5XG4jdXBsb2FkRm9ybSB7XG4gIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICAvLyBUT0RPOiBzaGFyZSBzYW1lIHZhcmlhYmxlIHdpdGggSlMgYW5kIENTU1xuICBtYXgtd2lkdGg6ICRjb250YWluZXItd2lkdGg7XG4gIG1hcmdpbjogMjBweCBhdXRvO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi8vIEdsb2JhbCB0eXBvZ3JhcGh5XG5ib2R5IHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4qLFxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIkNvdXJpZXIgTmV3XCIsQ291cmllcixcIkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXJcIixcIkx1Y2lkYSBUeXBld3JpdGVyXCIsbW9ub3NwYWNlO1xufVxuXG4jZHluYW1pYy10ZXh0IHtcbiAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG59XG5cbi5kb3dubG9hZC1hbGwge1xuICAvLyBBbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMjBweCBhdXRvO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmZlZWRiYWNrIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBmb250LXNpemU6ICRmb250LXNpemUtbWQ7XG59XG5cbi5ib2xkIHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGh1bWJEaXYge1xuICAvLyBBbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgaGVpZ2h0OiAxNDJweDtcbiAgd2lkdGg6IDE0MnB4O1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMTQwcHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyOiAxcHggZG90dGVkICM5OTk7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHJhZGl1cy1zbTtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAkcmFkaXVzLXNtO1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzLXNtO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDE4cHggLTZweCByZ2JhKDAsMCwwLC43NSk7XG4gIC1tb3otYm94LXNoYWRvdzogMCA4cHggMThweCAtNnB4IHJnYmEoMCwwLDAsLjc1KTtcbiAgYm94LXNoYWRvdzogMCA4cHggMThweCAtNnB4IHJnYmEoMCwwLDAsLjc1KTtcbn1cblxuLnJlc3VsdC13cmFwLCAudGh1bWJEaXYge1xuICAvLyBgLnRodW1iRGl2YCBpcyBhbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucmVzdWx0LXdyYXAgaW1nIHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDE0MHB4O1xuICBtYXgtd2lkdGg6IDE0MHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAyNnB4IC03cHggcmdiYSgwLDAsMCwuNzUpO1xuICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMCAyNnB4IC03cHggcmdiYSgwLDAsMCwuNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjZweCAtN3B4IHJnYmEoMCwwLDAsLjc1KTtcbn1cblxuLy8gXCJUaGUgR3JpZFwiIOKAlCB0aGUgZGlnaXRhbCBmcm9udGllciB0aGUgZG9jdW1lbnQgbGl2ZXMgb24uIFJlbmFtZWQgZnJvbSBgI2NhbnZhc2AgYmVjYXVzZVxuLy8gdGhyZWUgZGlmZmVyZW50IHRoaW5ncyBpbiB0aGlzIGZpbGUgd2VyZSBhbGwgY2FsbGVkIHNvbWUgZmxhdm91ciBvZiBcImNhbnZhc1wiOiB0aGlzIG91dGVyXG4vLyBjb2x1bW4sIHRoZSB2aWV3cG9ydCAoYC5pbWctY2FudmFzYCksIGFuZCB0aGUgZG9jdW1lbnQgKGAuY2FudmFzLXdvcmxkYCkuIFRob3NlIHRocmVlIGJlaW5nXG4vLyBpbnRlcmNoYW5nZWFibGUgaW4gTkFNRSB3aGlsZSBkaXN0aW5jdCBpbiBCRUhBVklPVVIgaXMgd2hhdCBjb3N0IHRoaXMgY29kZWJhc2UgbW9zdCBvZiB0d29cbi8vIHNlc3Npb25zOyBzZWUgYC5haS1hc3Npc3QvcmVmZXJlbmNlLWltYWdlc2xpY2VyLWNhbnZhcy1lbGVtZW50cy5tZGAuXG4vL1xuLy8gVGhpcyBvbmUgaXMgdGhlIG91dGVybW9zdDogdGhlIHBhZ2UtbGV2ZWwgY29sdW1uIHRoZSB3aG9sZSBlZGl0b3Igc2l0cyBpbi5cbiN0aGUtZ3JpZCB7XG4gIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICBtYXJnaW46IDEwcHggYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogJGNhbnZhcy1taW4taGVpZ2h0O1xuXG4gIC5pbWctY2FudmFzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLy8gU2FhYWFmYWFycnJyaSBub3QgRmVycmFyaVxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICB3aWR0aDogJGltZy1jYW52YXMtd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgI3NsaWNlSW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC8vIFNhYWFhZmFhcnJycmkgbm90IEZlcnJhcmlcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIEVuc3VyZSBvdmVybGF5cyAoc25hcC9jbGFtcCBndWlkZXMsIHNlbGVjdC1hcmVhIGNocm9tZSkgcG9zaXRpb24gY29ycmVjdGx5XG4vLyBldmVuIGlmIGAuaW1nLWNhbnZhc2AgaXMgdXNlZCBvdXRzaWRlIGAjdGhlLWdyaWRgLlxuLmltZy1jYW52YXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vIFpvb20vUGFuIHZpZXdwb3J0IHdyYXBwZXI6XG4vLyAtIGAuaW1nLWNhbnZhc2AgcmVtYWlucyB0aGUgdW50cmFuc2Zvcm1lZCBsYXlvdXQgYm94ICh1c2VkIGZvciBzbGljZSBtYXRoICsgZXhwb3J0cykuXG4vLyAtIGAuY2FudmFzLXdvcmxkYCBpcyB0cmFuc2Zvcm1lZCAodHJhbnNsYXRlK3NjYWxlKSB0byBwcm92aWRlIHZpc3VhbCB6b29tL3Bhbi5cbi5pbWctY2FudmFzLXpvb21wYW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvLyBQcmV2ZW50IGJyb3dzZXIgc2Nyb2xsL3pvb20gZ2VzdHVyZXMgZnJvbSBoaWphY2tpbmcgd2hlZWwvcGluY2ggaW50ZXJhY3Rpb25zIG92ZXIgdGhlIGNhbnZhcy5cbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAvLyBTYWZhcmkvV2ViS2l0OiBtaXRpZ2F0ZSBvY2Nhc2lvbmFsIHRyYW5zZm9ybSByYXN0ZXJpemF0aW9uIGFydGlmYWN0cyAoYSBcInR1bm5lbFwiIC8gYWZ0ZXJpbWFnZSlcbiAgLy8gYXJvdW5kIHRoZSBjYW52YXMgd2hlbiB6b29tZWQgb3V0LiBGb3JjaW5nIGxheWVyIGlzb2xhdGlvbi9jb21wb3NpdGluZyBoZWxwcy5cbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICBjb250YWluOiBwYWludDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAvLyBPVVQgT0YgQk9VTkRTOiBzcXVhcmVzIGF0IERPVUJMRSB0aGUgZG9jdW1lbnQncywgYW5kIGZhaW50ZXIuIFR3byBkaWZmZXJlbnQgdGhpbmdzIG11c3RcbiAgLy8gbm90IGxvb2sgdGhlIHNhbWUg4oCUIGluc2lkZSBtZWFucyBcInRyYW5zcGFyZW50IGhlcmVcIiwgb3V0c2lkZSBtZWFucyBcIm5vdCBwYXJ0IG9mIHlvdXIgaW1hZ2VcbiAgLy8gYXQgYWxsXCIsIGFuZCBvbmUgc2hhcmVkIHBhdHRlcm4gbWFkZSB0aGUgZG9jdW1lbnQncyBlZGdlIGdlbnVpbmVseSBoYXJkIHRvIGZpbmQgd2l0aCBhXG4gIC8vIGxheWVyIGhhbmdpbmcgb3ZlciBpdC5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWNhbnZhcy1jaGVja2VyLWJnO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgwLCAwLCAwLCAwLjA0KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNzUlLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDc1JSwgcmdiYSgwLCAwLCAwLCAwLjA0KSksXG4gICAgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA3NSUsIHJnYmEoMCwgMCwgMCwgMC4wNCkgNzUlLCByZ2JhKDAsIDAsIDAsIDAuMDQpKTtcbiAgYmFja2dyb3VuZC1zaXplOiAzNnB4IDM2cHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgMThweCAxOHB4O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4uaW1nLWNhbnZhcy16b29tcGFuLXNwYWNlIHtcbiAgY3Vyc29yOiBncmFiO1xuICAvLyBEdXJpbmcgXCJoYW5kIHRvb2xcIiBtb2RlIChTcGFjZSBoZWxkKSwgZm9yY2UgdGhlIGN1cnNvciB0byByZWZsZWN0IHBhbm5pbmcgZXZlbiB3aGVuIGhvdmVyaW5nXG4gIC8vIGVsZW1lbnRzIHRoYXQgbm9ybWFsbHkgc2V0IHRoZWlyIG93biBjdXJzb3IgKGUuZy4gbW92ZS9yZXNpemUgaGFuZGxlcykuXG4gIC5jYW52YXMtd29ybGQsXG4gIC5zZWxlY3QtYXJlYXMtb3ZlcmxheSxcbiAgLnNlbGVjdC1hcmVhcy1zbGljZS13cmFwLFxuICAuc2VsZWN0LWFyZWFzLW91dGxpbmUsXG4gIC5zZWxlY3QtYXJlYXMtcmVzaXplLWhhbmRsZXIsXG4gIC5kZWxldGUtYXJlYSxcbiAgLnNlbGVjdC1hcmVhcy1kZWxldGUtYXJlYSB7XG4gICAgY3Vyc29yOiBncmFiICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmltZy1jYW52YXMtem9vbXBhbi1wYW5uaW5nIHtcbiAgY3Vyc29yOiBncmFiYmluZztcblxuICAuY2FudmFzLXdvcmxkLFxuICAuc2VsZWN0LWFyZWFzLW92ZXJsYXksXG4gIC5zZWxlY3QtYXJlYXMtc2xpY2Utd3JhcCxcbiAgLnNlbGVjdC1hcmVhcy1vdXRsaW5lLFxuICAuc2VsZWN0LWFyZWFzLXJlc2l6ZS1oYW5kbGVyLFxuICAuZGVsZXRlLWFyZWEsXG4gIC5zZWxlY3QtYXJlYXMtZGVsZXRlLWFyZWEge1xuICAgIGN1cnNvcjogZ3JhYmJpbmcgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uY2FudmFzLXdvcmxkIHtcbiAgLy8gTXVzdCByZW1haW4gaW4gbm9ybWFsIGZsb3cgc28gYC5pbWctY2FudmFzYCByZXRhaW5zIHRoZSBpbWFnZSBoZWlnaHQuXG4gIC8vIElmIHRoaXMgYmVjb21lcyBgcG9zaXRpb246YWJzb2x1dGVgLCB0aGUgcGFyZW50IGNhbiBjb2xsYXBzZSB0byAwIGhlaWdodCBhbmQgdGhlXG4gIC8vIGFjdGl2ZS1zbGljZSBjcm9wIHByZXZpZXcgd2lsbCBsb29rIGxpa2UgYSB3aGl0ZSBib3ggKGJhY2tncm91bmQtc2l6ZSBiZWNvbWVzIDApLlxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiB2YXIoLS16LWNhbnZhcy13b3JsZCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5jYW52YXMtbGF5b3V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8gRGVsZXRlIGNvbnRyb2xzIHBvcnRhbGVkIGhlcmUgc28gdGhleSBjYW4gZXh0ZW5kIHBhc3QgYC5pbWctY2FudmFzYCBvdmVyZmxvdyBjbGlwcGluZy5cbi5zbGljZS1kZWxldGUtZXNjYXBlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogdmFyKC0tei1jYW52YXMtb3ZlcmxheSk7XG5cbiAgLmRlbGV0ZS1hcmVhLFxuICAuc2VsZWN0LWFyZWFzLWRlbGV0ZS1ob3N0IHtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxufVxuXG4uY2FudmFzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgLy8gQWJvdmUgdGhlIGltYWdlL3dvcmxkIGNvbnRlbnQsIGJlbG93IHRoZSBTcGFjZStkcmFnIGhpdCBzdXJmYWNlIChpbmxpbmUgei1pbmRleDogOTk5NikuXG4gIHotaW5kZXg6IHZhcigtLXotY2FudmFzLW92ZXJsYXkpO1xuICAvLyBMZXQgY2xpY2tzIGZhbGwgdGhyb3VnaCB0byB0aGUgYWN0dWFsIGNhbnZhcyBvdmVybGF5IChuZXctc2xpY2UgY3JlYXRpb24pLFxuICAvLyBidXQgc3RpbGwgYWxsb3cgZXhwbGljaXQgaW50ZXJhY3RpdmUgY2hyb21lIChoYW5kbGVzL2RlbGV0ZSkgdG8gb3B0LWluLlxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNvbnRhaW5lciB7XG4gIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICBtYXgtd2lkdGg6ICRjb250YWluZXItd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIGgyIHtcbiAgICBmb250LXNpemU6ICRjb250YWluZXItaDItZm9udC1zaXplO1xuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgfVxufVxuXG4uc2VsZWN0LWFyZWFzLW91dGxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG5cbiAgLy8gUHVyZS1DU1MgbWFyY2hpbmcgYW50cyAodGhpbiAxcHgsIGhpZ2gtY29udHJhc3QgYmxhY2svd2hpdGUgc28gdGhleSByZWFkIG9uIGFueVxuICAvLyBiYWNrZ3JvdW5kKSBvbiBhbGwgZm91ciBlZGdlcy4gUmVwbGFjZXMgdGhlIG9sZCB0aWxlZCBtYXJjaGluZy1hbnRzLmdpZi5cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICRjb2xvci13aGl0ZSA1MCUsICRjb2xvci1ibGFjayA1MCUpLFxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgJGNvbG9yLXdoaXRlIDUwJSwgJGNvbG9yLWJsYWNrIDUwJSksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsICRjb2xvci13aGl0ZSA1MCUsICRjb2xvci1ibGFjayA1MCUpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCAkY29sb3Itd2hpdGUgNTAlLCAkY29sb3ItYmxhY2sgNTAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14LCByZXBlYXQteCwgcmVwZWF0LXksIHJlcGVhdC15O1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgJHNsaWNlLWFudHMtdGlsZSAxcHgsICRzbGljZS1hbnRzLXRpbGUgMXB4LFxuICAgIDFweCAkc2xpY2UtYW50cy10aWxlLCAxcHggJHNsaWNlLWFudHMtdGlsZTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDEwMCUsIDAgMCwgMTAwJSAwO1xuICBhbmltYXRpb246IG1hcmNoaW5nQW50cyAkc2xpY2UtYW50cy1kdXJhdGlvbiBsaW5lYXIgaW5maW5pdGU7XG5cbiAgLy8gVGhlIGFudHMgYXJlIHRoZSBtb3N0IHByb3Zva2luZyBhbmltYXRpb24gaW4gdGhlIGVkaXRvciBmb3IgYSBtb3Rpb24tc2Vuc2l0aXZlIHVzZXI6XG4gIC8vIHVubGlrZSBldmVyeSBvdGhlciBhbmltYXRpb24gaGVyZSB0aGV5IG5ldmVyIHN0b3AsIGFuZCB0aGV5IHNpdCByaWdodCBuZXh0IHRvIHdoYXQgdGhlXG4gIC8vIHVzZXIgaXMgbG9va2luZyBhdC4gYHByZWZlcnMtcmVkdWNlZC1tb3Rpb25gIGlzIGFuIE9TLWxldmVsIHNldHRpbmcgKG1hY09TIEFjY2Vzc2liaWxpdHkgLT5cbiAgLy8gUmVkdWNlIG1vdGlvbiwgYW5kIHRoZSBlcXVpdmFsZW50IGVsc2V3aGVyZSksIHNvIGhvbm91cmluZyBpdCBpcyBub3Qgb3B0aW9uYWwgZHJlc3NpbmcuXG4gIC8vXG4gIC8vIFN0b3BwaW5nIHRoZSBhbmltYXRpb24gaXMgc3VmZmljaWVudCDigJQgaXQgZG9lcyBOT1QgaGlkZSBhbnl0aGluZy4gVGhlIGRhc2hlcyBhcmUgcGFpbnRlZFxuICAvLyBieSBgYmFja2dyb3VuZC1pbWFnZWAsIHNvIHdoYXQgcmVtYWlucyBpcyBhIHN0YXRpYyBkYXNoZWQgYm9yZGVyLCBleGFjdGx5IGFzIGxlZ2libGUgYXNcbiAgLy8gdGhlIG1vdmluZyBvbmUuIE5vIGZhbGxiYWNrIGJvcmRlciBpcyBuZWVkZWQuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gVGhlIEhPVkVSIGFudHMsIHByZS1wYWludGVkIG9uIGFuIG92ZXJsYXkgdGhhdCBpcyBub3JtYWxseSBpbnZpc2libGUuXG4gIC8vXG4gIC8vIFdoeSBhbiBvdmVybGF5IGluc3RlYWQgb2YganVzdCByZXN0eWxpbmcgdGhpcyBlbGVtZW50IG9uIGhvdmVyOiBuZWl0aGVyIGhhbGYgb2YgdGhlIGhvdmVyXG4gIC8vIGNoYW5nZSBjYW4gYmUgdHJhbnNpdGlvbmVkIGluIHBsYWNlLlxuICAvLyAgIC0gYGJhY2tncm91bmQtaW1hZ2VgIGlzIG5vdCBpbnRlcnBvbGFibGUg4oCUIGJyb3dzZXJzIGRvIG5vdCB0d2VlbiBvbmUgZ3JhZGllbnQgaW50b1xuICAvLyAgICAgYW5vdGhlciwgc28gdGhlIGRhc2ggc3BsaXQgd291bGQgc25hcCBob3dldmVyIGxvbmcgYSB0cmFuc2l0aW9uIHdhcyBkZWNsYXJlZC5cbiAgLy8gICAtIGBhbmltYXRpb24tZHVyYXRpb25gIGlzIG5vdCBpbnRlcnBvbGFibGUgZWl0aGVyLCBhbmQgY2hhbmdpbmcgaXQgb24gYSBSVU5OSU5HXG4gIC8vICAgICBhbmltYXRpb24gcmUtbWFwcyBlbGFwc2VkIHRpbWUgb250byB0aGUgbmV3IGR1cmF0aW9uLCB3aGljaCBtYWtlcyB0aGUgZGFzaCBqdW1wXG4gIC8vICAgICBwb3NpdGlvbiBhdCB0aGUgbW9tZW50IG9mIGhvdmVyLlxuICAvLyBBIHNlY29uZCBsYXllciBzaWRlc3RlcHMgYm90aDogaXQgb3ducyBpdHMgb3duIGdyYWRpZW50IGFuZCBpdHMgb3duIGhhbGYtc3BlZWQgYW5pbWF0aW9uXG4gIC8vIGZyb20gdGhlIHN0YXJ0LCBhbmQgdGhlIG9ubHkgdGhpbmcgdGhhdCBjaGFuZ2VzIG9uIGhvdmVyIGlzIGl0cyBPUEFDSVRZIOKAlCB3aGljaCBkb2VzXG4gIC8vIHRyYW5zaXRpb24uIFRoZSBpZGxlIGFudHMga2VlcCBydW5uaW5nIHVuZGVybmVhdGgsIHNvIHRoZSB0d28gc2ltcGx5IGNyb3NzLWZhZGUuXG4gIC8vXG4gIC8vIENvdmVyYWdlOiBldmVyeSBwaXhlbCBvZiBlYWNoIDFweCBlZGdlIGlzIHBhaW50ZWQgb3BhcXVlICh3aGl0ZSBwb3J0aW9uIG9yIGJsYWNrIHBvcnRpb24pLFxuICAvLyBzbyBhdCBmdWxsIG9wYWNpdHkgdGhpcyBsYXllciBjb21wbGV0ZWx5IGhpZGVzIHRoZSBpZGxlIGFudHMgcmF0aGVyIHRoYW4gYmxlbmRpbmcgd2l0aCB0aGVtLlxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vIE1hdGNoZXMgdGhpcyBlbGVtZW50J3Mgb3duIGJveCBleGFjdGx5IOKAlCB0aGUgb3ZlcmxheSBtdXN0IHNpdCBvbiB0aGUgc2FtZSBmb3VyIGVkZ2VzLlxuICAgIGluc2V0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkc2xpY2UtaG92ZXItZmFkZSBlYXNlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICRjb2xvci13aGl0ZSAkc2xpY2UtaG92ZXItd2hpdGUtc2hhcmUsICRjb2xvci1ibGFjayAkc2xpY2UtaG92ZXItd2hpdGUtc2hhcmUpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCAkY29sb3Itd2hpdGUgJHNsaWNlLWhvdmVyLXdoaXRlLXNoYXJlLCAkY29sb3ItYmxhY2sgJHNsaWNlLWhvdmVyLXdoaXRlLXNoYXJlKSxcbiAgICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCAkY29sb3Itd2hpdGUgJHNsaWNlLWhvdmVyLXdoaXRlLXNoYXJlLCAkY29sb3ItYmxhY2sgJHNsaWNlLWhvdmVyLXdoaXRlLXNoYXJlKSxcbiAgICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCAkY29sb3Itd2hpdGUgJHNsaWNlLWhvdmVyLXdoaXRlLXNoYXJlLCAkY29sb3ItYmxhY2sgJHNsaWNlLWhvdmVyLXdoaXRlLXNoYXJlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXgsIHJlcGVhdC14LCByZXBlYXQteSwgcmVwZWF0LXk7XG4gICAgYmFja2dyb3VuZC1zaXplOlxuICAgICAgJHNsaWNlLWFudHMtdGlsZSAxcHgsICRzbGljZS1hbnRzLXRpbGUgMXB4LFxuICAgICAgMXB4ICRzbGljZS1hbnRzLXRpbGUsIDFweCAkc2xpY2UtYW50cy10aWxlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMCwgMCAxMDAlLCAwIDAsIDEwMCUgMDtcbiAgICBhbmltYXRpb246IG1hcmNoaW5nQW50cyAkc2xpY2UtYW50cy1ob3Zlci1kdXJhdGlvbiBsaW5lYXIgaW5maW5pdGU7XG5cbiAgICAvLyBTYW1lIHRyZWF0bWVudCBhcyB0aGUgaWRsZSBhbnRzLiBUaGUgb3ZlcmxheSdzIE9QQUNJVFkgdHJhbnNpdGlvbiBpcyBkZWxpYmVyYXRlbHkgbGVmdFxuICAgIC8vIGFsb25lOiBgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbmAgaXMgYWJvdXQgdHJhdmVsIOKAlCBzbGlkaW5nLCBwYXJhbGxheCwgc3Bpbm5pbmcg4oCUIHdoaWNoIGlzXG4gICAgLy8gd2hhdCBwcm92b2tlcyB2ZXN0aWJ1bGFyIHN5bXB0b21zLiBBIDE2MG1zIGNyb3NzLWZhZGUgZG9lcyBub3QgdHJhdmVsLCBhbmQgcmVtb3ZpbmcgaXRcbiAgICAvLyB3b3VsZCBzdHJpcCB0aGUgaG92ZXIgYWZmb3JkYW5jZSBmcm9tIHByZWNpc2VseSB0aGUgdXNlcnMgd2hvIGFza2VkIGZvciBsZXNzIG1vdGlvbixcbiAgICAvLyB3aGljaCBpcyBhIHdvcnNlIG91dGNvbWUgdGhhbiBsZWF2aW5nIGl0IGluIHBsYWNlLlxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIEhvdmVyIG9uIGEgTk9OLWFjdGl2ZSBzbGljZTogdGhlIHNhbWUgbWFyY2hpbmcgYW50cywgYnJpZ2h0ZXIgYW5kIGF0IEhBTEYgU1BFRUQuIGBzcmNfb2xkYFxuLy8gZGlkIHRoaXMgYnkgc3dhcHBpbmcgaXRzIGJvcmRlciBiYXIgZnJvbSBibHVlIHRvIHdoaXRlIG9uIGBtb3VzZWVudGVyYCwgYW5kIHdhcyBhIG5vLW9wIG9uXG4vLyB0aGUgYWN0aXZlIHNsaWNlIOKAlCB0aGF0IHN1cHByZXNzaW9uIGlzIHByZXNlcnZlZCBpbiBgSW1hZ2VTbGljZXJgLlxuLy9cbi8vIEFsbCB0aGlzIHJ1bGUgZG9lcyBpcyBmYWRlIGluIHRoZSBvdmVybGF5IGRlY2xhcmVkIG9uIGAuc2VsZWN0LWFyZWFzLW91dGxpbmU6OmFmdGVyYDsgc2VlXG4vLyB0aGVyZSBmb3Igd2h5IHRoZSBjaGFuZ2UgY2Fubm90IGJlIHRyYW5zaXRpb25lZCBvbiB0aGUgZWxlbWVudCBpdHNlbGYuXG4vL1xuLy8g4pqg77iPIFR3byBmYWlsZWQgYXR0ZW1wdHMsIGJvdGggb2Ygd2hpY2ggbG9va2VkIGZpbmUgb24gYSBkYXJrIHRlc3QgaW1hZ2UgYW5kIGJyb2tlIG9uIGEgd2hpdGVcbi8vIG9uZSDigJQgd29ydGgga2VlcGluZyBzbyB0aGV5IGFyZSBub3QgcmVwZWF0ZWQ6XG4vLyAgIDEuIE1ha2luZyBCT1RIIGhhbHZlcyBvZiB0aGUgZGFzaCB3aGl0ZS4gVGhhdCByZWFkcyBhcyBhIHNvbGlkIGxpbmU6IHRoZSBhbmltYXRpb24gaXNcbi8vICAgICAgc3RpbGwgcnVubmluZywgYnV0IGEgdW5pZm9ybWx5IHdoaXRlIGxpbmUgaGFzIG5vdGhpbmcgbGVmdCB0byBtYXJjaCwgc28gaG92ZXIgbG9va2VkXG4vLyAgICAgIGxpa2UgaXQgaGFkIGZyb3plbiB0aGUgb3V0bGluZS5cbi8vICAgMi4gTGlmdGluZyB0aGUgZGFyayBoYWxmIHRvd2FyZCBncmV5ICgjMDAwIC0+ICM0MDQwNDApLiBCcmlnaHRlciBvbiBhIGRhcmsgcGhvdG8sIGJ1dCBvblxuLy8gICAgICBhIFdISVRFIHBob3RvIHRoZSBibGFjayB0aWNrcyBhcmUgdGhlIG9ubHkgdmlzaWJsZSBwYXJ0IG9mIHRoZSBkYXNoLCBzbyBsaWdodGVuaW5nXG4vLyAgICAgIHRoZW0gbWFkZSBob3ZlciBGQUlOVEVSIHRoYW4gaWRsZSDigJQgdGhlIG9wcG9zaXRlIG9mIGFuIGFmZm9yZGFuY2UuXG4vL1xuLy8gU28gYnJpZ2h0bmVzcyBjb21lcyBmcm9tIHRoZSB3aGl0ZSBoYWxmJ3MgV0lEVEgsIGxlYXZpbmcgdGhlIGJsYWNrIHRpY2tzIGF0IGZ1bGwgY29udHJhc3QuXG4vLyBNZWFzdXJlZCBsaWZ0IGluIHJlbmRlcmVkIHBpeGVscywgYXZlcmFnZWQgb3ZlciBzaXggYW5pbWF0aW9uIGZyYW1lczogKzM1LjUlIG9uIGEgZGFya1xuLy8gcGhvdG8sICsyNS4xJSBvbiBhIHdoaXRlIG9uZS5cbi8vXG4vLyBEZWxpYmVyYXRlbHkgcGFpbnQtb25seS4gVGhlIG91dGxpbmUgbWFya3MgdGhlIGV4YWN0IGVkZ2UgdGhhdCB3aWxsIGJlIGNob3BwZWQsIHNvIGhvdmVyXG4vLyBtdXN0IG5vdCBjaGFuZ2UgaXRzIHdpZHRoLCBvZmZzZXQgb3IgcG9zaXRpb24gYnkgZXZlbiBhIHBpeGVsLlxuLnNlbGVjdC1hcmVhcy1vdXRsaW5lLWhvdmVyOjphZnRlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8vIE1pZC1nZXN0dXJlOiBob2xkIHRoZSBhbnRzIHN0aWxsLiBQaG90b3Nob3AgZG9lcyB0aGlzIHdoaWxlIHlvdSBtb3ZlIGEgc2VsZWN0aW9uLCBhbmQgdGhlXG4vLyByZWFzb24gZ2VuZXJhbGlzZXMg4oCUIGEgYm9yZGVyIHRoYXQga2VlcHMgbWFyY2hpbmcgd2hpbGUgdGhlIGJveCBpdCBzdXJyb3VuZHMgaXMgYmVpbmdcbi8vIGRyYWdnZWQgcHV0cyB0d28gbW90aW9ucyBvbiBzY3JlZW4gY29tcGV0aW5nIGZvciB0aGUgc2FtZSBhdHRlbnRpb24sIGFuZCB0aGUgYm9yZGVyIGlzIHRoZVxuLy8gb25lIHRoYXQgaXMgTk9UIHRlbGxpbmcgeW91IGFueXRoaW5nLiBQYXVzaW5nIGl0IG1ha2VzIHRoZSBzbGljZSdzIG93biBtb3ZlbWVudCB0aGUgb25seVxuLy8gdGhpbmcgbW92aW5nLlxuLy9cbi8vIGBhbmltYXRpb24tcGxheS1zdGF0ZWAsIG5vdCBgYW5pbWF0aW9uOiBub25lYC4gUGF1c2luZyBob2xkcyB0aGUgZGFzaCBtaWQtY3ljbGUgYW5kIHJlc3VtZXNcbi8vIGZyb20gdGhlcmUsIHNvIHJlbGVhc2luZyB0aGUgbW91c2UgcGlja3MgdGhlIG1hcmNoIGJhY2sgdXAgcmF0aGVyIHRoYW4gc25hcHBpbmcgdGhlIGRhc2ggdG9cbi8vIHBoYXNlIHplcm8uIEl0IGFsc28gaGFzIHRvIG5hbWUgdGhlIG92ZXJsYXkgZXhwbGljaXRseSDigJQgYDo6YWZ0ZXJgIHJ1bnMgaXRzIG93biBhbmltYXRpb25cbi8vIGFuZCB3b3VsZCBvdGhlcndpc2Uga2VlcCBtYXJjaGluZyB1bmRlcm5lYXRoIGEgcGF1c2VkIGJhc2UgbGF5ZXIuXG4vL1xuLy8gU2NvcGVkIGJ5IGBJbWFnZVNsaWNlcmAgdG8gdGhlIHNsaWNlIGFjdHVhbGx5IGJlaW5nIG1hbmlwdWxhdGVkOyBmcmVlemluZyBldmVyeSBzbGljZSBvbiB0aGVcbi8vIGNhbnZhcyByZWFkcyBhcyB0aGUgYXBwIGhpdGNoaW5nLCBub3QgYXMgZmVlZGJhY2sgYWJvdXQgdGhpcyBvbmUuXG4uc2VsZWN0LWFyZWFzLW91dGxpbmUtZnJvemVuLFxuLnNlbGVjdC1hcmVhcy1vdXRsaW5lLWZyb3plbjo6YWZ0ZXIge1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xufVxuXG4vLyDimqDvuI8gVGhlIG5lZ2F0aXZlIG9mZnNldHMgTVVTVCBzdGF5IHBhcmVudGhlc2lzZWQuIFdyaXR0ZW4gYmFyZSwgU2FzcyByZWFkcyBgMCAtJHRpbGVgIGFzIHRoZVxuLy8gU1VCVFJBQ1RJT04gYDAgLSA4cHhgIGFuZCBlbWl0cyBhIHNpbmdsZSBgLThweGAgd2hlcmUgdHdvIHZhbHVlcyB3ZXJlIG1lYW50IOKAlCBzaWxlbnRseVxuLy8gdHVybmluZyB0aGUgTEVGVCBlZGdlJ3MgYDAgLThweGAgaW50byBhbiB4LW9ubHkgcG9zaXRpb24sIHdoaWNoIHN0b3BwZWQgdGhhdCBlZGdlIGFuaW1hdGluZ1xuLy8gYW5kIG1hZGUgaXRzIGFudHMgdmFuaXNoLiBPbmx5IHRoZSB0aGlyZCB2YWx1ZSBpcyBleHBvc2VkICh0aGUgb3RoZXJzIGZvbGxvdyBhIGNvbW1hLCBzb1xuLy8gdGhlcmUgaXMgbm8gbGVmdC1oYW5kIG9wZXJhbmQgdG8gc3VidHJhY3QgZnJvbSksIHdoaWNoIGlzIHdoeSBpdCBwcmVzZW50ZWQgYXMgXCJvbmUgZWRnZSBpc1xuLy8gYnJva2VuXCIgcmF0aGVyIHRoYW4gYXMgYW4gb2J2aW91c2x5IG1hbGZvcm1lZCBydWxlLlxuQGtleWZyYW1lcyBtYXJjaGluZ0FudHMge1xuICB0byB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgICRzbGljZS1hbnRzLXRpbGUgMCwgKC0kc2xpY2UtYW50cy10aWxlKSAxMDAlLFxuICAgICAgMCAoLSRzbGljZS1hbnRzLXRpbGUpLCAxMDAlICRzbGljZS1hbnRzLXRpbGU7XG4gIH1cbn1cblxuLy8gVGV0cmlzIE1vZGUgYW5pbWF0aW9uIGhlbHBlcnM6XG4vLyAtIFRoZSBzbGljZSBcImNocm9tZVwiIChvdXRsaW5lL2hhbmRsZXMvZGVsZXRlKSByb3RhdGVzIHZpYSBgLnRldHJpcy1yb3RhdGUtKmAuXG4vLyAtIFRoZSBjcm9wcGVkIGltYWdlIHByZXZpZXcgY291bnRlci1yb3RhdGVzIHZpYSBgLnRldHJpcy1jb3VudGVyLSpgIHNvIGl0IHN0YXlzIHVwcmlnaHQuXG4vLyAtIFdlIGJyaWVmbHkgZmFkZSB0aGUgY3JvcCBvdXQgZHVyaW5nIHRoZSByb3RhdGlvbiB0byBhdm9pZCBhIGNvbmZ1c2luZyBcInNwaW5uaW5nIGltYWdlXCIgZWZmZWN0LlxuLnRldHJpcy1yb3RhdGUtY3csXG4udGV0cmlzLXJvdGF0ZS1jY3csXG4udGV0cmlzLWNvdW50ZXItY3csXG4udGV0cmlzLWNvdW50ZXItY2N3IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuXG5Aa2V5ZnJhbWVzIHRldHJpc1JvdGF0ZSB7XG4gIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKHZhcigtLXRldHJpcy1yb3QpKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHRldHJpc0NvdW50ZXJSb3RhdGUge1xuICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSh2YXIoLS10ZXRyaXMtcm90KSk7IH1cbn1cblxuQGtleWZyYW1lcyB0ZXRyaXNTcGluMzYwIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHRldHJpc1NwaW4zNjBDY3cge1xuICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHRldHJpc1JhaW5ib3dIdWUge1xuICAwJSB7IGZpbHRlcjogaHVlLXJvdGF0ZSgwZGVnKSBzYXR1cmF0ZSgxLjYpIGNvbnRyYXN0KDEuMTUpOyB9XG4gIDEwMCUgeyBmaWx0ZXI6IGh1ZS1yb3RhdGUoMzYwZGVnKSBzYXR1cmF0ZSgxLjYpIGNvbnRyYXN0KDEuMTUpOyB9XG59XG5cbkBrZXlmcmFtZXMgdGV0cmlzUmFpbmJvd0h1ZUNjdyB7XG4gIDAlIHsgZmlsdGVyOiBodWUtcm90YXRlKDBkZWcpIHNhdHVyYXRlKDEuNikgY29udHJhc3QoMS4xNSk7IH1cbiAgMTAwJSB7IGZpbHRlcjogaHVlLXJvdGF0ZSgtMzYwZGVnKSBzYXR1cmF0ZSgxLjYpIGNvbnRyYXN0KDEuMTUpOyB9XG59XG5cbi50ZXRyaXMtcm90YXRlIHtcbiAgYW5pbWF0aW9uOiB0ZXRyaXNSb3RhdGUgJHRldHJpcy1hbmltLWR1cmF0aW9uIGVhc2U7XG59XG5cbi50ZXRyaXMtcm90YXRlLWN3IHtcbiAgLS10ZXRyaXMtcm90OiA5MGRlZztcbn1cblxuLnRldHJpcy1yb3RhdGUtY2N3IHtcbiAgLS10ZXRyaXMtcm90OiAtOTBkZWc7XG59XG5cbi8vIENvdW50ZXItcm90YXRpb246IGtlZXBzIHRoZSBjcm9wcGVkIGltYWdlIHVwcmlnaHQgd2hpbGUgdGhlIHdyYXBwZXIgcm90YXRlcy5cbi8vIEZhZGUgYmVoYXZpb3I6XG4vLyAtIFdlIHNldCBgb3BhY2l0eTogMGAgd2hpbGUgdGhlIGNvdW50ZXIgY2xhc3MgaXMgcHJlc2VudC5cbi8vIC0gV2hlbiB0aGUgY2xhc3MgaXMgcmVtb3ZlZCAofjMwMG1zKSwgYG9wYWNpdHlgIHRyYW5zaXRpb25zIGJhY2sgdG8gMSBzbW9vdGhseS5cbi50ZXRyaXMtY291bnRlciB7XG4gIGFuaW1hdGlvbjogdGV0cmlzQ291bnRlclJvdGF0ZSAkdGV0cmlzLWFuaW0tZHVyYXRpb24gZWFzZTtcbn1cblxuLnRldHJpcy1jb3VudGVyLWN3IHtcbiAgLS10ZXRyaXMtcm90OiAtOTBkZWc7XG59XG5cbi50ZXRyaXMtY291bnRlci1jY3cge1xuICAtLXRldHJpcy1yb3Q6IDkwZGVnO1xufVxuXG4vLyBDcm9wIHByZXZpZXcgZmFkZSBkdXJpbmcgVGV0cmlzIE1vZGUuXG4uc2VsZWN0LWFyZWFzLWJhY2tncm91bmQtYXJlYSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xOHMgZWFzZTtcbn1cblxuLnNlbGVjdC1hcmVhcy1iYWNrZ3JvdW5kLWFyZWEudGV0cmlzLWNvdW50ZXItY3csXG4uc2VsZWN0LWFyZWFzLWJhY2tncm91bmQtYXJlYS50ZXRyaXMtY291bnRlci1jY3cge1xuICBvcGFjaXR5OiAwO1xufVxuXG4vLyBEb3VibGUtdGFwIFI6IDM2MMKwIHJhaW5ib3cgc3BpbiAodmlzdWFsIG9ubHkpLlxuLnRldHJpcy1zcGluMzYwLXJhaW5ib3cge1xuICBhbmltYXRpb246IHRldHJpc1NwaW4zNjAgMC41cyBlYXNlLCB0ZXRyaXNSYWluYm93SHVlIDAuNXMgbGluZWFyO1xufVxuXG4udGV0cmlzLXNwaW4zNjAtcmFpbmJvdy1jY3cge1xuICBhbmltYXRpb246IHRldHJpc1NwaW4zNjBDY3cgMC41cyBlYXNlLCB0ZXRyaXNSYWluYm93SHVlQ2N3IDAuNXMgbGluZWFyO1xufVxuXG4uc2VsZWN0LWFyZWFzLXJlc2l6ZS1oYW5kbGVyIHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibGFjaztcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXN1cmZhY2U7XG4gIGhlaWdodDogOHB4O1xuICB3aWR0aDogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvLyBQcmV2ZW50IGJyb3dzZXIgc2Nyb2xsL3pvb20gZ2VzdHVyZXMgZnJvbSBpbnRlcmZlcmluZyB3aXRoIHBvaW50ZXIgaW50ZXJhY3Rpb25zIG9uIG1vYmlsZS5cbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4uc2VsZWN0LWFyZWFzLWRlbGV0ZS1hcmVhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICRkZWxldGUtaW1nIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xufVxuXG4uc2VsZWN0LWFyZWFzLWRlbGV0ZS1ob3N0IHtcbiAgLy8gTWF0Y2hlcyBjb25zdGFudHMuanMgU0xJQ0VfREVMRVRFX1BBRF8qICg1LzUvMi8yKS5cbiAgcGFkZGluZzogNXB4IDVweCAycHggMnB4O1xufVxuXG4udG1wSW1nLFxuLm15LXBhbmRhLWJybyB7XG4gIC8vIGAudG1wSW1nYCBpcyBhbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDVyZW07XG4gIG1heC13aWR0aDogNjlweDtcbn1cblxuLnRtcEltZyB7XG4gIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNpbWdXcmFwIC50bXBJbWcge1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzLXNtO1xuICAvLyBIb3Zlci9hY3RpdmUgZmVlZGJhY2sgbGl2ZXMgb24gdGhlIHdob2xlIGAudXBsb2FkLWRyb3B6b25lYCBub3csIG5vdCB0aGUgaWNvbi5cbn1cblxuLnNlbGVjdC1hcmVhcy1vdmVybGF5IHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ibGFjaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogY3Jvc3NoYWlyO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG5cbiAgJi5oYXMtc2xpY2Uge1xuICAgIG9wYWNpdHk6ICRzZWxlY3QtYXJlYXMtb3ZlcmxheS1oYXMtc2xpY2Utb3BhY2l0eTtcbiAgfVxufVxuXG4vLyBUb3VjaCBndWlkZXM6IGJyaWVmIGZsYXNoIGxpbmVzIHdoZW4gc2xpY2VzIHNuYXAvY2xhbXAuXG4udG91Y2gtZ3VpZGVzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6ICR6LXRvdWNoLWd1aWRlcy1vdmVybGF5OyAvLyBhYm92ZSBzbGljZSBjaHJvbWVcbn1cblxuQGtleWZyYW1lcyB0b3VjaEd1aWRlQmxpbmsge1xuICAwJSB7IG9wYWNpdHk6IDA7IH1cbiAgMjAlIHsgb3BhY2l0eTogMTsgfVxuICA2NSUgeyBvcGFjaXR5OiAxOyB9XG4gIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG59XG5cbi50b3VjaC1ndWlkZS1saW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBhbmltYXRpb246IHRvdWNoR3VpZGVCbGluayAwLjQ1cyBlYXNlO1xuICBvcGFjaXR5OiAwO1xufVxuXG4udG91Y2gtZ3VpZGUtdiB7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnRvdWNoLWd1aWRlLWgge1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi50b3VjaC1ndWlkZS1zbmFwIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAxODAsIDI1NSwgMC45NSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi50b3VjaC1ndWlkZS1jbGFtcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCA4MCwgODAsIDAuOTUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vLyBUb29sYmFyIEhFTFAgcG9wb3Zlci5cbi5oZWxwLXBvcG92ZXItd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uaGVscC1wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICB3aWR0aDogbWluKCRoZWxwLXBvcG92ZXItbWF4LXdpZHRoLCBjYWxjKDEwMHZ3IC0gMjRweCkpO1xuICBiYWNrZ3JvdW5kOiAkaGVscC1wb3BvdmVyLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCAkaGVscC1wb3BvdmVyLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgei1pbmRleDogdmFyKC0tei1oZWxwLXBvcG92ZXIpO1xufVxuXG4uaGVscC1wb3BvdmVyLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6ICRoZWxwLXBvcG92ZXItdGl0bGUtZm9udC13ZWlnaHQ7XG4gIGZvbnQtc2l6ZTogJGhlbHAtcG9wb3Zlci10aXRsZS1mb250LXNpemU7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbn1cblxuLy8gU2NvcGUgaGVhZGluZyAoU2xpY2VzIC8gVmlldyAvIExheWVyKS4gVGhlIGVkaXRvciBoYXMgdGhyZWUgc2NvcGVzIGFuZCBjb25mbGF0aW5nXG4vLyB0aGVtIGlzIHRoZSBtYWluIHNvdXJjZSBvZiBjb25mdXNpb24sIHNvIHRoZSBoZWxwIGdyb3VwcyBieSBzY29wZSByYXRoZXIgdGhhblxuLy8gbGlzdGluZyBldmVyeXRoaW5nIGZsYXQuXG4uaGVscC1wb3BvdmVyLXNlY3Rpb24ge1xuICAvLyBHZW5lcm91cyBzcGFjZSBBQk9WRSBlYWNoIGhlYWRpbmcgc28gdGhlIGdyb3VwcyByZWFkIGFzIHNlcGFyYXRlIGJsb2NrcyByYXRoZXJcbiAgLy8gdGhhbiBvbmUgY29udGludW91cyBsaXN0OyB0aGUgcnVsZSB1bmRlcm5lYXRoIHRoZW4gcmVhZHMgYXMgYSBkaXZpZGVyLlxuICBtYXJnaW46IDIycHggMCA0cHg7XG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAvLyBTbWFsbCArIGhlYXZ5ICsgdHJhY2tlZDogdGhlIGhpZXJhcmNoeSBjb21lcyBmcm9tIHdlaWdodCBhbmQgbGV0dGVyLXNwYWNpbmcsIG5vdFxuICAvLyBzaXplLCBzbyBpdCBzdGlsbCByZWFkcyBhcyBhIGhlYWRpbmcgaWYgdGhlIGJyb3dzZXIgZmxvb3JzIHNtYWxsIHRleHQgdmlhIGFcbiAgLy8gbWluaW11bS1mb250LXNpemUgc2V0dGluZy5cbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXhzO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWhlYXZ5O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gIGNvbG9yOiAkY29sb3ItdGV4dC1zdHJvbmc7XG5cbiAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gIH1cbn1cblxuLy8gVGhlIFwi4oCUIHdoYXQgeW91IHNlZSwgbmV2ZXIgdGhlIGV4cG9ydGVkIGZpbGVcIiBxdWFsaWZpZXIgYmVzaWRlIGEgc2NvcGUgaGVhZGluZy5cbi8vIERlbGliZXJhdGVseSBsaWdodGVyIGFuZCB1bi10cmFja2VkIHNvIHRoZSBzY29wZSB3b3JkIHN0YXlzIHRoZSB0aGluZyB5b3Ugc2VlIGZpcnN0LlxuLmhlbHAtcG9wb3Zlci1ub3RlIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBjb2xvcjogJGNvbG9yLXRleHQtbXV0ZWQ7XG59XG5cbi5oZWxwLXBvcG92ZXItdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLmhlbHAtcG9wb3Zlci1kZXNjIHtcbiAgcGFkZGluZzogM3B4IDEwcHggM3B4IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5oZWxwLXBvcG92ZXIta2V5cyB7XG4gIHBhZGRpbmc6IDNweCAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmhlbHAtcG9wb3ZlciBrYmQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDFweCA2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDEpO1xuICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6ICRoZWxwLXBvcG92ZXIta2JkLWZvbnQtc2l6ZTtcbn1cblxuLmJsdXJyZWQge1xuICAvLyBBbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoM3B4KTtcbiAgLW1vei1maWx0ZXI6IGJsdXIoM3B4KTtcbiAgLW8tZmlsdGVyOiBibHVyKDNweCk7XG4gIGZpbHRlcjogYmx1cigzcHgpXG59XG5cbi5uZXh0IHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmJ0bi1jaG9wIHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbi8vIFRvb2xiYXIgaWNvbiBidXR0b25zIChBZGQgTmV3IC8gQ2xlYXIgQWxsKSArIHRoZWlyIGxhYmVscyBhbmQgaWNvbnMuXG4uYnRuLWFkZCxcbi5idG4tY2xlYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDNweCA4cHggMCA1cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcblxuICAvLyBUZXh0IGxhYmVsIGluc2lkZSB0aGUgYnV0dG9uIChrZWVwcyBmb250ICsgdmVydGljYWwgYWxpZ25tZW50IGNvbnNpc3RlbnQpLlxuICAmLXR4dCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC00cHg7XG4gIH1cblxuICAvLyBJY29uIHNwcml0ZSB0aGF0IGFwcGVhcnMgdG8gdGhlIGxlZnQgb2YgdGhlIHRleHQuXG4gICY6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxOHB4IDE4cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBjb250ZW50OiAnJztcbiAgfVxufVxuXG4vLyBVc2UgdGhlIHNhbWUgc2VsZWN0b3Igc3BlY2lmaWNpdHkgYXMgdGhlIGxlZ2FjeSBDU1MgKGJ1dHRvbi5idG4tYWRkOmJlZm9yZSlcbi8vIHNvIHRoYXQgb3VyIGJ1bmRsZWQgc3R5bGVzIHdpbiBieSBzb3VyY2Ugb3JkZXIsIGJ1dCB0aGUgc3RhdGljIHBhZ2VzIHRoYXRcbi8vIGRvbid0IGxvYWQgQXBwLnNjc3Mgc3RpbGwgcmVseSBvbiBtYWluLm1pbi5jc3MuXG5idXR0b24uYnRuLWFkZDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuL3Jlc291cmNlcy9hZGQtbmV3LWljb24ucG5nJyk7XG59XG5cbmJ1dHRvbi5idG4tY2xlYXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi9yZXNvdXJjZXMvY2xlYXItYWxsLWljb24ucG5nJyk7XG59XG5cbi5idG4tY29tbW9uIHtcbiAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogJGRpc2FibGVkLW9wYWNpdHk7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxufVxuXG4vLyBJbiBNb3ZlIG1vZGUgdGhlIGZsYXQgI3NsaWNlSW1nIGlzIGhpZGRlbjsgdGhlIGxpdmUgbGF5ZXIgY2FudmFzIHN0YW5kcyBpbiBmb3Jcbi8vIGl0IHNvIGEgZHJhZyBuZXZlciByZXZlYWxzIHRoZSBwcmUtbW92ZSBwb3NpdGlvbiB0aHJvdWdoIHRyYW5zcGFyZW50IGFyZWFzLlxuLmxheWVyLXNyYy1oaWRkZW4ge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vIFJlYWwtdGltZSBjb21wb3NpdGUgY2FudmFzIHN0YW5kaW5nIGluIGZvciAjc2xpY2VJbWcgKG9wYWNpdHkvYmxlbmQvdmlzaWJpbGl0eS9cbi8vIHBvc2l0aW9uIGVkaXRzIHJlbmRlciBpbnN0YW50bHkpLiBJdHMgbGVmdC90b3Avd2lkdGgvaGVpZ2h0IGFyZSBzZXQgYnkgSlMgaW5cbi8vIGRyYXdMYXllcnNUb0xpdmUgKGRvY3VtZW50IHZzLiBvdXQtb2YtYm91bmRzIGdob3N0IGV4dGVudCk7IHRoaXMgcnVsZSBvbmx5IG93bnNcbi8vIHRoZSBzdGF0aWMgcG9zaXRpb25pbmcvc3RhY2tpbmcgc28gdGhlIGNvbXBvbmVudCBjYXJyaWVzIG5vIGlubGluZSBzdHlsZS5cbi5sYXllci1saXZlLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogdmFyKC0tei1sYXllci1saXZlLWNhbnZhcyk7XG59XG5cbi8vIE1vdmUtdG9vbCBjYXB0dXJlIHN1cmZhY2U6IHR1cm5zIGNhbnZhcyBkcmFncyBpbnRvIGxheWVyIHJlcG9zaXRpb25pbmcuIEFjdGl2ZVxuLy8gb25seSB3aGlsZSB0aGUgTW92ZSB0b29sIGlzIHNlbGVjdGVkIChtb3VudGVkIGNvbmRpdGlvbmFsbHkpLlxuLy9cbi8vIFJlbmRlcmVkIGFzIGEgc2libGluZyBvZiBgLmltZy1jYW52YXNgIGluc2lkZSBgLmNhbnZhcy1sYXlvdXRgLCBOT1QgaW5zaWRlIGAuY2FudmFzLXdvcmxkYCxcbi8vIHNvIGBpbnNldDogMGAgaXMgdGhlIFZJRVdQT1JUIGFuZCBkb2VzIG5vdCBzaHJpbmsgd2l0aCB0aGUgem9vbS4gSW5zaWRlIHRoZSB3b3JsZCBpdCBzY2FsZWRcbi8vIGRvd24gdG8gdGhlIGRvY3VtZW50IChtZWFzdXJlZCA4MHg2MCBhZ2FpbnN0IGEgNzc5eDU4NSB2aWV3cG9ydCBhdCA0IHN0ZXBzIG91dCksIHdoaWNoIGxlZnRcbi8vIGEgdmlzaWJsZSBsYXllciBvdXRzaWRlIHRoZSBkb2N1bWVudCBpbXBvc3NpYmxlIHRvIGdyYWIgZXZlbiB0aG91Z2ggaXRzIGhhbmRsZXMgc3RpbGxcbi8vIHdvcmtlZC5cbi5sYXllci1tb3ZlLWNhcHR1cmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHotaW5kZXg6IHZhcigtLXotbGF5ZXItbW92ZS1jYXB0dXJlKTtcblxuICAvLyBPbmx5IHByb21pc2UgXCJncmFiYmFibGVcIiB3aGVuIHRoZSBwb2ludGVyIGlzIGFjdHVhbGx5IG92ZXIgYSBsYXllci5cbiAgJi5vdmVyLWxheWVyIHtcbiAgICBjdXJzb3I6IG1vdmU7XG4gIH1cbn1cblxuLy8gUmlnaHQtY2xpY2sgbWVudSBmb3IgdGhlIGNhbnZhcy4gRml4ZWQtcG9zaXRpb25lZCBhdCB0aGUgcG9pbnRlciAodGhlIGNvbXBvbmVudCBwdWxsc1xuLy8gaXQgYmFjayBpbnNpZGUgdGhlIHZpZXdwb3J0IHdoZW4gYSBjbGljayBsYW5kcyBuZWFyIGFuIGVkZ2UpLlxuLmNhbnZhcy1jb250ZXh0LW1lbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6ICR6LWNhbnZhcy1jb250ZXh0LW1lbnU7XG4gIG1pbi13aWR0aDogMTcwcHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLW1pZDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3gtc2hhZG93OiAwIDhweCAyNHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuXG4gID4gLml0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWxheWVyLWFjY2VudC1zb2Z0O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogJGRpc2FibGVkLW9wYWNpdHk7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxuXG4gID4gLnNlcGFyYXRvciB7XG4gICAgbWFyZ2luOiA0cHggMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICB9XG59XG5cbi8vIENvbnRleHR1YWwgb3B0aW9ucyBmb3IgdGhlIHNlbGVjdGVkIGxheWVyIOKAlCBhIGZsb2F0aW5nIGlzbGFuZCBwaW5uZWQgdG8gdGhlIGJvdHRvbSBvZlxuLy8gdGhlIHZpZXdwb3J0IHJhdGhlciB0aGFuIGEgZm91cnRoIHRvb2xiYXIgcm93LiBUaGUgdG9vbGJhciBpcyBhbHJlYWR5IHRocmVlIHJvd3MgZGVlcCxcbi8vIGFuZCB0aGVzZSBjb250cm9scyBvbmx5IG1hdHRlciB3aGlsZSBhIGxheWVyIGlzIHNlbGVjdGVkLCBzbyB0aGV5IGZvbGxvdyB0aGUgc2VsZWN0aW9uXG4vLyBpbnN0ZWFkIG9mIHBlcm1hbmVudGx5IG9jY3VweWluZyBjaHJvbWUuXG4ubGF5ZXItb3B0aW9ucy1iYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMThweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHotaW5kZXg6ICR6LWxheWVyLW9wdGlvbnMtaXNsYW5kO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiA3cHggMTBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1taWQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcbiAgYW5pbWF0aW9uOiBsYXllck9wdGlvbnNJc2xhbmRJbiAxNDBtcyBlYXNlLW91dDtcblxuICAvLyBSZXNwZWN0IHVzZXJzIHdobyBhc2sgZm9yIGxlc3MgbW90aW9uOyB0aGUgaXNsYW5kIHN0aWxsIGFwcGVhcnMsIGp1c3Qgd2l0aG91dCB0cmF2ZWwuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG5cbiAgPiAubGF5ZXItb3B0aW9ucy1uYW1lIHtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgLy8gVGhlIG5hbWUgY2FuIGJlIGxvbmcgb25jZSBsYXllcnMgYXJlIHJlbmFtZWFibGU7IGl0IHlpZWxkcyBiZWZvcmUgdGhlIGZpZWxkcyBkby5cbiAgICBtYXgtd2lkdGg6IDE0Y2g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgPiAubGF5ZXItb3B0aW9ucy1zZXAge1xuICAgIGNvbG9yOiAkY29sb3ItYm9yZGVyLW1pZDtcbiAgfVxuXG4gID4gLmxheWVyLWZpZWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogM3B4O1xuXG4gICAgPiAubGF5ZXItZmllbGQtbGFiZWwge1xuICAgICAgY29sb3I6ICRjb2xvci10ZXh0LW11dGVkO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXhzO1xuICAgIH1cblxuICAgID4gLmxheWVyLWZpZWxkLWlucHV0IHtcbiAgICAgIHdpZHRoOiA2Y2g7XG4gICAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1taWQ7XG4gICAgICAvLyBTcGlubmVycyBzdGVhbCB3aWR0aCBmcm9tIGFuIGFscmVhZHktbmFycm93IGZpZWxkIGFuZCBpbnZpdGUgbWlzLWNsaWNrcy5cbiAgICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAkY29sb3ItbGF5ZXItYWNjZW50O1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IC5sYXllci1hc3BlY3QtbGluayB7XG4gICAgLy8gVGhlIGdseXBoIGlzIGNvbnN0YW50OyB0aGUgU1RBVEUgaXMgd2hhdCBkaWZmZXJzLiBVbmxvY2tlZCByZWFkcyBhcyBmYWRlZCBhbmRcbiAgICAvLyBzdHJ1Y2sgdGhyb3VnaCwgbG9ja2VkIGFzIHRoZSBhY2NlbnQgdXNlZCBieSB0aGUgc2VsZWN0aW9uIGNocm9tZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3BhY2l0eTogMC40NTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvci1sYXllci1hY2NlbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbGF5ZXItYWNjZW50LXNvZnQ7XG4gICAgfVxuXG4gICAgLy8gRGlhZ29uYWwgc3RyaWtlIHdoaWxlIHVubG9ja2VkLCBzbyB0aGUgc3RhdGUgaXMgbGVnaWJsZSB3aXRob3V0IHJlbHlpbmcgb24gY29sb3VyLlxuICAgICY6bm90KC5hY3RpdmUpOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDE1JTtcbiAgICAgIHJpZ2h0OiAxNSU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItdGV4dC11aTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMGRlZyk7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgbGF5ZXJPcHRpb25zSXNsYW5kSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDhweCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG4vLyBMYXllciBzZWxlY3Rpb24gY2hyb21lOiBob3ZlciBwcmV2aWV3ICsgYWN0aXZlIGZyYW1lIHdpdGggY29ybmVyIHJlc2l6ZSBoYW5kbGVzLlxuLy8gTGl2ZXMgaW5zaWRlIC5jYW52YXMtd29ybGQgKHNvIGl0IHRyYWNrcyBwYW4vem9vbSBmb3IgZnJlZSkgYnV0IEFCT1ZFIHRoZSBjYXB0dXJlXG4vLyBzdXJmYWNlLCBzbyBoYW5kbGVzIHdpbiB0aGUgcG9pbnRlciB3aGlsZSBldmVyeXRoaW5nIGVsc2Ugc3RheXMgY2xpY2stdGhyb3VnaCBhbmRcbi8vIGZhbGxzIGJhY2sgdG8gYSBtb3ZlLiBTaXplcyBtYXJrZWQgXCJzY3JlZW4gcHhcIiBhcmUgY291bnRlci1zY2FsZWQgYnkgMS9rIGluIEpTLlxuLy9cbi8vIERlbGliZXJhdGVseSBzb2xpZCwgbmV2ZXIgZGFzaGVkOiBzbGljZXMgb3duIG1hcmNoaW5nIGFudHMsIHNvIGxheWVyIHNlbGVjdGlvbiBoYXNcbi8vIHRvIHJlYWQgYXMgYSBkaWZmZXJlbnQga2luZCBvZiB0aGluZyBhdCBhIGdsYW5jZS5cbi8vIExheWVyIGNocm9tZSBsaXZlcyBPVVRTSURFIGAuaW1nLWNhbnZhc2AsIGFzIGEgc2libGluZywgc28gYGNvbnRhaW46IHBhaW50YCBjYW5ub3QgY2xpcFxuLy8gaXRzIGhhbmRsZXMgb3V0IG9mIGhpdC10ZXN0aW5nLiBUaGUgdHJhbnNwYXJlbnQgYm9yZGVyIG1pcnJvcnMgYC5pbWctY2FudmFzYCdzIG93biAxcHhcbi8vIGJvcmRlciBzbyB0aGlzIGJveCdzIENPTlRFTlQgYm94IHN0YXJ0cyBleGFjdGx5IHdoZXJlIGAuY2FudmFzLXdvcmxkYCBpcyBsYWlkIG91dCDigJRcbi8vIGtlZXBpbmcgdGhhdCBvZmZzZXQgaW4gQ1NTIGluc3RlYWQgb2YgYXMgYSBjb25zdGFudCBpbiB0aGUgZ2VvbWV0cnkgY29kZS5cbi5sYXllci1jaHJvbWUtZXNjYXBlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvLyBHcm93biBieSBleGFjdGx5IHRoZSBoYW5kbGUgYmxlZWQsIHRoZW4gY2xpcHBlZC4gQm90aCBoYWx2ZXMgbWF0dGVyOlxuICAvLyAgLSBncm93biwgc28gYSBoYW5kbGUgY2VudHJlZCBvbiB0aGUgY2FudmFzIGVkZ2UgaXMgZnVsbHkgaW5zaWRlIHRoaXMgYm94IGFuZCBrZWVwc1xuICAvLyAgICBpdHMgaGl0LXRlc3RpbmcgKHRoZSB3aG9sZSBwb2ludCBvZiBlc2NhcGluZyBgLmltZy1jYW52YXNgJ3MgYGNvbnRhaW46IHBhaW50YCk7XG4gIC8vICAtIGNsaXBwZWQsIHNvIGEgbGF5ZXIgZHJhZ2dlZCBmYXIgb2ZmLWNhbnZhcyBjYW5ub3QgcGFpbnQgaXRzIGZyYW1lIGFjcm9zcyB0aGVcbiAgLy8gICAgdG9vbGJhciBhbmQgdGhlIHJlc3Qgb2YgdGhlIHBhZ2UuIGBvdmVyZmxvdzogdmlzaWJsZWAgaGVyZSBkaWQgZXhhY3RseSB0aGF0LlxuICAvLyBFeGFjdGx5IGAuaW1nLWNhbnZhc2AncyBib3guIFRoZXJlIGlzIG5vIHBhc3RlYm9hcmQgYW5kIG5vIGNocm9tZSBibGVlZCwgc28gdGhpcyBpcyBhXG4gIC8vIHBsYWluIGBpbnNldDogMGAg4oCUIGl0IHdhcyBgLSRsYXllci1jaHJvbWUtYmxlZWRgIChhIHZhcmlhYmxlIHBpbm5lZCBhdCAwcHgpIHVudGlsIHRoZVxuICAvLyBwYXJrZWQgcGFzdGVib2FyZCBzY2FmZm9sZGluZyB3YXMgcmVtb3ZlZCBvbiAyMDI2LTA4LTEyLlxuICAvL1xuICAvLyDimqDvuI8gRG8gTk9UIHRyeSB0byBkZXJpdmUgdGhpcyBib3ggYnkgaW5zZXR0aW5nIGAuY2FudmFzLWxheW91dGAgaWYgYSBwYXN0ZWJvYXJkIGV2ZXJcbiAgLy8gcmV0dXJucy4gVGhpcyBib3ggaXMgYSBTSUJMSU5HIG9mIGAuaW1nLWNhbnZhc2AsIGFuZCBgLmNhbnZhcy1sYXlvdXRgIGlzXG4gIC8vIGBpbmxpbmUtYmxvY2s7IG1heC13aWR0aDogMTAwJWAsIHNvIGl0IHNocmluay13cmFwcyBhZ2FpbnN0IHRoZSBDT0xVTU4gcmF0aGVyIHRoYW5cbiAgLy8gYWdhaW5zdCBgLmltZy1jYW52YXNgLiBNZWFzdXJlZCBhdCBhIDI0cHggcGFzdGVib2FyZCBpdCBjYW1lIG91dCA3ODAgd2hlcmUgdGhlIHBhZGRlZCBib3hcbiAgLy8gaXMgfjgyNywgbGVhdmluZyB0aGlzIGJveCA3NDggd2lkZSBhZ2FpbnN0IGEgNzc3IGRvY3VtZW50IOKAlCB0aGUgZWFzdCBlZGdlIHN0cmlwIGZlbGxcbiAgLy8gb3V0c2lkZSBhbmQgYG92ZXJmbG93OiBoaWRkZW5gIGNsaXBwZWQgaXQgb3V0IG9mIEhJVC1URVNUSU5HLCBub3QganVzdCBwYWludGluZy5cbiAgaW5zZXQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiB2YXIoLS16LWxheWVyLWNocm9tZSk7XG59XG5cbi5sYXllci1jaHJvbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vIGAuaW1nLWNhbnZhc2AncyBvd24gYm94LCBwbHVzIGEgdHJhbnNwYXJlbnQgYm9yZGVyIG1pcnJvcmluZyBpdHMgMXB4IG9uZSwgc28gdGhpcyBjb250ZW50XG4gIC8vIGJveCBzdGFydHMgZXhhY3RseSB3aGVyZSBgLmNhbnZhcy13b3JsZGAgaXMgbGFpZCBvdXQg4oCUIGtlZXBpbmcgdGhhdCBvZmZzZXQgaW4gQ1NTIHJhdGhlclxuICAvLyB0aGFuIGR1cGxpY2F0aW5nIGl0IGluIHRoZSBnZW9tZXRyeSBjb2RlLlxuICBpbnNldDogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiB2YXIoLS16LWxheWVyLWNocm9tZSk7XG5cbiAgPiAuaG92ZXIsXG4gID4gLmZyYW1lIHtcbiAgICAvLyBDb25zdW1lZCBieSB0aGUgaW5saW5lIGJveC1zaGFkb3cgcmluZyBvbiBgLmZyYW1lYC5cbiAgICAtLWxheWVyLWFjY2VudDogI3skY29sb3ItbGF5ZXItYWNjZW50fTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gID4gLmhvdmVyIHtcbiAgICBvdXRsaW5lOiAkbGF5ZXItaG92ZXItZnJhbWUtcHggc29saWQgJGNvbG9yLWxheWVyLWFjY2VudDtcbiAgICBvdXRsaW5lLW9mZnNldDogLSN7JGxheWVyLWhvdmVyLWZyYW1lLXB4fTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbGF5ZXItYWNjZW50LXNvZnQ7XG4gIH1cblxuICA+IC5mcmFtZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAvLyBIYW5kbGVzIFNUUkFERExFIHRoZSBmcmFtZSBlZGdlLCBjZW50cmVkIG9uIGl0LCBsaWtlIHRoZSBzbGljZSB0b29sJ3MuIFRoYXQgaXMgb25seVxuICAgIC8vIHNhZmUgYmVjYXVzZSB0aGUgY2hyb21lIHJlbmRlcnMgb3V0c2lkZSBgLmltZy1jYW52YXMtem9vbXBhbmAg4oCUIGluc2lkZSBpdCxcbiAgICAvLyBgY29udGFpbjogcGFpbnRgIGRyb3BwZWQgdGhlIG91dHNpZGUgaGFsZiBvZiBlYWNoIGhhbmRsZSBmcm9tIGhpdC10ZXN0aW5nIGFuZCBsZWZ0XG4gICAgLy8gdGhlIGNvcm5lcnMgdW5ncmFiYmFibGUgb24gYSBsYXllciB0aGF0IGZpbGxlZCB0aGUgY2FudmFzLlxuICAgIC8vXG4gICAgLy8gU2l6ZXMgYW5kIG9mZnNldHMgYXJlIHBsYWluIFNDUkVFTiBweCBzZXQgaW5saW5lIGJ5IHRoZSBjb21wb25lbnQuIFRoZXkgYXJlIG5vdFxuICAgIC8vIGNvdW50ZXItc2NhbGVkIGFueSBtb3JlLCBhbmQgdGhleSBhcmUgbm90IGNlbnRyZWQgd2l0aCBgdHJhbnNsYXRlKC01MCUpYCBlaXRoZXI6XG4gICAgLy8gdGhhdCByZXNvbHZlcyBhZ2FpbnN0IHRoZSBlbGVtZW50J3Mgb3duIHdpZHRoLCB3aGljaCBwdXQgZWRnZSBoYW5kbGVzIG9mZi1jZW50cmUgYXRcbiAgICAvLyBhbnkgem9vbSBidXQgMTAwJSBiYWNrIHdoZW4gYSBzY2FsZSB3YXMgc3RpbGwgaW52b2x2ZWQuIE9ubHkgdGhlIGN1cnNvciBkaWZmZXJzIGhlcmUuXG4gICAgLy8gSW52aXNpYmxlIGZ1bGwtbGVuZ3RoIGdyYWIgc3RyaXAgb24gZWFjaCBlZGdlIOKAlCB0aGUgc3F1YXJlIGhhbmRsZSBpcyBvbmx5IHRoZVxuICAgIC8vIHZpc3VhbCBjdWUsIHNvIHlvdSBuZXZlciBoYXZlIHRvIGFpbSBmb3IgYSAxMHB4IHRhcmdldCB0byByZXNpemUgYSBzaWRlLiBTaXRzXG4gICAgLy8gQkVMT1cgdGhlIHNxdWFyZXMgaW4gc291cmNlIG9yZGVyIHNvIHRoZSBjb3JuZXIgaGFuZGxlcyBrZWVwIHRoZWlyIHpvbmUuXG4gICAgPiAuZWRnZS1zdHJpcCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuXG4gICAgICAmLmVkZ2Utc3RyaXAtbixcbiAgICAgICYuZWRnZS1zdHJpcC1zIHsgY3Vyc29yOiBucy1yZXNpemU7IH1cblxuICAgICAgJi5lZGdlLXN0cmlwLWUsXG4gICAgICAmLmVkZ2Utc3RyaXAtdyB7IGN1cnNvcjogZXctcmVzaXplOyB9XG4gICAgfVxuXG4gICAgPiAuaGFuZGxlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1sYXllci1hY2NlbnQ7XG4gICAgICAvLyBBIHJlYWwgMXB4LCBzdGF0ZWQgb25jZSBoZXJlLiBJdCB1c2VkIHRvIGJlIHNldCBpbmxpbmUgYXMgYG1heCgwLjUsIDEvaylgIHNvIGl0XG4gICAgICAvLyB3b3VsZCBzdXJ2aXZlIHRoZSB3b3JsZCdzIHNjYWxpbmcg4oCUIGJ1dCBgYm9yZGVyLXdpZHRoYCBxdWFudGlzZXMgdG8gd2hvbGUgcGl4ZWxzLFxuICAgICAgLy8gc28gdGhhdCBjYW1lIG91dCBhbnl3aGVyZSBiZXR3ZWVuIDAuOHB4IGFuZCAzLjNweCBvbiBzY3JlZW4gZGVwZW5kaW5nIG9uIHpvb20uXG4gICAgICAvLyBPdXRzaWRlIHRoZSB3b3JsZCB0aGVyZSBpcyBub3RoaW5nIHRvIGNvbXBlbnNhdGUgZm9yLlxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgLy8gUHJldmVudCBicm93c2VyIHNjcm9sbC96b29tIGdlc3R1cmVzIGZyb20gc3RlYWxpbmcgdGhlIGRyYWcgb24gdG91Y2guXG4gICAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG5cbiAgICAgICYuaGFuZGxlLW53LFxuICAgICAgJi5oYW5kbGUtc2UgeyBjdXJzb3I6IG53c2UtcmVzaXplOyB9XG5cbiAgICAgICYuaGFuZGxlLW5lLFxuICAgICAgJi5oYW5kbGUtc3cgeyBjdXJzb3I6IG5lc3ctcmVzaXplOyB9XG5cbiAgICAgICYuaGFuZGxlLW4sXG4gICAgICAmLmhhbmRsZS1zIHsgY3Vyc29yOiBucy1yZXNpemU7IH1cblxuICAgICAgJi5oYW5kbGUtZSxcbiAgICAgICYuaGFuZGxlLXcgeyBjdXJzb3I6IGV3LXJlc2l6ZTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE5hbWUgYmFkZ2U6IHRoZSByZWFsIGRpc2FtYmlndWF0b3Igd2hlbiBzZXZlcmFsIHNpbWlsYXIgbGF5ZXJzIG92ZXJsYXAgYW5kIHRoZVxuICAvLyBvdXRsaW5lcyBhbG9uZSBjYW4ndCB0ZWxsIHlvdSB3aGljaCBvbmUgeW91IGhhdmUuIEFuY2hvcmVkIGluc2lkZSB0aGUgYm94J3MgdG9wLWxlZnQsXG4gIC8vIGluIHNjcmVlbiBweCDigJQgbm8gY291bnRlci1zY2FsZSBuZWVkZWQgbm93IHRoZSBjaHJvbWUgaXMgb3V0c2lkZSB0aGUgem9vbS9wYW4gd29ybGQuXG4gIC8vIEpTIGFkZHMgYSB0cmFuc2xhdGUgdGhhdCBjbGVhcnMgdGhlIE5XIGhhbmRsZS5cbiAgLmxhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gICAgcGFkZGluZzogMXB4IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbGF5ZXItYWNjZW50O1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXhzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuLy8gRG9jdW1lbnQgYm91bmRhcnk6IGZyYW1lcyB0aGUgY2FudmFzIChkb2N1bWVudCkgc28gaW4tYm91bmRzIHZzIG91dC1vZi1ib3VuZHNcbi8vIGlzIG9idmlvdXMuIFNpdHMgYWJvdmUgdGhlIGxpdmUgY29tcG9zaXRlLCBiZWxvdyB0aGUgbW92ZS1jYXB0dXJlIHN1cmZhY2UuXG4uY2FudmFzLWJvdW5kYXJ5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgLy8gQSBSSU5HLCBub3QgYSBgYm9yZGVyYC4gVGhpcyBlbGVtZW50IHNpdHMgaW5zaWRlIHRoZSB6b29tL3BhbiB3b3JsZCwgc28gaXRzIG91dGxpbmUgaXNcbiAgLy8gc2NhbGVkIHdpdGggZXZlcnl0aGluZyBlbHNlIGFuZCBoYXMgdG8gYmUgY291bnRlci1zY2FsZWQgYnkgMS9rIHRvIHN0YXkgb25lIHNjcmVlblxuICAvLyBwaXhlbCDigJQgYnV0IGBib3JkZXItd2lkdGhgIGlzIFFVQU5USVNFRCBUTyBXSE9MRSBQSVhFTFMsIHNvIGFza2luZyBmb3IgNi45NTVweCB5aWVsZHNcbiAgLy8gNnB4IGFuZCB0aGUgbGluZSBsYW5kcyBhdCAwLjg2IHNjcmVlbiBweCwgdGhpbiBlbm91Z2ggYXQgc29tZSB6b29tIGxldmVscyB0byB3YXNoIG91dFxuICAvLyBlbnRpcmVseS4gRWRnZXMgdGhlbiB3aW5rIGluIGFuZCBvdXQgaW5kZXBlbmRlbnRseSB3aGlsZSB6b29taW5nLiBBIGJveC1zaGFkb3cgc3ByZWFkXG4gIC8vIHRha2VzIHRoZSBmcmFjdGlvbmFsIHZhbHVlIGFzIGdpdmVuLCB3aGljaCBpcyB0aGUgc2FtZSByZWFzb24gdGhlIGxheWVyIHNlbGVjdGlvblxuICAvLyBmcmFtZSBpcyBkcmF3biBhcyBhIHJpbmcuIFdpZHRoIGNvbWVzIGZyb20gYC0tY2FudmFzLWJvdW5kYXJ5LXdgIChzZXQgaW5saW5lLCBpdCBpc1xuICAvLyB0aGUgb25seSB0aGluZyB0aGF0IGtub3dzIHRoZSBjdXJyZW50IHpvb20pOyB0aGUgY29sb3VyIHN0YXlzIGhlcmUuXG4gIGJveC1zaGFkb3c6IDAgMCAwIHZhcigtLWNhbnZhcy1ib3VuZGFyeS13LCAxcHgpICRjb2xvci1ncmVlbi1saW5rO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogdmFyKC0tei1sYXllci1jYW52YXMtYm91bmRhcnkpO1xufVxuXG4vLyBIaWRkZW4gZmlsZSBpbnB1dHMgKHVwbG9hZCB0cmlnZ2VyICsgYWRkLWxheWVyKTogdGhlIHZpc2libGUgZHJvcHpvbmUvcGFuZWxcbi8vIGJ1dHRvbnMgcHJveHkgdGhlIGNsaWNrOyB0aGUgcmF3IDxpbnB1dCB0eXBlPWZpbGU+IHN0YXlzIG91dCBvZiB0aGUgbGF5b3V0LlxuLmhpZGRlbi1maWxlLWlucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gSG9tZS1zY3JlZW4gdXBsb2FkOiB0aGUgd2hvbGUgY29udGFpbmVyIElTIHRoZSB0cmlnZ2VyICsgZHJhZy1hbmQtZHJvcCB6b25lLlxuLnVwbG9hZC1kcm9wem9uZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMTRweDtcbiAgcGFkZGluZzogNDBweCAyNHB4O1xuICBtaW4taGVpZ2h0OiAzNDBweDtcbiAgLy8gSGFpcmxpbmUsIG5vdCBhIGhlYXZ5IDJweCBydWxlOiBhdCB0aGlzIHNpemUgdGhlIGRyb3B6b25lIGlzIGFscmVhZHkgdW5taXN0YWthYmxlXG4gIC8vIGZyb20gaXRzIHNjYWxlIGFuZCBpdHMgXCJkcmFnICYgZHJvcFwiIGNvcHksIHNvIHRoZSBib3JkZXIgb25seSBuZWVkcyB0byBkZXNjcmliZSB0aGVcbiAgLy8gZWRnZSDigJQgYSB0aGljayBkYXNoZWQgZnJhbWUgcmVhZHMgYXMgZGVjb3JhdGlvbiBhbmQgZG9taW5hdGVzIGFuIG90aGVyd2lzZSBlbXB0eSBwYWdlLlxuICBib3JkZXI6IDFweCBkYXNoZWQgJGNvbG9yLWJvcmRlci1taWQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDEyMG1zIGVhc2UsIGJhY2tncm91bmQgMTIwbXMgZWFzZTtcblxuICAvLyBXaG9sZS1jb250YWluZXIgaGlnaGxpZ2h0IG9uIGhvdmVyIEFORCB3aGlsZSBhIGZpbGUgaXMgZHJhZ2dlZCBvdmVyLlxuICAmOmhvdmVyLFxuICAmLmRyYWctYWN0aXZlIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1ncmVlbi1saW5rO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmVlbi10aW50LWJnO1xuICB9XG5cbiAgLnVwbG9hZC1oaW50IHtcbiAgICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtbXV0ZWQ7XG4gIH1cbn1cblxuLy8gQ2FudmFzLXNpemUgc2V0dGluZ3MgcG9wb3ZlciAoZ2VhciBidXR0b24pLlxuLmNhbnZhcy1zZXR0aW5ncy1wb3BvdmVyIHtcbiAgLmNhbnZhcy1zZXR0aW5ncy1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLmNhbnZhcy1zZXR0aW5ncy1jbG9zZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDJweCA3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAuY2FudmFzLXNldHRpbmdzLW5vdGUge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14cztcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtbXV0ZWQ7XG4gICAgbWFyZ2luOiA0cHggMCAwO1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gIH1cblxuICAuY2FudmFzLXNldHRpbmdzLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luOiA4cHggMDtcblxuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuICAgICAgZ2FwOiAycHg7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgd2lkdGg6IDcycHg7XG4gICAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgIH1cblxuICAgIC5jYW52YXMtc2V0dGluZ3MteCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5jYW52YXMtc2V0dGluZ3MtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDZweDtcbiAgfVxufVxuXG4vLyBTbGljZS9Nb3ZlIHRvb2wgc3dpdGNoZXIg4oCUIGEgc2VnbWVudGVkIGNvbnRyb2wgd2l0aCBhbiB1bm1pc3Rha2FibGUgYWN0aXZlIHRvb2wuXG4udG9vbC1zd2l0Y2gge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1taWQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAudG9vbC1zd2l0Y2gtYnRuIHtcbiAgICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLW1pZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itc3VyZmFjZS1tdXRlZDtcbiAgICBjb2xvcjogIzQ0NDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ncmVlbi1saW5rO1xuICAgICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6ICRkaXNhYmxlZC1vcGFjaXR5O1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gWm9vbSB0b29sYmFyOiBrZWVwIHRoZSB6b29tIHBlcmNlbnQgY29tcGFjdCBhbmQgYWNjZXNzaWJsZS5cbi56b29tLXBlcmNlbnQtd3JhcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDAgMnB4O1xuICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gIGNvbG9yOiAkY29sb3ItdGV4dC11aTtcbn1cblxuLnpvb20tcGVyY2VudC1pbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDRjaDtcbiAgbWF4LXdpZHRoOiA2Y2g7XG4gIGhlaWdodDogJGNvbnRyb2wtaGVpZ2h0LW1kO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAkY29sb3ItdGV4dC1zdHJvbmc7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXN1cmZhY2U7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoMzUsIDE0NywgMTE1LCAwLjM1KTtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB9XG59XG5cbi56b29tLXBlcmNlbnQtd3JhcC5pcy1hY3RpdmUgLnpvb20tcGVyY2VudC1pbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYmFja2dyb3VuZDogJGNvbG9yLXN1cmZhY2U7XG59XG5cbi5oaXN0b3J5LW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNjBtcyBlYXNlO1xuICB6LWluZGV4OiA5OTk4O1xuXG4gICYub3BlbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxufVxuXG4uaGlzdG9yeS1kcmF3ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiBtaW4oMzYwcHgsIDkydncpO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlYWVhZWE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDIlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE4MG1zIGVhc2U7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgJi5vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuLmhpc3RvcnktZHJhd2VyLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNlYWVhZWE7XG59XG5cbi5oaXN0b3J5LWRyYXdlci10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5oaXN0b3J5LWNsb3NlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VhZWFlYTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHggOHB4O1xufVxuXG4uaGlzdG9yeS1kcmF3ZXItc3VidGl0bGUge1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjZWFlYWVhO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xufVxuXG4uaGlzdG9yeS1kcmF3ZXItc3VidGl0bGUtbGVmdCB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmhpc3RvcnktZHJhd2VyLXN1YnRpdGxlLXJpZ2h0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG59XG5cbi5oaXN0b3J5LWxpc3Qge1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogOHB4IDhweCAxMnB4O1xufVxuXG4uaGlzdG9yeS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlcjogMXB4IGRvdHRlZCAjZWFlYWVhO1xuICBtYXJnaW46IDAgMCA4cHggMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaGlzdG9yeS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbn1cblxuLmhpc3RvcnktaXRlbTpmb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCAjMjM5MzczO1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xufVxuXG4uaGlzdG9yeS1pdGVtLmN1cnJlbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMjM5MzczO1xuICBiYWNrZ3JvdW5kOiAjZjBmYmY3O1xufVxuXG4uaGlzdG9yeS1pdGVtLmZ1dHVyZSB7XG4gIG9wYWNpdHk6IDAuNTU7XG59XG5cbi5oaXN0b3J5LWl0ZW0uZnV0dXJlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuLmhpc3RvcnktaXRlbS5yb290IC5oaXN0b3J5LXByaW1hcnkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8vIFNoYXJlZCBcImNoaXBcIiBzdHlsZSB1c2VkIGFjcm9zcyBzbWFsbCBVSSBiYWRnZXMvYnV0dG9ucy5cbiV1aS1jaGlwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlYWVhZWE7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGNvbG9yOiAjNjY2O1xufVxuXG4uaGlzdG9yeS1pbmRleCB7XG4gIEBleHRlbmQgJXVpLWNoaXA7XG4gIHdpZHRoOiAyMnB4O1xuICBmbGV4OiAwIDAgMjJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4vLyBBdXRoIG1vZGFsIGNsb3NlIGJ1dHRvbiB1c2VzIHRoZSBzYW1lIGJhc2UgXCJjaGlwXCIgc3R5bGluZyBhcyBoaXN0b3J5IGluZGljZXMuXG4uYXV0aC1tb2RhbC1jbG9zZSB7XG4gIEBleHRlbmQgJXVpLWNoaXA7XG59XG5cbi5oaXN0b3J5LXRodW1iIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VhZWFlYTtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgZmxleDogMCAwIDQ0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGltZyB7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbiV0aHVtYi1lbXB0eS1iZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgNDVkZWcsXG4gICAgI2Y3ZjdmNyxcbiAgICAjZjdmN2Y3IDZweCxcbiAgICAjZmZmZmZmIDZweCxcbiAgICAjZmZmZmZmIDEycHhcbiAgKTtcbn1cblxuLmhpc3RvcnktdGh1bWItZW1wdHkge1xuICBAZXh0ZW5kICV0aHVtYi1lbXB0eS1iZztcbn1cblxuLmhpc3RvcnktdGV4dCB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmhpc3RvcnktcHJpbWFyeSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uaGlzdG9yeS1zZWNvbmRhcnkge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNDQ0O1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubXktc2xpY2VzLWxpc3Qtd3JhcCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5teS1zbGljZXMtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbn1cblxuLm15LXNsaWNlcy1zdW1tYXJ5IHtcbiAgbWFyZ2luLXRvcDogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXI6IDFweCBkb3R0ZWQgI2VhZWFlYTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXktc2xpY2VzLXN1bW1hcnktdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIG1hcmdpbi1ib3R0b206IDExcHg7XG59XG5cbi5teS1zbGljZXMtc3VtbWFyeS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgY29sb3I6ICMzMzM7XG59XG5cbi5teS1zbGljZXMtc3VtbWFyeS1zZXAge1xuICBjb2xvcjogIzc3NztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgNnB4O1xufVxuXG4ubXktc2xpY2VzLXN1bW1hcnktZnVuIHtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNTU1O1xufVxuXG4ubXktc2xpY2VzLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlM2UzZTM7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2Y3OyAvLyBtYXRjaCBoaXN0b3J5IGhvdmVyXG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgIzIzOTM3MzsgLy8gbWF0Y2ggaGlzdG9yeSBmb2N1c1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIH1cbn1cblxuLm15LXNsaWNlcy1pdGVtIC5oaXN0b3J5LWluZGV4IHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLm15LXNsaWNlcy10aHVtYiB7XG4gIHdpZHRoOiA1NnB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJhY2tncm91bmQ6ICNmM2YzZjM7XG4gIGZsZXg6IDAgMCA1NnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMjM5MzczO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIH1cblxuICBpbWcge1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgfVxufVxuXG4ubXktc2xpY2VzLXRodW1iLWVtcHR5IHtcbiAgQGV4dGVuZCAldGh1bWItZW1wdHktYmc7XG59XG5cbi5teS1zbGljZXMtdGV4dCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLm15LXNsaWNlcy12ZXJzaW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzY2Njtcbn1cblxuLm15LXNsaWNlcy1wcmltYXJ5IHtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLW1kO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teS1zbGljZXMtc2Vjb25kYXJ5IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzQ0NDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm15LXNsaWNlcy1hY3Rpb25zIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5teS1zbGljZXMtYWN0aW9uIHtcbiAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG59XG5cbiNtZW51IHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2VhZWFlYTtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjZWFlYWVhO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA0cHg7XG59XG5cbiN0b29sLWJveCxcbiNhY3Rpb25zIHtcbiAgcGFkZGluZzogNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiN0b29sLWJveCB7XG4gIC8vIExlYXZlIGEgZml4ZWQgY29sdW1uIGZvciAjYWN0aW9ucyBzbyB0b29sYmFyIGNvbnRyb2xzIG5ldmVyIHNpdCB1bmRlciBDaG9wLlxuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxNTBweCk7XG4gIGZvbnQtc2l6ZTogMTVweDtcblxuICAvLyBUd28gc3RhY2tlZCByb3dzOiBwcmltYXJ5IGFjdGlvbnMgKEFkZCBOZXcgfCBTbmFwIHwgQ2xlYXIgQWxsIHwgSEVMUCkgdGhlbiB0aGVcbiAgLy8gbmV3ZXIvc2Vjb25kYXJ5IGFjdGlvbnMgKFVuZG8sIFJlZG8sIEhpc3RvcnksIHpvb20sIHRyYW5zZm9ybSkuIEVhY2ggcm93IHdyYXBzXG4gIC8vIGluZGVwZW5kZW50bHkgd2hlbiBzcGFjZSBpcyB0aWdodC4gYWxpZ24taXRlbXM6ZmxleC1zdGFydCBrZWVwcyBib3RoIHJvd3MgbGVmdC1cbiAgLy8gYWxpZ25lZCAoYSBjZW50ZXJlZCBjb2x1bW4gd291bGQgaW5kZW50IHRoZSBuYXJyb3dlciBwcmltYXJ5IHJvdykuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcblxuICAudG9vbC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAuc3dpdGNoLWJveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcblxuICAgIC8vIE92ZXJyaWRlIGxlZ2FjeSBgY3NzL21haW4ubWluLmNzc2Agd2hpY2ggcG9zaXRpb25zIGAuc3dpdGNoYCBzbGlnaHRseSB1cHdhcmQgKHRvcDotNHB4KS5cbiAgICAuc3dpdGNoIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBQcm8tZ2F0ZWQgdG9nZ2xlIChlLmcuIFNuYXAgTW9kZSkgc2hvd24gdG8gbm9uLVBybyB0aWVyczogdmlzaWJseSBpbmVydC5cbiAgLnN3aXRjaC0tZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxufVxuXG4jYWN0aW9ucyB7XG4gIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICB3aWR0aDogYXV0bztcbiAgZmxleDogMCAwIGF1dG87XG4gIG1pbi13aWR0aDogMTQwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmbGV4LXNocmluazogMDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLmFjdGl2ZS1hbmltYXRpb24ge1xuICBhbmltYXRpb24tbmFtZTogTU9WRS1CRztcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiA0cztcblx0YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuXHRhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cblxuLmxvZ28ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHZpb2xldCxpbmRpZ28sIzAwZixncmVlbiwjZmYwLG9yYW5nZSxyZWQsI2QwNDM0MywjM2Q3NzNkLCNkMGFlMGIsIzM5NjFhYiwjYTIyZWEyKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAzMTQlIDMxNCU7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBhbmltYXRpb246IHJhaW5ib3cgMTFzIGVhc2UgaW5maW5pdGU7XG5cbiAgLy8gVGhlIGVkaXRvcidzIG90aGVyIG5ldmVyLWVuZGluZyBhbmltYXRpb24uIEh1ZSBjeWNsaW5nIHJhdGhlciB0aGFuIHRyYXZlbCwgc28gaXQgaXMgbWlsZGVyXG4gIC8vIHRoYW4gdGhlIGFudHMsIGJ1dCBcInBlcm1hbmVudCBtb3Rpb25cIiBpcyB0aGUgdGhpbmcgdGhlIHNldHRpbmcgYXNrcyB1cyB0byBzdG9wLiBUaGUgbG9nb1xuICAvLyBrZWVwcyBpdHMgZ3JhZGllbnQ7IGl0IGp1c3QgaG9sZHMgc3RpbGwuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8vIFNoYXJlZCBoZWFkaW5nIHNpemluZyBoZWxwZXIgKHVzZSBhbG9uZ3NpZGUgb3RoZXIgY2xhc3NlcyBsaWtlIGAubG9nb2ApLlxuLmFpdGNoLW9uZSB7XG4gIGZvbnQtc2l6ZTogMzZweDtcbn1cblxuLy8gU2hhcmVkIGlucHV0IHN0eWxlcyBmb3IgXCJjb21tYW5kaW5nXCIgYXV0aC9hZG1pbiBVSXMuXG4uY29tbWFuZGluZy1pbnB1dCxcbi5zdXBlci1jb21tYW5kaW5nLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItZGVmYXVsdDtcbiAgYmFja2dyb3VuZDogJGNvbG9yLXN1cmZhY2U7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbn1cblxuLmNvbW1hbmRpbmctaW5wdXQge1xuICBoZWlnaHQ6ICRjb250cm9sLWhlaWdodC1tZDtcbn1cblxuLnN1cGVyLWNvbW1hbmRpbmctaW5wdXQge1xuICBoZWlnaHQ6IDYwcHg7XG59XG5cbi8vIFNpbXBsZSBncmVlbiBcImxpbmsgYnV0dG9uXCIgc3R5bGUgKHVzZWQgYWNyb3NzIFVJKS5cbi5hdXRoLWxpbmsge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAkY29sb3ItZ3JlZW4tbGluaztcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1jdGE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYXV0aC1saW5rOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi8vIEdyZWVuIGxpbmstc3R5bGUgYnV0dG9uICh1c2VkIGZvciBpbmxpbmUgQ1RBcyBsaWtlIFwiU2lnbiBVcCFcIilcbi5ncmVlbi1saW5rLWJ0biB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6ICRjb2xvci1ncmVlbi1saW5rO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWN0YTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmdyZWVuLWxpbmstYnRuOmhvdmVyIHtcbiAgY29sb3I6ICRjb2xvci1ncmVlbi1saW5rLWhvdmVyO1xufVxuXG4vLyBQcmltYXJ5IGJ1dHRvbiBzdHlsZSAoc2hhcmVkKS5cbi5wcmltYXJ5LWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMTZweCAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjMjM5MzczO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWE2ZTU1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sZztcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1oZWF2eTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5wcmltYXJ5LWJ0bjpob3ZlcjplbmFibGVkIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuLWxpbmstaG92ZXI7XG59XG5cbi5wcmltYXJ5LWJ0bjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8vIFNoYXJlZCBcInNpbXBsZSBidXR0b24gcm93XCIgbGF5b3V0ICh1c2VkIGluIGRldiBwYW5lbHMgKyBhdXRoIGZsb3dzKS5cbi5hdXRoLWJ0bi1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG5cblxuLyogU3dpdGNoIHN0eWxlcyBhZGFwdGVkIGZyb20gcHJvdmlkZWQgQ1NTICovXG4uc3dpdGNoIGlucHV0IHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnNsaWRlciB7XG4gIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XG4gIHRyYW5zaXRpb246IC40cztcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgbGVmdDogMnB4O1xuICAgIGJvdHRvbTogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XG4gICAgdHJhbnNpdGlvbjogLjRzO1xuICB9XG5cbiAgJi5yb3VuZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG4gIH1cbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXIge1xuICAvLyBBbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgYmFja2dyb3VuZC1jb2xvcjogIzIzOTM3Mztcbn1cblxuaW5wdXQ6Zm9jdXMgKyAuc2xpZGVyIHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIGJveC1zaGFkb3c6IDAgMCAxcHggIzIzOTM3Mztcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXI6YmVmb3JlIHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XG59XG5cbiNzd2l0Y2gtc3RhdHVzIHtcbiAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gIG1pbi13aWR0aDogJGNvbnRyb2wtaGVpZ2h0LW1kO1xufVxuXG4udG9vbC1zZXAge1xuICBwYWRkaW5nOiAwIDNweDtcbiAgY29sb3I6ICNhZWFlYWU7XG4gIGxpbmUtaGVpZ2h0OiAkY29udHJvbC1oZWlnaHQtbWQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8vIE1vYmlsZSBzdHlsZXNcbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAvLyBUb29sYmFyOiBmdWxsIHdpZHRoLCBjZW50ZXJlZFxuICAjbWVudSB7XG4gICAgLy8gQWxzbyBzZXQgaW4gYF9iYXNlbGluZS5zY3NzYDsgdGhpcyByZXN0YXRlbWVudCB3aW5zIG9uIGxvYWQgb3JkZXIuXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAjdG9vbC1ib3gge1xuICAgIC8vIEFsc28gc2V0IGluIGBfYmFzZWxpbmUuc2Nzc2A7IHRoaXMgcmVzdGF0ZW1lbnQgd2lucyBvbiBsb2FkIG9yZGVyLlxuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICNhY3Rpb25zIHtcbiAgICAvLyBBbHNvIHNldCBpbiBgX2Jhc2VsaW5lLnNjc3NgOyB0aGlzIHJlc3RhdGVtZW50IHdpbnMgb24gbG9hZCBvcmRlci5cbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvLyBDYW52YXM6IGFkZCBtYXJnaW5zIGZvciBlYXNpZXIgZWRnZSBpbnRlcmFjdGlvbiAocGhvbmUgY2FzZSBmaW5nZXIgcmVhY2gpXG4gICN0aGUtZ3JpZCB7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICB9XG59XG5cblxuLy8gVGhlIERPQ1VNRU5UJ3MgdHJhbnNwYXJlbmN5IGNoZWNrZXI6IEhBTEYgdGhlIHNpemUgb2YgdGhlIG91dC1vZi1ib3VuZHMgb25lLCBhbmQgc3Ryb25nZXIuXG4vL1xuLy8gU2l0cyBpbnNpZGUgYC5jYW52YXMtd29ybGRgIGF0IGBpbnNldDogMGAsIHNvIGl0IGNvdmVycyBleGFjdGx5IHRoZSBkb2N1bWVudCBhbmQgY29tcHV0ZXMgbm9cbi8vIGdlb21ldHJ5IG9mIGl0cyBvd24g4oCUIGV2ZXJ5IGdlb21ldHJ5IGJ1ZyBpbiB0aGlzIGNhbnZhcyBjYW1lIGZyb20gYSByZWN0YW5nbGUgaW52ZW50aW5nIGl0c1xuLy8gb3duIGlkZWEgb2Ygd2hlcmUgdGhlIGRvY3VtZW50IGlzLCBhbmQgaW5oZXJpdGluZyBpdCBmcm9tIHRoZSBlbGVtZW50IHRoYXQgYWxyZWFkeSBrbm93cyBpc1xuLy8gaG93IG5vdCB0byBhZGQgYW5vdGhlci5cbi8vXG4vLyBgYmFja2dyb3VuZC1zaXplYCBpcyBzZXQgaW5saW5lIGFuZCBjb3VudGVyLXNjYWxlZCBieSAxL2s7IGAuY2FudmFzLXdvcmxkYCBjYXJyaWVzIHRoZVxuLy8gem9vbS9wYW4gbWF0cml4LCBzbyB3aXRob3V0IHRoYXQgdGhlIHNxdWFyZXMgd291bGQgZ3JvdyBhbmQgc2hyaW5rIHdpdGggem9vbSBhbmQgc3RvcFxuLy8gcmVhZGluZyBhcyBhIGJhY2tkcm9wLiBgYmFja2dyb3VuZC1wb3NpdGlvbmAgaXMgc2V0IGlubGluZSBmb3IgdGhlIHNhbWUgcmVhc29uIOKAlCBzZWUgdGhlXG4vLyB3YXJuaW5nIG9uIHRoZSBydWxlLiAoQW4gZWFybGllciB2ZXJzaW9uIG9mIHRoaXMgY29tbWVudCByZWFzb25lZCB0aGF0IGJlaW5nIGluIGEgc2NhbGVkXG4vLyBzcGFjZSBtZWFudCB0aGUgb2Zmc2V0IHNob3VsZCBiZSBhIFBFUkNFTlRBR0UuIFRoYXQgaXMgZXhhY3RseSBiYWNrd2FyZHMsIGFuZCBpdCBpcyB3aGF0XG4vLyBwcm9kdWNlZCB0aGUgbW9pcsOpOiB0aGUgb2Zmc2V0IG11c3QgYmUgaGFsZiBhIFRJTEUsIGFuZCB0aGUgdGlsZSBpcyBhIHBpeGVsIGxlbmd0aC4pXG4uZ3JpZC1kb2N1bWVudC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAvLyBJZGVudGljYWwgdG8gdGhlIGNoZWNrZXIgdGhlIGNhbnZhcyBoYXMgYWx3YXlzIGhhZDogc2FtZSBjb2xvdXIsIHNhbWUgMThweCB0aWxlLiBUaGUgb25seVxuICAvLyB0aGluZyB0aGF0IGNoYW5nZWQgaXMgV0hFUkUgaXQgaXMgcGFpbnRlZCDigJQgb24gdGhlIGRvY3VtZW50IHJhdGhlciB0aGFuIG9uIHRoZSB2aWV3cG9ydCDigJRcbiAgLy8gc28gdGhhdCB0aGUgb3V0LW9mLWJvdW5kcyBhcmVhIGNhbiBsb29rIGRpZmZlcmVudCB3aXRob3V0IHRoaXMgbG9va2luZyBkaWZmZXJlbnQgYXQgYWxsLlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItY2FudmFzLWNoZWNrZXItYmc7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDAsIDAsIDAsIDAuMDYpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA3NSUsIHJnYmEoMCwgMCwgMCwgMC4wNikgNzUlLCByZ2JhKDAsIDAsIDAsIDAuMDYpKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMCwgMCwgMCwgMC4wNikgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDc1JSwgcmdiYSgwLCAwLCAwLCAwLjA2KSA3NSUsIHJnYmEoMCwgMCwgMCwgMC4wNikpO1xuICAvLyDimqDvuI8gYGJhY2tncm91bmQtcG9zaXRpb25gIGlzIHNldCBpbmxpbmUgYWxvbmdzaWRlIGBiYWNrZ3JvdW5kLXNpemVgLCBOT1QgaGVyZS4gVGhlIHR3b1xuICAvLyBncmFkaWVudHMgaW50ZXJsb2NrIGludG8gYSBjaGVja2VyIG9ubHkgd2hlbiB0aGUgc2Vjb25kIGlzIG9mZnNldCBieSBleGFjdGx5IEhBTEYgQSBUSUxFXG4gIC8vIGluIHBpeGVscy4gQSBwZXJjZW50YWdlIGlzIGhhbGYgdGhlIEVMRU1FTlQsIHdoaWNoIGlzIGEgZGlmZmVyZW50IG51bWJlciBlbnRpcmVseSDigJQgdXNpbmdcbiAgLy8gYDUwJSA1MCVgIHByb2R1Y2VkIGEgZGlhZ29uYWwgbGF0dGljZSBtb2lyw6kgaW5zdGVhZCBvZiBzcXVhcmVzLiBBbmQgYmVjYXVzZSB0aGUgdGlsZSBpc1xuICAvLyBjb3VudGVyLXNjYWxlZCBieSAxL2ssIGhhbGYgb2YgaXQgaXMgb25seSBrbm93biBhdCByZW5kZXIgdGltZS5cbn1cblxuLy8gVGhlIGNvbXBvc2l0ZSBoYXMgdG8gYmUgbGlmdGVkIG92ZXIgdGhlIGJhY2tkcm9wIEVYUExJQ0lUTFksIGJlY2F1c2UgdGhlIGJhY2tkcm9wIGFib3ZlIGlzXG4vLyBgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MGAgd2hpbGUgYCNzbGljZUltZ2AgaXMgYW4gb3JkaW5hcnkgaW4tZmxvdyBpbWFnZS4gQ1NTIHBhaW50c1xuLy8gbm9uLXBvc2l0aW9uZWQgaW4tZmxvdyBjb250ZW50IEJFRk9SRSBwb3NpdGlvbmVkL3N0YWNraW5nLWNvbnRleHQgY29udGVudCwgc28gYSBzdGF0aWNcbi8vIGAjc2xpY2VJbWdgIHJlbmRlcnMgVU5ERVJORUFUSCB0aGUgY2hlY2tlciBubyBtYXR0ZXIgdGhhdCBpdCBjb21lcyBsYXRlciBpbiB0aGUgRE9NLlxuLy9cbi8vIEl0IGxvb2tlZCBmaW5lIG9ubHkgYnkgYWNjaWRlbnQ6IGAuYmx1cnJlZGAgKGBmaWx0ZXI6IGJsdXIoM3B4KWAsIGFwcGxpZWQgd2hpbGUgc2xpY2VzXG4vLyBleGlzdCkgY3JlYXRlcyBhIHN0YWNraW5nIGNvbnRleHQsIHdoaWNoIHByb21vdGVkIHRoZSBpbWFnZSBpbnRvIHRoZSBzYW1lIHBhaW50aW5nIHN0ZXAgYXNcbi8vIHRoZSBiYWNrZHJvcCBhbmQg4oCUIGJlaW5nIGxhdGVyIGluIHRyZWUgb3JkZXIg4oCUIG92ZXIgaXQuIFNvIHRoZSBwaWN0dXJlIHdhcyByaWRpbmcgb24gYSBibHVyXG4vLyBmaWx0ZXIgZm9yIGl0cyBzdGFja2luZy4gYENsZWFyIEFsbGAgZW1wdGllcyB0aGUgc2xpY2VzLCBgLmJsdXJyZWRgIGNvbWVzIG9mZiwgdGhlIHN0YWNraW5nXG4vLyBjb250ZXh0IGdvZXMgd2l0aCBpdCBhbmQgdGhlIGltYWdlIGRyb3BwZWQgYmVoaW5kIHRoZSBjaGVja2VyOiB0aGUgY2FudmFzIHdlbnQgZnVsbHlcbi8vIHRyYW5zcGFyZW50IHdoaWxlIHRoZSBsYXllciwgaXRzIHRodW1ibmFpbCBhbmQgdGhlIGNvbXBvc2l0ZSBibG9iIHdlcmUgYWxsIHN0aWxsIHBlcmZlY3RseVxuLy8gaW50YWN0LiBUaGF0IGlzIHRoZSBcIkNsZWFyIEFsbCBoaWRlcyB0aGUgbGF5ZXIgaW1hZ2VcIiByZXBvcnQuXG4vL1xuLy8gYHotaW5kZXg6IDBgIGFuZCBOT1QgYSBwb3NpdGl2ZSB2YWx1ZSwgZGVsaWJlcmF0ZWx5OiBpdCBtdXN0IHN0YXkgQkVMT1cgdGhlIHNsaWNlIG92ZXJsYXlcbi8vIChgLnNlbGVjdC1hcmVhcy1vdmVybGF5YCwgYHotaW5kZXg6YXV0b2AsIGxhdGVyIGluIHRyZWUgb3JkZXIpLCB0aGUgbGl2ZSBsYXllciBjYW52YXMgKDQwKVxuLy8gYW5kIHRoZSBkb2N1bWVudCBib3VuZGFyeSAoNDYpLiBNYXRjaGluZyB0aGUgYmFja2Ryb3AncyBvd24gMCBhbmQgd2lubmluZyBvbiB0cmVlIG9yZGVyIGlzXG4vLyBleGFjdGx5IHRoZSBzdGFja2luZyBgLmJsdXJyZWRgIHVzZWQgdG8gcHJvZHVjZSDigJQgdGhlIHBpY3R1cmUgaXMgYWJvdmUgdGhlIGNoZWNrZXIsIGFuZFxuLy8gZXZlcnl0aGluZyBkcmF3biBvbiB0b3Agb2YgdGhlIHBpY3R1cmUgc3RpbGwgaXMuXG4jc2xpY2VJbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG59XG4iLCIvKipcbiAqIEJhc2VsaW5lIHN0eWxlc2hlZXQg4oCUIHRoZSBlbGVtZW50IHJlc2V0IGFuZCB0aGUgc2hhcmVkIGNvbXBvbmVudCBzdHlsZXMgdGhlIHdob2xlIGFwcFxuICogaXMgZHJhd24gb24gdG9wIG9mLiBMb2FkZWQgZnJvbSBgQXBwLnNjc3NgIEJFRk9SRSBldmVyeXRoaW5nIGVsc2UsIHNvIGFueSBydWxlIGhlcmUgY2FuXG4gKiBiZSBvdmVycmlkZGVuIHNpbXBseSBieSByZXN0YXRpbmcgaXQgbGF0ZXIuXG4gKlxuICog4pqg77iPIFRISVMgRklMRSBJUyBOT1QgREVBRCBXRUlHSFQsIGFuZCBpdCBpcyBub3Qgb3B0aW9uYWwuIEl0IHdhcyBjYWxsZWRcbiAqIGBfbGVnYWN5TWFpbk1pbi5zY3NzYCB1bnRpbCAyMDI2LTA4LTEyIGFuZCB0aGF0IG5hbWUgY29zdCByZWFsIHRpbWU6IGl0IHJlYWRzIGFzXG4gKiBkaXNwb3NhYmxlIHYxIGNydWZ0LCBzbyBwZW9wbGUga2VwdCBwcm9wb3NpbmcgdG8gZGVsZXRlIGl0LlxuICpcbiAqIE1lYXN1cmVkIGJlZm9yZSByZW5hbWluZyBpdCDigJQgcmVtb3ZpbmcgdGhlIGltcG9ydCBjaGFuZ2VzICoqMTMyNSBvZiAxODI2IGVsZW1lbnQtc3RhdGVzLFxuICogNzMlIG9mIHRoZSByZW5kZXJlZCBhcHAqKjogYm94IGdlb21ldHJ5LCBoZWlnaHRzLCBtYXJnaW5zLCBsaXN0IHN0eWxlcywgdGFibGUgc3BhY2luZy5cbiAqIGAuc2xpZGVyYCwgYC5zd2l0Y2hgLCBgLnNlbGVjdC1hcmVhcy0qYCwgYC50aHVtYkRpdmAsIGAucmVzdWx0LXdyYXBgLCBgLmRvd25sb2FkLWFsbGAsXG4gKiBgLmNvbnRhaW5lcmAsIGAjbWVudWAsIGAjYWN0aW9uc2AsIGAjdG9vbC1ib3hgLCBgLmJ0bi1jaG9wYCwgYC50bXBJbWdgLCBgLmRlbGV0ZS1hcmVhYCxcbiAqIGAuYmx1cnJlZGAgYW5kIHRoZSBgYnV0dG9uLmJ0bi1hZGQvLmJ0bi1jbGVhcjo6YmVmb3JlYCBpY29ucyBhcmUgc3R5bGVkIE9OTFkgaGVyZS5cbiAqXG4gKiDimqDvuI8gYG5wbSBydW4gdmVyaWZ5OmFsbGAgcGFzc2VzIHdpdGggdGhpcyBmaWxlIHJlbW92ZWQgZW50aXJlbHkuIFRoZSBzdWl0ZSBhc3NlcnRzIGdlb21ldHJ5XG4gKiBhbmQgYmVoYXZpb3VyLCBuZXZlciBhcHBlYXJhbmNlIOKAlCBzbyBpdCBpcyBub3QgZXZpZGVuY2UgZm9yIGFueSBjaGFuZ2UgbWFkZSBoZXJlLiBQcm92ZSBDU1NcbiAqIGNoYW5nZXMgd2l0aCB0aGUgY29tcHV0ZWQtc3R5bGUgZmluZ2VycHJpbnQgaGFybmVzcyBpbnN0ZWFkOlxuICogYC5haS1hc3Npc3QvdG9vbHMvaW1hZ2VzbGljZXItY3NzLWZpbmdlcnByaW50LnB3c3BlYy50c2AuXG4gKlxuICogQW4gYXVkaXQgaW4gMjAyNi0wOC0xMSBmb3VuZCBleGFjdGx5IGZpdmUgZGVhZCBydWxlcyBpbiBpdCAoYC5yYCwgYC5nYCwgYC5iYCwgYC5sZWZ0YCxcbiAqIGAuc3dpdGNoLWxhYmVsYCk7IHRoZXkgYXJlIGdvbmUuIFdoYXQgcmVtYWlucyBpcyBsaXZlLiBEbyBub3QgcHJ1bmUgaXQgcnVsZS1ieS1ydWxlIOKAlCByZXRpcmVcbiAqIGl0LCBpZiBldmVyLCBieSBzdXBlcnNlZGluZyBpdCBkdXJpbmcgYSByZXN0eWxlLlxuICpcbiAqIE9yaWdpbjogYGNzcy9tYWluLm1pbi5jc3NgICh2MS1lcmEpLCB1bm1pbmlmaWVkLiBBc3NldCBVUkxzIHBvaW50IGF0IHdlYnBhY2stbWFuYWdlZCBmaWxlc1xuICogdW5kZXIgYHNyYy9mcm9udC9yZXNvdXJjZXMvYC4gTW9zdGx5IHBsYWluIENTUywgYnV0IGl0IGlzIGNvbXBpbGVkIGFzIFNDU1MgYW5kIGRvZXMgdXNlXG4gKiBgJGRlZmF1bHQtZm9udC1zaXplYCwgc28gaXQgbXVzdCBiZSBpbXBvcnRlZCBhZnRlciBgX3ZhcmlhYmxlc2AuXG4gKi9cblxuI2Vycixcbi5lcnIge1xuICBjb2xvcjogcmVkO1xufVxuXG4jaW1nV3JhcCxcbiN1cGxvYWRGb3JtLFxuLmNlbnRlcixcbi5lcnIsXG4ucmVzdWx0LXdyYXAsXG4udGh1bWJEaXYsXG5oMSxcbmgyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZGVsZXRlLWFyZWEsXG4uc2xpZGVyLFxuLnRtcEltZyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2FjdGlvbnMsXG4jbWVudSxcbiN0b29sLWJveCxcbi5yZXN1bHQtd3JhcCBpbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4jYWN0aW9ucyxcbiNzd2l0Y2gtc3RhdHVzLFxuI3Rvb2wtYm94LFxuLmJ0bi1jaG9wLFxuLnN3aXRjaCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuYSxhYmJyLGFjcm9ueW0sYWRkcmVzcyxhcHBsZXQsYXJ0aWNsZSxhc2lkZSxhdWRpbyxiLGJpZyxibG9ja3F1b3RlLGJvZHksY2FudmFzLGNhcHRpb24sY2VudGVyLGNpdGUsY29kZSxkZCxkZWwsZGV0YWlscyxkZm4sZGl2LGRsLGR0LGVtLGVtYmVkLGZpZWxkc2V0LGZpZ2NhcHRpb24sZmlndXJlLGZvb3Rlcixmb3JtLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHRtbCxpLGlmcmFtZSxpbWcsaW5zLGtiZCxsYWJlbCxsZWdlbmQsbGksbWFyayxtZW51LG5hdixvYmplY3Qsb2wsb3V0cHV0LHAscHJlLHEscnVieSxzLHNhbXAsc2VjdGlvbixzbWFsbCxzcGFuLHN0cmlrZSxzdHJvbmcsc3ViLHN1bW1hcnksc3VwLHRhYmxlLHRib2R5LHRkLHRmb290LHRoLHRoZWFkLHRpbWUsdHIsdHQsdSx1bCx2YXIsdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMTAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbmFydGljbGUsYXNpZGUsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtZW51LG5hdixzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG59XG5cbm9sLFxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5ibG9ja3F1b3RlLFxucSB7XG4gIHF1b3Rlczogbm9uZTtcbn1cblxuYmxvY2txdW90ZTpiZWZvcmUsXG5ibG9ja3F1b3RlOmFmdGVyLFxucTpiZWZvcmUsXG5xOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbmgxLFxuaDMge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5oMSxcbmgyIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIGZvbnQtc2l6ZTogMjVweDtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDMzcHg7XG59XG5cbmJ1dHRvbiB7XG4gIGhlaWdodDogMzBweDtcbn1cblxuLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNzgwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uY29udGFpbmVyIGgyIHtcbiAgZm9udC1zaXplOiAyMXB4O1xufVxuXG4uY29udGFpbmVyIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4jdXBsb2FkRm9ybSB7XG4gIG1heC13aWR0aDogNzUwcHg7XG4gIG1hcmdpbjogMjBweCBhdXRvO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbiNlcnIsXG4uZXJyIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4jYWN0aW9ucyxcbi5kb3dubG9hZC1hbGwsXG4ucmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm5leHQge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi50bXBJbWcge1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogNXJlbTtcbiAgbWF4LXdpZHRoOiA2OXB4O1xufVxuXG4ucmVzdWx0LXdyYXAgaW1nIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LWhlaWdodDogMTQwcHg7XG4gIG1heC13aWR0aDogMTQwcHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDI2cHggLTdweCByZ2JhKDAsMCwwLC43NSk7XG4gIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAwIDI2cHggLTdweCByZ2JhKDAsMCwwLC43NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyNnB4IC03cHggcmdiYSgwLDAsMCwuNzUpO1xufVxuXG4udGh1bWJEaXYge1xuICBoZWlnaHQ6IDE0MnB4O1xuICB3aWR0aDogMTQycHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNDBweDtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXI6IDFweCBkb3R0ZWQgIzk5OTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggMThweCAtNnB4IHJnYmEoMCwwLDAsLjc1KTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDhweCAxOHB4IC02cHggcmdiYSgwLDAsMCwuNzUpO1xuICBib3gtc2hhZG93OiAwIDhweCAxOHB4IC02cHggcmdiYSgwLDAsMCwuNzUpO1xufVxuXG4uY2xlYXJmaXgge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmRvd25sb2FkLWFsbCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDIwcHggYXV0bztcbn1cblxuLnNlbGVjdC1hcmVhcy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uYmx1cnJlZCB7XG4gIC13ZWJraXQtZmlsdGVyOiBibHVyKDNweCk7XG4gIC1tb3otZmlsdGVyOiBibHVyKDNweCk7XG4gIC1vLWZpbHRlcjogYmx1cigzcHgpO1xuICBmaWx0ZXI6IGJsdXIoM3B4KTtcbn1cblxuLnNlbGVjdC1hcmVhcy1yZXNpemUtaGFuZGxlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGhlaWdodDogOHB4O1xuICB3aWR0aDogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2VsZWN0LWFyZWFzLWRlbGV0ZS1hcmVhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kZWxldGUtYXJlYSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcGFkZGluZzogNXB4IDVweCAycHggMnB4O1xufVxuXG4uc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzhweDtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuXG4uc3dpdGNoIGlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuLnNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcbiAgdHJhbnNpdGlvbjogLjRzO1xufVxuXG4uc2xpZGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAxOHB4O1xuICB3aWR0aDogMThweDtcbiAgbGVmdDogMnB4O1xuICBib3R0b206IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XG4gIHRyYW5zaXRpb246IC40cztcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjM5MzczO1xufVxuXG5pbnB1dDpmb2N1cyArIC5zbGlkZXIge1xuICBib3gtc2hhZG93OiAwIDAgMXB4ICMyMzkzNzM7XG59XG5cbmlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XG59XG5cbi5zbGlkZXIucm91bmQge1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xufVxuXG4uc2xpZGVyLnJvdW5kOmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuI21lbnUge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNlYWVhZWE7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgI2VhZWFlYTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jYWN0aW9ucyB7XG4gIHdpZHRoOiAyNiU7XG59XG5cbiNzd2l0Y2gtc3RhdHVzIHtcbiAgbWluLXdpZHRoOiAzMHB4O1xufVxuXG4uYnRuLWFkZC10eHQsXG4uYnRuLWNsZWFyLXR4dCB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC00cHg7XG59XG5cbmJ1dHRvbi5idG4tYWRkOmJlZm9yZSxcbmJ1dHRvbi5idG4tY2xlYXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1zaXplOiAxOHB4IDE4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuYnV0dG9uLmJ0bi1hZGQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuL3Jlc291cmNlcy9hZGQtbmV3LWljb24ucG5nJyk7XG59XG5cbmJ1dHRvbi5idG4tY2xlYXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuL3Jlc291cmNlcy9jbGVhci1hbGwtaWNvbi5wbmcnKTtcbn1cblxuLmJ0bi1jaG9wIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4iLCIvLyBaIEluZGV4XG4vLyBVc2UgQ1NTIHZhcmlhYmxlcyBzbyBKUyAoaW5saW5lIHN0eWxlcykgYW5kIENTUyBzaGFyZSB0aGUgc2FtZSBzb3VyY2Ugb2YgdHJ1dGguXG5AaW1wb3J0ICcuL3ZhcmlhYmxlcyc7XG5cbjpyb290IHtcbiAgLS16LWxheWVyLWxpdmUtY2FudmFzOiAjeyR6LWxheWVyLWxpdmUtY2FudmFzfTtcbiAgLS16LWxheWVyLWNhbnZhcy1ib3VuZGFyeTogI3skei1sYXllci1jYW52YXMtYm91bmRhcnl9O1xuICAtLXotbGF5ZXItbW92ZS1jYXB0dXJlOiAjeyR6LWxheWVyLW1vdmUtY2FwdHVyZX07XG4gIC0tei1sYXllci1jaHJvbWU6ICN7JHotbGF5ZXItY2hyb21lfTtcbiAgLS16LXNsaWNlLW91dGxpbmUtYWN0aXZlOiAjeyR6LXNsaWNlLW91dGxpbmUtYWN0aXZlfTtcbiAgLS16LXNsaWNlLWRlbGV0ZS1idXR0b246ICN7JHotc2xpY2UtZGVsZXRlLWJ1dHRvbn07XG4gIC0tei1zbGljZS1iZy1hY3RpdmU6ICN7JHotc2xpY2UtYmctYWN0aXZlfTtcbiAgLS16LXNsaWNlLWludGVyYWN0aXZlLWxheWVyOiAjeyR6LXNsaWNlLWludGVyYWN0aXZlLWxheWVyfTtcbiAgLS16LXNsaWNlLXJlc2l6ZS1oYW5kbGU6ICN7JHotc2xpY2UtcmVzaXplLWhhbmRsZX07XG4gIC0tei1zbGljZS1iZy1pbmFjdGl2ZTogI3skei1zbGljZS1iZy1pbmFjdGl2ZX07XG4gIC0tei1zbGljZS1vdXRsaW5lLWluYWN0aXZlOiAjeyR6LXNsaWNlLW91dGxpbmUtaW5hY3RpdmV9O1xuICAtLXotY2FudmFzLXdvcmxkOiAjeyR6LWNhbnZhcy13b3JsZH07XG4gIC0tei1jYW52YXMtb3ZlcmxheTogI3skei1jYW52YXMtb3ZlcmxheX07XG4gIC0tei1oZWxwLXBvcG92ZXI6ICN7JHotaGVscC1wb3BvdmVyfTtcbiAgLS16LXpvb20tcGFuLWhpdC1zdXJmYWNlOiAjeyR6LXpvb20tcGFuLWhpdC1zdXJmYWNlfTtcbn1cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5cbi8vIEV4dHJhY3RlZCBmcm9tIHBhZ2VzL2Fib3V0Lmh0bWwgaW5saW5lIDxzdHlsZT5cbi5wYWdlLWFib3V0IC5yb290LCAucGFnZS1hYm91dCAucm9vdCBhIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4ucGFnZS1hYm91dCBoMiwgLnBhZ2UtYWJvdXQgaDMgLmN0YSB7IGZvbnQtc2l6ZTogMTZweDsgfVxuLnBhZ2UtYWJvdXQgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHZpb2xldCxpbmRpZ28sIzAwZixncmVlbiwjZmYwLG9yYW5nZSxyZWQsI2QwNDM0MywjM2Q3NzNkLCNkMGFlMGIsIzM5NjFhYiwjYTIyZWEyKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMxNCUgMzE0JTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBhbmltYXRpb246IHJhaW5ib3cgMTFzIGVhc2UgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIHJhaW5ib3cge1xuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlOyB9XG4gIDUwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMjUlOyB9XG4gIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTsgfVxufVxuLnBhZ2UtYWJvdXQgLmNvbnRlbnQgeyB3aWR0aDogNjAwcHg7IG1hcmdpbjogNXB4IGF1dG87IH1cbi5wYWdlLWFib3V0IC5mZWVkYmFjayB7IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ1ZDU7IHBhZGRpbmctdG9wOiA4cHg7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDsgfVxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuXG5Aa2V5ZnJhbWVzIHJhaW5ib3cge1xuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlOyB9XG4gIDUwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMjUlOyB9XG4gIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTsgfVxufVxuXG4vLyBFeHRyYWN0ZWQgZnJvbSBwYWdlcy9wcmljaW5nLmh0bWwgaW5saW5lIDxzdHlsZT5cbi5wYWdlLXByaWNpbmcge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogIzMzMztcblxuICAmLmNvbnRhaW5lciB7IGJhY2tncm91bmQ6ICNmZmY7IH1cblxuICAucm9vdCxcbiAgLnJvb3QgYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4gIC5sb2dvIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHZpb2xldCxpbmRpZ28sIzAwZixncmVlbiwjZmYwLG9yYW5nZSxyZWQsI2QwNDM0MywjM2Q3NzNkLCNkMGFlMGIsIzM5NjFhYiwjYTIyZWEyKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMxNCUgMzE0JTtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAzNnB4O1xuICAgIGFuaW1hdGlvbjogcmFpbmJvdyAxMXMgZWFzZSBpbmZpbml0ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgLnByaWNpbmctcGFnZSAuY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gIH1cblxuICAuZmVlZGJhY2sge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgLyogUHJpY2luZyBDYXJkcyAqL1xuICAucHJpY2luZy1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbjogMzBweCAwO1xuICB9XG5cbiAgLnBsYW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMsIGJveC1zaGFkb3cgMC4ycywgYm9yZGVyLWNvbG9yIDAuMnM7XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODAxcHgpIHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLDAsMCwwLjA4KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEN1cnJlbnQgcGxhbiDigJQgYWx3YXlzLXZpc2libGUgYm9yZGVyXG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMzMzO1xuXG4gICAgICAmOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiAjMzMzOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gRmVhdHVyZWQgKFBybykg4oCUIHRpbnRlZCBjYXJkXG4gIC5wbGFuLS1mZWF0dXJlZCB7XG4gICAgYmFja2dyb3VuZDogI2YzZjFmZTtcbiAgICBib3JkZXItY29sb3I6ICNkOGQyZjc7XG5cbiAgICAmLmFjdGl2ZSB7IGJvcmRlci1jb2xvcjogIzY3NTlkNjsgfVxuICB9XG5cbiAgLnBsYW4taGVhZCB7IG1hcmdpbi1ib3R0b206IDE4cHg7IH1cblxuICAucGxhbi1uYW1lLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEwcHg7XG4gIH1cblxuICAucGxhbi1uYW1lIHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIH1cblxuICAucGxhbi1wcmljZSB7XG4gICAgZm9udC1zaXplOiAzOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxYTFhMWE7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcblxuICAgIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgY29sb3I6ICM4ODg7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICB9XG5cbiAgICAvLyBUaW55IGN1cnJlbmN5IG1hcmssIHRvcC1hbGlnbmVkIHRvIHRoZSBiaWcgbnVtYmVyIChsaWtlIHRoZSByZWZlcmVuY2UpXG4gICAgLnBsYW4tY3VyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGNvbG9yOiAjMWExYTFhO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICB9XG5cbiAgLnBsYW4tZGVzYyB7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgfVxuXG4gIC8vIENUQSBhcmVhXG4gIC5wbGFuLWN0YSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcblxuICAgICYtZXJyb3Ige1xuICAgICAgY29sb3I6ICNjNjI4Mjg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gRmVhdHVyZSBsaXN0XG4gIC5wbGFuLWZlYXR1cmVzLXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICB9XG5cbiAgLnBsYW4tZmVhdHVyZXMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuXG4gICAgbGkge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNnB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAgICAgJi55ZXM6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFwyNzEzXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29sb3I6ICM2NzU5ZDY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgICYubm8ge1xuICAgICAgICBjb2xvcjogI2FhYTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0XCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTYXZlIHBpbGwg4oCUIGlubGluZSBiYWRnZSBuZXh0IHRvIHllYXJseSBwcmljZVxuICAuc2F2ZS1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZDogIzIyYTcyMjtcbiAgICBwYWRkaW5nOiAycHggN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgfVxuXG4gIC8vIENUQSBidXR0b25zIOKAlCBmdWxsIHdpZHRoIHBpbGxzXG4gIC5jdGEtYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgYm9yZGVyLWNvbG9yIDAuMnMsIGNvbG9yIDAuMnM7XG5cbiAgICAmLmRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG4gIH1cblxuICAvLyBPdXRsaW5lIChkZWZhdWx0IC8gbm9uLWZlYXR1cmVkKVxuICAuY3RhLW91dGxpbmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICMxYTFhMWE7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QwZDBkMDtcblxuICAgICY6aG92ZXIgeyBib3JkZXItY29sb3I6ICM4ODg7IGJhY2tncm91bmQ6ICNmYWZhZmE7IH1cbiAgfVxuXG4gIC8vIEFjY2VudCAoUHJvKVxuICAuY3RhLWFjY2VudCB7XG4gICAgYmFja2dyb3VuZDogIzY3NTlkNjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNjc1OWQ2O1xuXG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICM1NTQ2Yzk7IH1cbiAgfVxuXG4gIC8vIEN1cnJlbnQgcGxhbiBpbmRpY2F0b3JcbiAgLmN0YS1jdXJyZW50IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzk5OTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICB9XG5cbiAgLy8gRm91bmRpbmcgbm90ZSBDVEEg4oCUIGNvbXBhY3QgKG92ZXJyaWRlcyBmdWxsLXdpZHRoIGN0YS1idG4gZm9yIHRoZSBpbmxpbmUgcm93KVxuICAuY3RhLWZvdW5kaW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2IzODYwMDtcbiAgICBjb2xvcjogI2IzODYwMDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZmZmYmU2OyB9XG4gIH1cblxuICAvLyBJbnRlcnZhbCB0b2dnbGUg4oCUIGNvbXBhY3QgcGlsbFxuICAuaW50ZXJ2YWwtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBnYXA6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMnB4O1xuICB9XG5cbiAgLmludGVydmFsLWJ0biB7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMsIGNvbG9yIDAuMTVzO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4xKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdCguYWN0aXZlKSB7IGNvbG9yOiAjNTU1OyB9XG4gIH1cblxuICAuZm91bmRpbmctbm90ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmJlNjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZlMDY2O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgc3Ryb25nIHsgY29sb3I6ICNiMzg2MDA7IH1cbiAgfVxuXG4gIGgyIHsgbWFyZ2luLXRvcDogNDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuc3VidGl0bGUgeyBjb2xvcjogIzY2NjsgbWFyZ2luLXRvcDogMDsgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4gIC8vIFJlc3BvbnNpdmU6IHN0YWNrIHRoZSBjYXJkc1xuICBAbWVkaWEgKG1heC13aWR0aDogODAwcHgpIHtcbiAgICAucHJpY2luZy1ncmlkIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1vYmlsZSB0d2Vha3NcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgLmxvZ28geyBmb250LXNpemU6IDI4cHg7IH1cbiAgICAucGxhbi1wcmljZSB7IGZvbnQtc2l6ZTogMjhweDsgfVxuICAgIC5mb3VuZGluZy1ub3RlIHsgcGFkZGluZzogMTJweCAxNnB4OyB9XG4gICAgaDIgeyBmb250LXNpemU6IDIwcHg7IG1hcmdpbi10b3A6IDMwcHg7IH1cbiAgICAuY29udGVudCB7IHBhZGRpbmc6IDAgMTZweDsgfVxuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuXG4vLyBFeHRyYWN0ZWQgZnJvbSBwYWdlcy9mYXEuaHRtbCBpbmxpbmUgPHN0eWxlPlxuLnBhZ2UtZmFxIHsgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICMzMzM7IH1cbi5wYWdlLWZhcSAucm9vdCwgLnBhZ2UtZmFxIC5yb290IGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbi5wYWdlLWZhcSAubG9nbyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsdmlvbGV0LGluZGlnbywjMDBmLGdyZWVuLCNmZjAsb3JhbmdlLHJlZCwjZDA0MzQzLCMzZDc3M2QsI2QwYWUwYiwjMzk2MWFiLCNhMjJlYTIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMzE0JSAzMTQlO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDM2cHg7XG4gIGFuaW1hdGlvbjogcmFpbmJvdyAxMXMgZWFzZSBpbmZpbml0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbkBrZXlmcmFtZXMgcmFpbmJvdyB7XG4gIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1MCU7IH1cbiAgNTAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAyNSU7IH1cbiAgMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlOyB9XG59XG4ucGFnZS1mYXEgLmNvbnRlbnQgeyBtYXgtd2lkdGg6IDcwMHB4OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMCAyMHB4OyB3aWR0aDogMTAwJTsgfVxuLnBhZ2UtZmFxIC5mZWVkYmFjayB7IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ1ZDU7IHBhZGRpbmctdG9wOiA4cHg7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDsgbWFyZ2luLXRvcDogNDBweDsgcGFkZGluZy1ib3R0b206IDIwcHg7IH1cblxuLnBhZ2UtZmFxIGgyIHsgbWFyZ2luLXRvcDogMTBweDsgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuLnBhZ2UtZmFxIC5mYXEtaXRlbSB7IG1hcmdpbi1ib3R0b206IDI4cHg7IH1cbi5wYWdlLWZhcSAuZmFxLWl0ZW0gaDMgeyBtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxN3B4OyBmb250LXdlaWdodDogNzAwOyB9XG4ucGFnZS1mYXEgLmZhcS1pdGVtIHAgeyBtYXJnaW46IDA7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiAjNDQ0OyB9XG5cbi5wYWdlLWZhcSAudGllci10YWJsZSB7IHdpZHRoOiAxMDAlOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBtYXJnaW46IDE2cHggMDsgZm9udC1zaXplOiAxNHB4OyB9XG4ucGFnZS1mYXEgLnRpZXItdGFibGUgdGgsIC5wYWdlLWZhcSAudGllci10YWJsZSB0ZCB7IHBhZGRpbmc6IDEwcHggMTJweDsgdGV4dC1hbGlnbjogbGVmdDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7IH1cbi5wYWdlLWZhcSAudGllci10YWJsZSB0aCB7IGJhY2tncm91bmQ6ICNmOWY5Zjk7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbi5wYWdlLWZhcSAudGllci10YWJsZSB0ZDpmaXJzdC1jaGlsZCB7IGZvbnQtd2VpZ2h0OiA1MDA7IH1cbi5wYWdlLWZhcSAueWVzIHsgY29sb3I6ICMyMmE3MjI7IH1cbi5wYWdlLWZhcSAubm8geyBjb2xvcjogIzk5OTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgLnBhZ2UtZmFxIC5sb2dvIHsgZm9udC1zaXplOiAyOHB4OyB9XG4gIC5wYWdlLWZhcSAuY29udGVudCB7IHBhZGRpbmc6IDAgMTZweDsgfVxuICAucGFnZS1mYXEgLnRpZXItdGFibGUgeyBmb250LXNpemU6ICRmb250LXNpemUtbWQ7IH1cbiAgLnBhZ2UtZmFxIC50aWVyLXRhYmxlIHRoLCAucGFnZS1mYXEgLnRpZXItdGFibGUgdGQgeyBwYWRkaW5nOiA4cHggNnB4OyB9XG59XG5cbiIsIkBpbXBvcnQgJy4uL3ZhcmlhYmxlcyc7XG5cbi8vIEV4dHJhY3RlZCBmcm9tIHBhZ2VzL3RjLmh0bWwgaW5saW5lIDxzdHlsZT5cbi5wYWdlLXRlcm1zIC5yb290LCAucGFnZS10ZXJtcyAucm9vdCBhIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4ucGFnZS10ZXJtcyBoMiwgLnBhZ2UtdGVybXMgaDMgLmN0YSB7IGZvbnQtc2l6ZTogMTZweDsgfVxuLnBhZ2UtdGVybXMgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHZpb2xldCxpbmRpZ28sIzAwZixncmVlbiwjZmYwLG9yYW5nZSxyZWQsI2QwNDM0MywjM2Q3NzNkLCNkMGFlMGIsIzM5NjFhYiwjYTIyZWEyKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMxNCUgMzE0JTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAzNnB4O1xuICBhbmltYXRpb246IHJhaW5ib3cgMTFzIGVhc2UgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIHJhaW5ib3cge1xuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlOyB9XG4gIDUwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMjUlOyB9XG4gIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTsgfVxufVxuLnBhZ2UtdGVybXMgLmNvbnRlbnQgeyB3aWR0aDogNjAwcHg7IG1hcmdpbjogNXB4IGF1dG87IH1cbi5wYWdlLXRlcm1zIC5mZWVkYmFjayB7IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ1ZDU7IHBhZGRpbmctdG9wOiA4cHg7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDsgfVxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuXG4vLyBFeHRyYWN0ZWQgZnJvbSBwYWdlcy9wcml2YWN5Lmh0bWwgaW5saW5lIDxzdHlsZT5cbi5wYWdlLXByaXZhY3kgLnJvb3QsIC5wYWdlLXByaXZhY3kgLnJvb3QgYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuLnBhZ2UtcHJpdmFjeSBoMiwgLnBhZ2UtcHJpdmFjeSBoMyAuY3RhIHsgZm9udC1zaXplOiAxNnB4OyB9XG4ucGFnZS1wcml2YWN5IC5sb2dvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZyx2aW9sZXQsaW5kaWdvLCMwMGYsZ3JlZW4sI2ZmMCxvcmFuZ2UscmVkLCNkMDQzNDMsIzNkNzczZCwjZDBhZTBiLCMzOTYxYWIsI2EyMmVhMik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAzMTQlIDMxNCU7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgYW5pbWF0aW9uOiByYWluYm93IDExcyBlYXNlIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyByYWluYm93IHtcbiAgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTsgfVxuICA1MCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDI1JTsgfVxuICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1MCU7IH1cbn1cbi5wYWdlLXByaXZhY3kgLmNvbnRlbnQgeyB3aWR0aDogNjAwcHg7IG1hcmdpbjogNXB4IGF1dG87IH1cbi5wYWdlLXByaXZhY3kgLmZlZWRiYWNrIHsgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXItdG9wOiAxcHggc29saWQgI2Q1ZDVkNTsgcGFkZGluZy10b3A6IDhweDsgZm9udC1zaXplOiAkZm9udC1zaXplLW1kOyB9XG5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/