/* Basic configuration */
:root {
  /* Layout */
  --width-container: 900px;
  --width-min-container: 320px;
  --height-min-header-footer: 8vh;
  --padding-internal: 24px;
  --border-radius-container: 5px;
  --border-radius-content: 4px;
  /* Typography */
  --font-family: 'Arial', sans-serif;
  --font-family-mono: Droid Mono, Menlo, Consolas, monospace;
  --font-size: 18px;
  --line-height: 1.45;
  /* (line height is specified in em so that it adapts to varying font sizes) */
  --paragraph-margin-vertical: var(--font-size);
  /* Colors */
  --color-text: black;
  --color-background: white;
  --color-border: #e5e5e5;
  --color-border-internal: #efefef;
  --color-gray-background: #f8f8f8;
  --color-gray-content: #8d8d8d;
}

/* Set box model to border-box globally */
:root {
  box-sizing: border-box;
}
*,
*::before,
*::after {
  box-sizing: inherit;
}

/* Content layout */
body {
  margin: 0;
  background: white;
  background: var(--color-background);
}
::-webkit-backdrop {
  background: white;
  background: var(--color-background);
}
::backdrop {
  background: white;
  background: var(--color-background);
}

.container {
  min-width: 320px;
  min-width: var(--width-min-container);
  min-height: 8vh;
  min-height: var(--height-min-header-footer);
  /* Use page-style layout by default */
  margin: 24px auto;
  margin: var(--padding-internal) auto;
  width: 900px;
  width: var(--width-container);
}
.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  padding: calc(2 * 24px);
  padding: calc(2 * var(--padding-internal));
  background: rgba(140, 140, 140, 0.25);
  /* Use backdrop-filter where available */
  backdrop-filter: blur(10px);
}
.overlay .modal {
  margin: 24px auto;
  margin: var(--padding-internal) auto;
  padding: calc(2 * 24px) 24px;
  padding: calc(2 * var(--padding-internal)) var(--padding-internal);
  min-height: 25vh;
  background: white;
  border: 1px solid rgba(140, 140, 140, 0.5);
  border-radius: 4px;
  border-radius: var(--border-radius-content);
  box-shadow: 0 0 5px rgba(140, 140, 140, 0.25);
}

header,
footer,
main {
  padding: 24px;
  padding: var(--padding-internal);
}
/* Individual parts: Height, borders and background */
header,
footer {
  min-height: 8vh;
  min-height: var(--height-min-header-footer);
}
main {
  min-height: 8vh;
  min-height: var(--height-min-header-footer);
}

/* Fullscreen layout */
.container.fullscreen {
  /* Full screen minus margins */
  margin: 24px;
  margin: var(--padding-internal);
  min-height: calc(100vh - 2 * 24px);
  min-height: calc(100vh - 2 * var(--padding-internal));
  width: calc(100vw - 2 * 24px);
  width: calc(100vw - 2 * var(--padding-internal));
  /* Display content using flexboxes */
  display: flex;
  flex-direction: column;
}
.container.fullscreen main {
  /* Flex positioning */
  flex: 1;
}

/* Frameless layout */
.container.frameless {
  margin: 0 auto;
  border: none;
  border-radius: 0;
}
.container.fullscreen.frameless {
  margin: 0;
  width: 100%;
  min-height: 100vh;
}

/* Remove frame on small screens */
@media (max-width: 600px), (max-height: 600px) {
  .container.fullscreen {
    margin: 0;
    border: none;
    border-radius: 0;
    width: 100%;
    min-height: 100vh;
  }
}

/* Borders and backgrounds */
.container {
  border: 1px solid #e5e5e5;
  border: 1px solid var(--color-border);
  border-radius: 5px;
  border-radius: var(--border-radius-container);
}
header {
  border-bottom: 1px solid #efefef;
  border-bottom: 1px solid var(--color-border-internal);
}
footer {
  border-top: 1px solid #efefef;
  border-top: 1px solid var(--color-border-internal);
  background-color: #f8f8f8;
  background-color: var(--color-gray-background);
}

/* Typography */
:root {
  color: black;
  color: var(--color-text);
  font-family: 'Arial', sans-serif;
  font-family: var(--font-family);
  font-size: 18px;
  font-size: var(--font-size);
  line-height: 1.45;
  line-height: var(--line-height);
}
header,
footer,
main {
  /* Set display style explicitly for legacy browsers
     that are unfamiliar with these elements */
  display: block;
  text-align: center;
}
h1,
h2,
h3 {
  line-height: 1.45;
  line-height: var(--line-height);
}
hr {
  border: none;
  border-top: 2px solid #e5e5e5;
  border-top: 2px solid var(--color-border);
}

/* Special elements: Keyboard buttons */
kbd {
  /* Positioning */
  display: inline-block;
  min-width: 1.5rem;
  min-height: 1.5rem;
  padding: 0 0.3rem;
  padding-top: 0.15rem;
  /* Fonts */
  font-family: Droid Mono, Menlo, Consolas, monospace;
  font-family: var(--font-family-mono);
  font-size: 0.9rem;
  text-align: center;
  /* Background and border */
  background-color: white;
  background-color: var(--color-background);
  border-radius: 4px;
  border-radius: var(--border-radius-content);
  border: 1px solid #e5e5e5;
  border: 1px solid var(--color-border);
}
kbd.big {
  font-size: 1.4rem;
  padding-top: 0.375rem;
  border-radius: 0.125rem;
}

/* Alignment helpers */
.w-100 {
  width: 100%;
}
.w-s {
  width: 100%;
  max-width: 320px;
  max-width: var(--width-min-container);
}
.w-m {
  width: 100%;
  max-width: calc(1.5 * 320px);
  max-width: calc(1.5 * var(--width-min-container));
}
.w-l {
  width: 100%;
  max-width: calc(2 * 320px);
  max-width: calc(2 * var(--width-min-container));
}
/* Block alignment based on flexbox */
.content-vertical-top,
.content-vertical-center,
.content-vertical-bottom,
.content-horizontal-left,
.content-horizontal-center,
.content-horizontal-right,
.content-horizontal-space-between,
.content-vertical-space-between,
.content-horizontal-space-around,
.content-vertical-space-around {
  display: flex;
}
.content-vertical-top {
  align-items: flex-start;
}
.content-vertical-center {
  align-items: center;
}
.content-vertical-bottom {
  align-items: flex-end;
}
.content-horizontal-left {
  justify-content: flex-start;
}
.content-horizontal-center {
  justify-content: center;
}
.content-horizontal-right {
  justify-content: flex-end;
}
.content-horizontal-space-between,
.content-vertical-space-between {
  justify-content: space-between;
}
.content-horizontal-space-around,
.content-vertical-space-around {
  justify-content: space-around;
}
.content-vertical-space-around,
.content-vertical-space-between {
  flex-direction: column;
}
.content-vertical-space-between.content-horizontal-right,
.content-vertical-space-around.content-horizontal-right {
  align-items: flex-start;
}
.content-vertical-space-between.content-horizontal-center,
.content-vertical-space-around.content-horizontal-center {
  align-items: center;
}
.content-vertical-space-between.content-horizontal-right,
.content-vertical-space-around.content-horizontal-right {
  align-items: flex-end;
}
.sticky-top {
  position: sticky;
  top: 0;
}
/* Text alignment */
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.text-justify {
  text-align: justify;
}
.text-muted {
  color: #8d8d8d;
  color: var(--color-gray-content);
}
.text-muted a {
  color: rgb(60, 89, 156);
}
small,
.small {
  font-size: 0.9rem;
}
.font-weight-bold {
  font-weight: bold;
}
.font-italic {
  font-style: italic;
}
code {
  font-family: Droid Mono, Menlo, Consolas, monospace;
  font-family: var(--font-family-mono);
  background-color: #f8f8f8;
  background-color: var(--color-gray-background);
  padding: 2px;
  border-radius: 2px;
}

/* Visibility */
.invisible {
  visibility: hidden;
}
.hidden {
  display: none;
}
.hide-if-empty:empty {
  display: none;
}

/* Alerts */
.alert {
  border: 2px solid #e5e5e5;
  border: 2px solid var(--color-border);
  border-radius: 4px;
  border-radius: var(--border-radius-content);
  padding: 16px 16px 14px;
  margin: 16px 0;
}
.alert.alert-danger {
  color: #a02c2c;
  border-color: #a02c2c;
}
.alert.alert-warning {
  color: #f6a902;
  border-color: #ffb400;
}

/* Background styles (experimental) */
.alert,
.background-dark {
  background-color: #f8f8f8;
  background-color: var(--color-gray-background);
}
.alert.alert-danger,
.background-danger {
  background-color: #e9afaf;
}
.alert.alert-warning,
.background-warning {
  background-color: #ffe6a5;
}
.background-ok {
  background-color: #c3e6cb;
}

/* Form elements */
input,
select,
button,
textarea {
  font-family: 'Arial', sans-serif;
  font-family: var(--font-family);
  font-size: 0.9rem;
  line-height: 1.45;
  line-height: var(--line-height);
  border: 2px solid #e5e5e5;
  border: 2px solid var(--color-border);
  border-radius: 4px;
  border-radius: var(--border-radius-content);
  margin: 8px 0;
  padding: 8px;
}
input[type='checkbox'] {
  margin: 0 10px;
}
input[type='range'] {
  border: none;
}
input + label {
  margin-left: 2px;
}
select {
  padding: 8px 5px; /* selects have a weird vertical alignment */
}
button {
  background-color: white;
  border-radius: 3px;
  padding: 8px 8px 6px;
}
button:hover {
  border-color: #ddd;
  background-color: #fcfcfc;
}
textarea {
  display: block;
  margin: 18px 0;
  margin: var(--paragraph-margin-vertical) 0;
  resize: vertical;
}
/* Input groups */
.input-group {
  display: inline-table;
  margin: 8px 0;
}
.input-group * {
  display: table-cell;
  border-radius: 0px;
}
.input-group input {
  margin: 0;
}
.input-group *:first-child {
  border-radius: 4px 0 0 4px;
}
.input-group *:last-child {
  border-radius: 0 4px 4px 0;
}
.input-group .input-group-addon {
  background-color: #e5e5e5;
  background-color: var(--color-border);
  border: 2px solid #e5e5e5;
  border: 2px solid var(--color-border);
  padding: 0 10px;
}
/* Page styles */
#page-form .page-item-table td input[type='radio'],
#page-form .page-item-table td input[type='checkbox'] {
  margin: 4px 0 10px;
}
#page-form .page-item-table td label {
  display: block;
}
#page-form .page-item-image img {
  text-align: center;
}
#page-form .page-item-image img {
  max-width: 100%;
}

/* Table */
table {
  width: 100%;
  border-collapse: collapse;
}
table td,
table th {
  padding: 10px 8px 8px;
}
/* Table borders (except for plain) */
table:not(.table-plain) > tr > td,
table:not(.table-plain) > tr > th,
table:not(.table-plain) > thead > tr > td,
table:not(.table-plain) > thead > tr > th,
table:not(.table-plain) > tbody > tr > td,
table:not(.table-plain) > tbody > tr > th {
  border-bottom: 2px solid #e5e5e5;
  border-bottom: 2px solid var(--color-border);
}
table:not(.table-plain) > tr:last-child > td,
table:not(.table-plain) > tr:last-child > th,
table:not(.table-plain) > tbody > tr:last-child > td,
table:not(.table-plain) > tbody > tr:last-child > th {
  border-bottom: 2px solid transparent;
}
/* Striped rows */
table.table-striped tr:nth-child(odd) td {
  background-color: #efefef;
  background-color: var(--color-border-internal);
}
table .sticky-top {
  /* Add background color to sticky table headers */
  background-color: white;
  background-color: var(--color-background);
}

/* Progress bar */
.progress {
  width: 100%;
  height: 8px;
  overflow: hidden;
  margin: 0.2rem 0 0.4rem;
  border-radius: 2px;
  border: 1px solid #e5e5e5;
  border: 1px solid var(--color-border);
}
.progress .progress-bar {
  width: 0%;
  min-height: 8px;
  background-color: #f8f8f8;
  background-color: var(--color-gray-background);
  border-right: 1px solid #efefef;
  border-right: 1px solid var(--color-border-internal);
  box-sizing: content-box;
}

/* Popovers */
.popover {
  position: absolute;
  top: 0;
  animation-duration: 0.5s;
  animation-name: popover;
}

/* Width, for some reason, needs to be set explicitly */
.container.fullscreen .popover {
  width: calc(100vw - 2 * 24px);
  width: calc(100vw - 2 * var(--padding-internal));
}
/* Repeated for frameless mode on small screens */
@media (max-width: 600px), (max-height: 600px) {
  .container.fullscreen .popover {
    width: 100vw;
  }
}

.popover > * {
  width: 80%;
  margin: 0 auto;
}

.container:not(.fullscreen) .popover {
  width: 900px;
  width: var(--width-container);
}

/* Slide in from the top */
@keyframes popover {
  from {
    transform: translate3d(0, -100%, 0);
  }

  to {
    transform: none;
  }
}

.popover > .alert:first-child {
  border-width: 1px;
  position: relative;
  padding-top: 24px;
  top: -8px;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFydGVya2l0L2xpYi9sYWIuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QjtBQUN4QjtFQUNFLFdBQVc7RUFDWCx3QkFBd0I7RUFDeEIsNEJBQTRCO0VBQzVCLCtCQUErQjtFQUMvQix3QkFBd0I7RUFDeEIsOEJBQThCO0VBQzlCLDRCQUE0QjtFQUM1QixlQUFlO0VBQ2Ysa0NBQWtDO0VBQ2xDLDBEQUEwRDtFQUMxRCxpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLDZFQUE2RTtFQUM3RSw2Q0FBNkM7RUFDN0MsV0FBVztFQUNYLG1CQUFtQjtFQUNuQix5QkFBeUI7RUFDekIsdUJBQXVCO0VBQ3ZCLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsNkJBQTZCO0FBQy9COztBQUVBLHlDQUF5QztBQUN6QztFQUNFLHNCQUFzQjtBQUN4QjtBQUNBOzs7RUFHRSxtQkFBbUI7QUFDckI7O0FBRUEsbUJBQW1CO0FBQ25CO0VBQ0UsU0FBUztFQUNULGlCQUFtQztFQUFuQyxtQ0FBbUM7QUFDckM7QUFDQTtFQUNFLGlCQUFtQztFQUFuQyxtQ0FBbUM7QUFDckM7QUFGQTtFQUNFLGlCQUFtQztFQUFuQyxtQ0FBbUM7QUFDckM7O0FBRUE7RUFDRSxnQkFBcUM7RUFBckMscUNBQXFDO0VBQ3JDLGVBQTJDO0VBQTNDLDJDQUEyQztFQUMzQyxxQ0FBcUM7RUFDckMsaUJBQW9DO0VBQXBDLG9DQUFvQztFQUNwQyxZQUE2QjtFQUE3Qiw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLGVBQWU7RUFDZixNQUFNO0VBQ04sT0FBTztFQUNQLFlBQVk7RUFDWixhQUFhO0VBQ2IsdUJBQTBDO0VBQTFDLDBDQUEwQztFQUMxQyxxQ0FBcUM7RUFDckMsd0NBQXdDO0VBQ3hDLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsaUJBQW9DO0VBQXBDLG9DQUFvQztFQUNwQyw0QkFBa0U7RUFBbEUsa0VBQWtFO0VBQ2xFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIs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eUJBQThDO0VBQTlDLDhDQUE4QztFQUM5QywrQkFBb0Q7RUFBcEQsb0RBQW9EO0VBQ3BELHVCQUF1QjtBQUN6Qjs7QUFFQSxhQUFhO0FBQ2I7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLHdCQUF3QjtFQUN4Qix1QkFBdUI7QUFDekI7O0FBRUEsdURBQXVEO0FBQ3ZEO0VBQ0UsNkJBQWdEO0VBQWhELGdEQUFnRDtBQUNsRDtBQUNBLGlEQUFpRDtBQUNqRDtFQUNFO0lBQ0UsWUFBWTtFQUNkO0FBQ0Y7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsY0FBYztBQUNoQjs7QUFFQTtFQUNFLFlBQTZCO0VBQTdCLDZCQUE2QjtBQUMvQjs7QUFFQSwwQkFBMEI7QUFDMUI7RUFDRTtJQUNFLG1DQUFtQztFQUNyQzs7RUFFQTtJQUNFLGVBQWU7RUFDakI7QUFDRjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLFNBQVM7QUFDWCIsImZpbGUiOiJsYWIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQmFzaWMgY29uZmlndXJhdGlvbiAqL1xuOnJvb3Qge1xuICAvKiBMYXlvdXQgKi9cbiAgLS13aWR0aC1jb250YWluZXI6IDkwMHB4O1xuICAtLXdpZHRoLW1pbi1jb250YWluZXI6IDMyMHB4O1xuICAtLWhlaWdodC1taW4taGVhZGVyLWZvb3RlcjogOHZoO1xuICAtLXBhZGRpbmctaW50ZXJuYWw6IDI0cHg7XG4gIC0tYm9yZGVyLXJhZGl1cy1jb250YWluZXI6IDVweDtcbiAgLS1ib3JkZXItcmFkaXVzLWNvbnRlbnQ6IDRweDtcbiAgLyogVHlwb2dyYXBoeSAqL1xuICAtLWZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuICAtLWZvbnQtZmFtaWx5LW1vbm86IERyb2lkIE1vbm8sIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlO1xuICAtLWZvbnQtc2l6ZTogMThweDtcbiAgLS1saW5lLWhlaWdodDogMS40NTtcbiAgLyogKGxpbmUgaGVpZ2h0IGlzIHNwZWNpZmllZCBpbiBlbSBzbyB0aGF0IGl0IGFkYXB0cyB0byB2YXJ5aW5nIGZvbnQgc2l6ZXMpICovXG4gIC0tcGFyYWdyYXBoLW1hcmdpbi12ZXJ0aWNhbDogdmFyKC0tZm9udC1zaXplKTtcbiAgLyogQ29sb3JzICovXG4gIC0tY29sb3ItdGV4dDogYmxhY2s7XG4gIC0tY29sb3ItYmFja2dyb3VuZDogd2hpdGU7XG4gIC0tY29sb3ItYm9yZGVyOiAjZTVlNWU1O1xuICAtLWNvbG9yLWJvcmRlci1pbnRlcm5hbDogI2VmZWZlZjtcbiAgLS1jb2xvci1ncmF5LWJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gIC0tY29sb3ItZ3JheS1jb250ZW50OiAjOGQ4ZDhkO1xufVxuXG4vKiBTZXQgYm94IG1vZGVsIHRvIGJvcmRlci1ib3ggZ2xvYmFsbHkgKi9cbjpyb290IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbi8qIENvbnRlbnQgbGF5b3V0ICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbn1cbjo6YmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbn1cblxuLmNvbnRhaW5lciB7XG4gIG1pbi13aWR0aDogdmFyKC0td2lkdGgtbWluLWNvbnRhaW5lcik7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLWhlaWdodC1taW4taGVhZGVyLWZvb3Rlcik7XG4gIC8qIFVzZSBwYWdlLXN0eWxlIGxheW91dCBieSBkZWZhdWx0ICovXG4gIG1hcmdpbjogdmFyKC0tcGFkZGluZy1pbnRlcm5hbCkgYXV0bztcbiAgd2lkdGg6IHZhcigtLXdpZHRoLWNvbnRhaW5lcik7XG59XG4ub3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIHBhZGRpbmc6IGNhbGMoMiAqIHZhcigtLXBhZGRpbmctaW50ZXJuYWwpKTtcbiAgYmFja2dyb3VuZDogcmdiYSgxNDAsIDE0MCwgMTQwLCAwLjI1KTtcbiAgLyogVXNlIGJhY2tkcm9wLWZpbHRlciB3aGVyZSBhdmFpbGFibGUgKi9cbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuLm92ZXJsYXkgLm1vZGFsIHtcbiAgbWFyZ2luOiB2YXIoLS1wYWRkaW5nLWludGVybmFsKSBhdXRvO1xuICBwYWRkaW5nOiBjYWxjKDIgKiB2YXIoLS1wYWRkaW5nLWludGVybmFsKSkgdmFyKC0tcGFkZGluZy1pbnRlcm5hbCk7XG4gIG1pbi1oZWlnaHQ6IDI1dmg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0MCwgMTQwLCAxNDAsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtY29udGVudCk7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggcmdiYSgxNDAsIDE0MCwgMTQwLCAwLjI1KTtcbn1cblxuaGVhZGVyLFxuZm9vdGVyLFxubWFpbiB7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmctaW50ZXJuYWwpO1xufVxuLyogSW5kaXZpZHVhbCBwYXJ0czogSGVpZ2h0LCBib3JkZXJzIGFuZCBiYWNrZ3JvdW5kICovXG5oZWFkZXIsXG5mb290ZXIge1xuICBtaW4taGVpZ2h0OiB2YXIoLS1oZWlnaHQtbWluLWhlYWRlci1mb290ZXIpO1xufVxubWFpbiB7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLWhlaWdodC1taW4taGVhZGVyLWZvb3Rlcik7XG59XG5cbi8qIEZ1bGxzY3JlZW4gbGF5b3V0ICovXG4uY29udGFpbmVyLmZ1bGxzY3JlZW4ge1xuICAvKiBGdWxsIHNjcmVlbiBtaW51cyBtYXJnaW5zICovXG4gIG1hcmdpbjogdmFyKC0tcGFkZGluZy1pbnRlcm5hbCk7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyICogdmFyKC0tcGFkZGluZy1pbnRlcm5hbCkpO1xuICB3aWR0aDogY2FsYygxMDB2dyAtIDIgKiB2YXIoLS1wYWRkaW5nLWludGVybmFsKSk7XG4gIC8qIERpc3BsYXkgY29udGVudCB1c2luZyBmbGV4Ym94ZXMgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jb250YWluZXIuZnVsbHNjcmVlbiBtYWluIHtcbiAgLyogRmxleCBwb3NpdGlvbmluZyAqL1xuICBmbGV4OiAxO1xufVxuXG4vKiBGcmFtZWxlc3MgbGF5b3V0ICovXG4uY29udGFpbmVyLmZyYW1lbGVzcyB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY29udGFpbmVyLmZ1bGxzY3JlZW4uZnJhbWVsZXNzIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi8qIFJlbW92ZSBmcmFtZSBvbiBzbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpLCAobWF4LWhlaWdodDogNjAwcHgpIHtcbiAgLmNvbnRhaW5lci5mdWxsc2NyZWVuIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gIH1cbn1cblxuLyogQm9yZGVycyBhbmQgYmFja2dyb3VuZHMgKi9cbi5jb250YWluZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWNvbnRhaW5lcik7XG59XG5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWludGVybmFsKTtcbn1cbmZvb3RlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItaW50ZXJuYWwpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LWJhY2tncm91bmQpO1xufVxuXG4vKiBUeXBvZ3JhcGh5ICovXG46cm9vdCB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xufVxuaGVhZGVyLFxuZm9vdGVyLFxubWFpbiB7XG4gIC8qIFNldCBkaXNwbGF5IHN0eWxlIGV4cGxpY2l0bHkgZm9yIGxlZ2FjeSBicm93c2Vyc1xuICAgICB0aGF0IGFyZSB1bmZhbWlsaWFyIHdpdGggdGhlc2UgZWxlbWVudHMgKi9cbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbmgxLFxuaDIsXG5oMyB7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCk7XG59XG5ociB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG59XG5cbi8qIFNwZWNpYWwgZWxlbWVudHM6IEtleWJvYXJkIGJ1dHRvbnMgKi9cbmtiZCB7XG4gIC8qIFBvc2l0aW9uaW5nICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxLjVyZW07XG4gIG1pbi1oZWlnaHQ6IDEuNXJlbTtcbiAgcGFkZGluZzogMCAwLjNyZW07XG4gIHBhZGRpbmctdG9wOiAwLjE1cmVtO1xuICAvKiBGb250cyAqL1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktbW9ubyk7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qIEJhY2tncm91bmQgYW5kIGJvcmRlciAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1jb250ZW50KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cbmtiZC5iaWcge1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgcGFkZGluZy10b3A6IDAuMzc1cmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbn1cblxuLyogQWxpZ25tZW50IGhlbHBlcnMgKi9cbi53LTEwMCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnctcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLXdpZHRoLW1pbi1jb250YWluZXIpO1xufVxuLnctbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IGNhbGMoMS41ICogdmFyKC0td2lkdGgtbWluLWNvbnRhaW5lcikpO1xufVxuLnctbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IGNhbGMoMiAqIHZhcigtLXdpZHRoLW1pbi1jb250YWluZXIpKTtcbn1cbi8qIEJsb2NrIGFsaWdubWVudCBiYXNlZCBvbiBmbGV4Ym94ICovXG4uY29udGVudC12ZXJ0aWNhbC10b3AsXG4uY29udGVudC12ZXJ0aWNhbC1jZW50ZXIsXG4uY29udGVudC12ZXJ0aWNhbC1ib3R0b20sXG4uY29udGVudC1ob3Jpem9udGFsLWxlZnQsXG4uY29udGVudC1ob3Jpem9udGFsLWNlbnRlcixcbi5jb250ZW50LWhvcml6b250YWwtcmlnaHQsXG4uY29udGVudC1ob3Jpem9udGFsLXNwYWNlLWJldHdlZW4sXG4uY29udGVudC12ZXJ0aWNhbC1zcGFjZS1iZXR3ZWVuLFxuLmNvbnRlbnQtaG9yaXpvbnRhbC1zcGFjZS1hcm91bmQsXG4uY29udGVudC12ZXJ0aWNhbC1zcGFjZS1hcm91bmQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNvbnRlbnQtdmVydGljYWwtdG9wIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uY29udGVudC12ZXJ0aWNhbC1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmNvbnRlbnQtdmVydGljYWwtYm90dG9tIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuLmNvbnRlbnQtaG9yaXpvbnRhbC1sZWZ0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLmNvbnRlbnQtaG9yaXpvbnRhbC1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jb250ZW50LWhvcml6b250YWwtcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmNvbnRlbnQtaG9yaXpvbnRhbC1zcGFjZS1iZXR3ZWVuLFxuLmNvbnRlbnQtdmVydGljYWwtc3BhY2UtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5jb250ZW50LWhvcml6b250YWwtc3BhY2UtYXJvdW5kLFxuLmNvbnRlbnQtdmVydGljYWwtc3BhY2UtYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG4uY29udGVudC12ZXJ0aWNhbC1zcGFjZS1hcm91bmQsXG4uY29udGVudC12ZXJ0aWNhbC1zcGFjZS1iZXR3ZWVuIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jb250ZW50LXZlcnRpY2FsLXNwYWNlLWJldHdlZW4uY29udGVudC1ob3Jpem9udGFsLXJpZ2h0LFxuLmNvbnRlbnQtdmVydGljYWwtc3BhY2UtYXJvdW5kLmNvbnRlbnQtaG9yaXpvbnRhbC1yaWdodCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuLmNvbnRlbnQtdmVydGljYWwtc3BhY2UtYmV0d2Vlbi5jb250ZW50LWhvcml6b250YWwtY2VudGVyLFxuLmNvbnRlbnQtdmVydGljYWwtc3BhY2UtYXJvdW5kLmNvbnRlbnQtaG9yaXpvbnRhbC1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmNvbnRlbnQtdmVydGljYWwtc3BhY2UtYmV0d2Vlbi5jb250ZW50LWhvcml6b250YWwtcmlnaHQsXG4uY29udGVudC12ZXJ0aWNhbC1zcGFjZS1hcm91bmQuY29udGVudC1ob3Jpem9udGFsLXJpZ2h0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuLnN0aWNreS10b3Age1xuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbn1cbi8qIFRleHQgYWxpZ25tZW50ICovXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktY29udGVudCk7XG59XG4udGV4dC1tdXRlZCBhIHtcbiAgY29sb3I6IHJnYig2MCwgODksIDE1Nik7XG59XG5zbWFsbCxcbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLmZvbnQtd2VpZ2h0LWJvbGQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5mb250LWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbmNvZGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktbW9ubyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktYmFja2dyb3VuZCk7XG4gIHBhZGRpbmc6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vKiBWaXNpYmlsaXR5ICovXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uaGlkZS1pZi1lbXB0eTplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEFsZXJ0cyAqL1xuLmFsZXJ0IHtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1jb250ZW50KTtcbiAgcGFkZGluZzogMTZweCAxNnB4IDE0cHg7XG4gIG1hcmdpbjogMTZweCAwO1xufVxuLmFsZXJ0LmFsZXJ0LWRhbmdlciB7XG4gIGNvbG9yOiAjYTAyYzJjO1xuICBib3JkZXItY29sb3I6ICNhMDJjMmM7XG59XG4uYWxlcnQuYWxlcnQtd2FybmluZyB7XG4gIGNvbG9yOiAjZjZhOTAyO1xuICBib3JkZXItY29sb3I6ICNmZmI0MDA7XG59XG5cbi8qIEJhY2tncm91bmQgc3R5bGVzIChleHBlcmltZW50YWwpICovXG4uYWxlcnQsXG4uYmFja2dyb3VuZC1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS1iYWNrZ3JvdW5kKTtcbn1cbi5hbGVydC5hbGVydC1kYW5nZXIsXG4uYmFja2dyb3VuZC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTlhZmFmO1xufVxuLmFsZXJ0LmFsZXJ0LXdhcm5pbmcsXG4uYmFja2dyb3VuZC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTZhNTtcbn1cbi5iYWNrZ3JvdW5kLW9rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MzZTZjYjtcbn1cblxuLyogRm9ybSBlbGVtZW50cyAqL1xuaW5wdXQsXG5zZWxlY3QsXG5idXR0b24sXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSk7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWNvbnRlbnQpO1xuICBtYXJnaW46IDhweCAwO1xuICBwYWRkaW5nOiA4cHg7XG59XG5pbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgbWFyZ2luOiAwIDEwcHg7XG59XG5pbnB1dFt0eXBlPSdyYW5nZSddIHtcbiAgYm9yZGVyOiBub25lO1xufVxuaW5wdXQgKyBsYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG5zZWxlY3Qge1xuICBwYWRkaW5nOiA4cHggNXB4OyAvKiBzZWxlY3RzIGhhdmUgYSB3ZWlyZCB2ZXJ0aWNhbCBhbGlnbm1lbnQgKi9cbn1cbmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmc6IDhweCA4cHggNnB4O1xufVxuYnV0dG9uOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xufVxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiB2YXIoLS1wYXJhZ3JhcGgtbWFyZ2luLXZlcnRpY2FsKSAwO1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuLyogSW5wdXQgZ3JvdXBzICovXG4uaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gIG1hcmdpbjogOHB4IDA7XG59XG4uaW5wdXQtZ3JvdXAgKiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbn1cbi5pbnB1dC1ncm91cCBpbnB1dCB7XG4gIG1hcmdpbjogMDtcbn1cbi5pbnB1dC1ncm91cCAqOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XG59XG4uaW5wdXQtZ3JvdXAgKjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgcGFkZGluZzogMCAxMHB4O1xufVxuLyogUGFnZSBzdHlsZXMgKi9cbiNwYWdlLWZvcm0gLnBhZ2UtaXRlbS10YWJsZSB0ZCBpbnB1dFt0eXBlPSdyYWRpbyddLFxuI3BhZ2UtZm9ybSAucGFnZS1pdGVtLXRhYmxlIHRkIGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xuICBtYXJnaW46IDRweCAwIDEwcHg7XG59XG4jcGFnZS1mb3JtIC5wYWdlLWl0ZW0tdGFibGUgdGQgbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiNwYWdlLWZvcm0gLnBhZ2UtaXRlbS1pbWFnZSBpbWcge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jcGFnZS1mb3JtIC5wYWdlLWl0ZW0taW1hZ2UgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vKiBUYWJsZSAqL1xudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbnRhYmxlIHRkLFxudGFibGUgdGgge1xuICBwYWRkaW5nOiAxMHB4IDhweCA4cHg7XG59XG4vKiBUYWJsZSBib3JkZXJzIChleGNlcHQgZm9yIHBsYWluKSAqL1xudGFibGU6bm90KC50YWJsZS1wbGFpbikgPiB0ciA+IHRkLFxudGFibGU6bm90KC50YWJsZS1wbGFpbikgPiB0ciA+IHRoLFxudGFibGU6bm90KC50YWJsZS1wbGFpbikgPiB0aGVhZCA+IHRyID4gdGQsXG50YWJsZTpub3QoLnRhYmxlLXBsYWluKSA+IHRoZWFkID4gdHIgPiB0aCxcbnRhYmxlOm5vdCgudGFibGUtcGxhaW4pID4gdGJvZHkgPiB0ciA+IHRkLFxudGFibGU6bm90KC50YWJsZS1wbGFpbikgPiB0Ym9keSA+IHRyID4gdGgge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cbnRhYmxlOm5vdCgudGFibGUtcGxhaW4pID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxudGFibGU6bm90KC50YWJsZS1wbGFpbikgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG50YWJsZTpub3QoLnRhYmxlLXBsYWluKSA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxudGFibGU6bm90KC50YWJsZS1wbGFpbikgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi8qIFN0cmlwZWQgcm93cyAqL1xudGFibGUudGFibGUtc3RyaXBlZCB0cjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlci1pbnRlcm5hbCk7XG59XG50YWJsZSAuc3RpY2t5LXRvcCB7XG4gIC8qIEFkZCBiYWNrZ3JvdW5kIGNvbG9yIHRvIHN0aWNreSB0YWJsZSBoZWFkZXJzICovXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xufVxuXG4vKiBQcm9ncmVzcyBiYXIgKi9cbi5wcm9ncmVzcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwLjJyZW0gMCAwLjRyZW07XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cbi5wcm9ncmVzcyAucHJvZ3Jlc3MtYmFyIHtcbiAgd2lkdGg6IDAlO1xuICBtaW4taGVpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktYmFja2dyb3VuZCk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci1pbnRlcm5hbCk7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKiBQb3BvdmVycyAqL1xuLnBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tbmFtZTogcG9wb3Zlcjtcbn1cblxuLyogV2lkdGgsIGZvciBzb21lIHJlYXNvbiwgbmVlZHMgdG8gYmUgc2V0IGV4cGxpY2l0bHkgKi9cbi5jb250YWluZXIuZnVsbHNjcmVlbiAucG9wb3ZlciB7XG4gIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMiAqIHZhcigtLXBhZGRpbmctaW50ZXJuYWwpKTtcbn1cbi8qIFJlcGVhdGVkIGZvciBmcmFtZWxlc3MgbW9kZSBvbiBzbWFsbCBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpLCAobWF4LWhlaWdodDogNjAwcHgpIHtcbiAgLmNvbnRhaW5lci5mdWxsc2NyZWVuIC5wb3BvdmVyIHtcbiAgICB3aWR0aDogMTAwdnc7XG4gIH1cbn1cblxuLnBvcG92ZXIgPiAqIHtcbiAgd2lkdGg6IDgwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5jb250YWluZXI6bm90KC5mdWxsc2NyZWVuKSAucG9wb3ZlciB7XG4gIHdpZHRoOiB2YXIoLS13aWR0aC1jb250YWluZXIpO1xufVxuXG4vKiBTbGlkZSBpbiBmcm9tIHRoZSB0b3AgKi9cbkBrZXlmcmFtZXMgcG9wb3ZlciB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ucG9wb3ZlciA+IC5hbGVydDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAyNHB4O1xuICB0b3A6IC04cHg7XG59XG4iXX0= */