/* Put your global styles here */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/*! HTML5 Boilerplate v6.0.1 | MIT License | https://html5boilerplate.com/ */
/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */
/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */
/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Vendor-prefixed and regular ::selection selectors cannot be combined:
 * https://stackoverflow.com/a/16982510/7133471
 *
 * Customize the background color to match your design.
 */
::-moz-selection {
  background: #b3d4fc;
  text-shadow: none;
}

::selection {
  background: #b3d4fc;
  text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */
fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */
textarea {
  resize: vertical;
}

/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */
.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0;
  text-align: center;
}

/* ==========================================================================
   Helper classes
   ========================================================================== */
/*
 * Hide visually and from screen readers
 */
.hidden {
  display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  -webkit-clip-path: none;
  clip-path: none;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
  white-space: inherit;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */
.invisible {
  visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */
}

.clearfix:after {
  clear: both;
}

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   http://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    /* Black prints faster:
                                   http://www.sanbeiji.com/archives/953 */
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre {
    white-space: pre-wrap !important;
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}

html {
  -webkit-font-smoothing: antialiased;
}

body {
  font-family: Helvetica Neue, sans-serif;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: normal;
}

/* Put your design here */
body, html {
  height: 100%;
  font-size: 18px;
  font-family: "Cabin Condensed", sans-serif;
  font-weight: 600;
}

p {
  font-weight: 600;
}

.paddingBlock {
  padding: 20px 0;
}

.eqWrap {
  display: flex;
}

.eq {
  padding: 10px;
}

.equalHMWrap {
  justify-content: space-between;
}

#container {
  height: 100%;
  margin: 0 auto;
}

.tiny {
  font-size: 12px;
  line-height: 14px;
}

main.main {
  flex: 1 0 auto;
}

.btn {
  font-size: 18px;
  padding: 16px 50px;
  color: #FFF;
  margin: 0;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  background-color: rgba(249, 239, 152, 0.2);
  background: transparent;
  border: 1px solid #f9ef98;
}

.btn.black {
  background-color: transparent;
  border: 1px solid #f9ef98;
  color: #f9ef98;
}

.btn:hover {
  background-color: rgba(249, 239, 152, 0.1);
  border-color: #FFF;
}

.btn.black:hover {
  background-color: rgba(249, 239, 152, 0.12);
  border: 1px solid #f9ef98;
}

.content-block {
  margin-top: 105px;
  text-align: center;
  padding: 0px;
}

.content-block.no-top-margin {
  margin-top: 0;
}

.content-block.event-block {
  background: #000;
  padding-bottom: 100px;
}

.content-block .header-cover {
  text-align: center;
  width: 100%;
  background: #000;
  background-color: rgba(0, 0, 0, 0.4);
}

.content-block .header-cover img {
  text-align: center;
  display: inline;
  width: 100%;
}

.content-block .header-cover-bg {
  clear: both;
  background: transparent center bottom no-repeat;
  background-size: cover;
  background-image: url("/images/timo.jpg");
  position: relative;
  height: 100%;
  height: 600px;
  text-align: center;
  width: 100%;
  border: 1px solid #1b1b1b;
}

.content-block .header-text.first h2 {
  font-family: "Cabin Condensed", sans-serif;
  font-size: 45px;
  line-height: 45px;
  font-weight: 400;
  margin: 10px 0;
}

.content-block .header-text.second {
  clear: both;
  color: #fff;
  padding: 30px 0 0 0;
  font-family: "Cabin Condensed", sans-serif;
  vertical-align: middle;
  text-align: center;
  width: 60%;
  margin: 30px auto;
}

.content-block .body-text {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  text-align: left;
  padding: 30px 0;
  color: #fff;
  width: 70%;
  margin: 0 auto;
}

.content-block .columns {
  column-count: 2;
}

.content-block .note {
  margin-top: 50px;
  margin-bottom: 20px;
  max-width: 500px;
  text-align: left;
}

.content-block .footer-text {
  text-align: center;
}

.footer {
  background-color: #fff;
  color: #000;
  text-align: center;
  width: 100%;
  min-height: 150px;
}

.footer .newsletter {
  width: 320px;
  text-align: center;
  margin: 35px auto;
  padding: 35px 0;
}

.footer input {
  padding: 10px;
  line-height: 45px;
  color: #FFF;
  float: left;
  border: 1px solid #FFF;
  margin: 5px 0;
  border-radius: 0;
}

.footer #mc_embed_signup {
  clear: both;
  text-align: center;
  margin: 30px auto;
}

.footer input.button {
  background: black;
  border: 1px solid #FFF;
  text-align: center;
}

.footer .disclaimer {
  clear: both;
  text-align: center;
  font-size: 15px;
  margin-top: 100px;
  padding: 0 30px;
}

/* ---------------- HOMEPAGE ------------- */
.intro-homepage {
  width: 50%;
  margin-left: 50%;
  font-size: 30px;
  line-height: 35px;
  color: #000;
  padding: 150px 30px;
}

/* ---------------- EVENT OVERVIEW ------------- */
.content-block-container {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  margin-bottom: 100px;
  margin-top: 60px !important;
}

.events-overview {
  display: flex;
}

.events-overview .event-cover {
  text-decoration: none;
  text-align: left;
  flex: 1 1 0;
  padding: 20px;
  padding-top: 40px;
  padding-bottom: 40px;
}

.events-overview .event-cover .more {
  color: #777777;
}

.events-overview .event-cover img {
  width: 100%;
}

.events-overview .event-cover h2 {
  margin-bottom: 5px;
}

.events-overview .event-cover:hover {
  background: rgba(200, 200, 200, 0.1);
}

/* ---------------- EVENT ------------- */
.event-header-container {
  text-align: right;
}

.event-header-container a {
  text-decoration: none;
}

.detail .event-header-container {
  margin-top: 200px;
}

.event-header {
  border-top: 1px solid #ccc;
  padding: 50px 30px;
  background-color: #FFF;
  text-align: left;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 100%;
  margin: 0 auto;
  cursor: pointer;
}

.event-header .column {
  display: flex;
  flex-direction: column;
  flex-basis: 100%;
  flex: 1;
}

.event-header .details {
  flex-basis: 50%;
  float: left;
  padding-top: 75px;
  font-size: 16px;
  padding-left: 30px;
}

.event-header .subject {
  flex-basis: 50%;
  text-align: left;
}

.event-header .subject h2 {
  padding-top: 0;
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 55px;
  line-height: 35px;
  font-weight: bold;
}

.event-header .subject .subject-details {
  font-size: 18px;
  line-height: 17px;
  margin-top: 40px;
  color: #aaa;
  font-weight: 400;
}

@media only screen and (max-width: 960px) {
  /* COVER HEADER */
  .intro-homepage {
    width: 100%;
    font-size: 23px;
    line-height: 28px;
    margin-left: 0;
  }
  .event-header {
    width: 100%;
  }
  .content-block .body-text,
  .content-block .header-text.second {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media only screen and (max-width: 650px) {
  .events-overview {
    display: block;
    margin-top: 40px;
    border: 0;
  }
  .events-overview .event-cover {
    display: block;
    margin-bottom: 20px;
    border: 0;
    padding: 20px;
  }
  .columns,
  .content-block .columns {
    column-count: 1;
  }
  .event-header .details {
    padding-top: 25px;
  }
  .event-header .details,
  .event-header .subject {
    flex-basis: 100%;
    padding-left: 0;
  }
  .event-header .details h2,
  .event-header .subject h2 {
    margin: 10px 0;
    font-size: 45px;
  }
  .event-header .details .subject-details,
  .event-header .subject .subject-details {
    margin-left: 0px;
  }
  .event-header .subject .arrow {
    display: none;
  }
}

.header {
  position: relative;
  padding: 60px 30px;
  background: #FFF;
  /*  position: fixed;
  top: 0;
  right:0px;
  left: 0px; */
  z-index: 200;
}

.header a {
  text-decoration: none;
  font-weight: bold;
}

/* MENU */
.inner {
  display: flex;
  justify-content: space-between;
  font-size: 28px;
}

.project-logo {
  font-weight: bold;
  padding: 10px 0;
  text-decoration: none;
}

.main-nav ul {
  display: flex;
}

.main-nav ul li {
  padding: 10px 5px;
  font-size: 22px;
}

.main-nav ul li a {
  padding: 0 25px;
}

.right-nav {
  width: 50%;
}

/* MOBILE MENU */
.m-menu {
  position: absolute;
  top: 0;
  right: 0;
  display: none;
}

.m-menu .mm {
  border: none;
  background: none;
  cursor: pointer;
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  outline: none;
  padding: 0;
  margin-top: 60px;
}

.m-menu .mm:before, .m-menu .mm:after {
  position: absolute;
  display: block;
  content: '';
  width: 14px;
  height: 2px;
  left: 18px;
  top: 19px;
  background-color: #000;
  transition: all 0.15s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

.m-menu .mm:after {
  top: 27px;
}

.m-menu-open .m-menu .mm:before {
  top: 24px;
  transform: rotate(-45deg);
}

.m-menu-open .m-menu .mm:after {
  top: 24px;
  transform: rotate(45deg);
}

@media only screen and (max-width: 960px) {
  .m-menu {
    display: block;
  }
  html.noscroll {
    overflow: hidden;
  }
  body.noscroll {
    overflow: visible;
    height: 100%;
  }
  .m-menu-open .main-nav {
    position: fixed;
    z-index: 9999;
    display: block;
    left: 0;
    bottom: 0;
    right: 0;
    top: 164px;
    width: 100%;
    background-color: #FFF;
    color: #000;
  }
  .m-menu-open .main-nav ul {
    flex-direction: column;
    margin-top: 40px;
  }
  .m-menu-open .main-nav ul li {
    margin: 0;
    padding: 0;
  }
  .m-menu-open .main-nav ul a {
    display: block;
    text-align: center;
    font-size: 24px;
    padding-top: 45px;
    padding-bottom: 45px;
    margin: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  }
  .m-menu-open .main-nav ul a:hover {
    color: #000;
    background: #EFEFEF;
  }
  .main-nav {
    display: none;
  }
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  background-color: #fff;
  color: #000;
  padding: 0;
}

a {
  color: #000;
}

ul,
li {
  margin: 0;
  padding: 0;
}

nav li {
  list-style: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.active, a:hover {
  color: #000;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIm5vcm1hbGl6ZS5zY3NzIiwiX2JvaWxlcnBsYXRlLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfdHlwby5zY3NzIiwiX2xheW91dC5zY3NzIiwiX25hdi5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFB1dCB5b3VyIGdsb2JhbCBzdHlsZXMgaGVyZSAqL1xuQGltcG9ydCAnbm9ybWFsaXplJztcbkBpbXBvcnQgJ2JvaWxlcnBsYXRlJztcbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd0eXBvJztcbkBpbXBvcnQgJ2xheW91dCc7XG5AaW1wb3J0ICduYXYnO1xuXG4qLCAqOjpiZWZvcmUsICo6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZ2NvbG9yO1xuICBjb2xvcjogJG1haW4tY29sb3I7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmEge1xuICBjb2xvcjogJG1haW4tY29sb3I7XG59XG5cbnVsLFxubGkge1xuICBtYXJnaW46MDtcbiAgcGFkZGluZzowO1xufVxuXG5uYXYgbGkge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5hY3RpdmUsIGE6aG92ZXJ7XG4gIGNvbG9yOiAkaGlnaGxpZ2h0O1xufVxuXG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyohIEhUTUw1IEJvaWxlcnBsYXRlIHY2LjAuMSB8IE1JVCBMaWNlbnNlIHwgaHR0cHM6Ly9odG1sNWJvaWxlcnBsYXRlLmNvbS8gKi9cblxuLypcbiAqIFdoYXQgZm9sbG93cyBpcyB0aGUgcmVzdWx0IG9mIG11Y2ggcmVzZWFyY2ggb24gY3Jvc3MtYnJvd3NlciBzdHlsaW5nLlxuICogQ3JlZGl0IGxlZnQgaW5saW5lIGFuZCBiaWcgdGhhbmtzIHRvIE5pY29sYXMgR2FsbGFnaGVyLCBKb25hdGhhbiBOZWFsLFxuICogS3JvYyBDYW1lbiwgYW5kIHRoZSBINUJQIGRldiBjb21tdW5pdHkgYW5kIHRlYW0uXG4gKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJhc2Ugc3R5bGVzOiBvcGluaW9uYXRlZCBkZWZhdWx0c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlbW92ZSB0ZXh0LXNoYWRvdyBpbiBzZWxlY3Rpb24gaGlnaGxpZ2h0OlxuICogaHR0cHM6Ly90d2l0dGVyLmNvbS9taWtldGF5bHIvc3RhdHVzLzEyMjI4ODA1MzAxXG4gKlxuICogVmVuZG9yLXByZWZpeGVkIGFuZCByZWd1bGFyIDo6c2VsZWN0aW9uIHNlbGVjdG9ycyBjYW5ub3QgYmUgY29tYmluZWQ6XG4gKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTY5ODI1MTAvNzEzMzQ3MVxuICpcbiAqIEN1c3RvbWl6ZSB0aGUgYmFja2dyb3VuZCBjb2xvciB0byBtYXRjaCB5b3VyIGRlc2lnbi5cbiAqL1xuXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjYjNkNGZjO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuLypcbiAqIEEgYmV0dGVyIGxvb2tpbmcgZGVmYXVsdCBob3Jpem9udGFsIHJ1bGVcbiAqL1xuXG5ociB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLypcbiAqIFJlbW92ZSB0aGUgZ2FwIGJldHdlZW4gYXVkaW8sIGNhbnZhcywgaWZyYW1lcyxcbiAqIGltYWdlcywgdmlkZW9zIGFuZCB0aGUgYm90dG9tIG9mIHRoZWlyIGNvbnRhaW5lcnM6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvNDQwXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5pZnJhbWUsXG5pbWcsXG5zdmcsXG52aWRlbyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLypcbiAqIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IHN0eWxlcy5cbiAqL1xuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKlxuICogQWxsb3cgb25seSB2ZXJ0aWNhbCByZXNpemluZyBvZiB0ZXh0YXJlYXMuXG4gKi9cblxudGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCcm93c2VyIFVwZ3JhZGUgUHJvbXB0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYnJvd3NlcnVwZ3JhZGUge1xuICAgIG1hcmdpbjogMC4yZW0gMDtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHBhZGRpbmc6IDAuMmVtIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSGVscGVyIGNsYXNzZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzXG4gKi9cblxuLmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKi9cblxuLnZpc3VhbGx5aGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiAxICovXG59XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnRcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxuICogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICovXG5cbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6YWN0aXZlLFxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTpmb2N1cyB7XG4gICAgY2xpcDogYXV0bztcbiAgICAtd2Via2l0LWNsaXAtcGF0aDogbm9uZTtcbiAgICBjbGlwLXBhdGg6IG5vbmU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xufVxuXG4vKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuICovXG5cbi5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLypcbiAqIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuICpcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgcmVjZWl2ZSB0aGUgYGNsZWFyZml4YCBjbGFzcy5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cblxuLmNsZWFyZml4OmJlZm9yZSxcbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMiAqL1xufVxuXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIHByaW50IHtcbiAgICAqLFxuICAgICo6YmVmb3JlLFxuICAgICo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50OyAvKiBCbGFjayBwcmludHMgZmFzdGVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LnNhbmJlaWppLmNvbS9hcmNoaXZlcy85NTMgKi9cbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgYVtocmVmXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICAgIH1cblxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogRG9uJ3Qgc2hvdyBsaW5rcyB0aGF0IGFyZSBmcmFnbWVudCBpZGVudGlmaWVycyxcbiAgICAgKiBvciB1c2UgdGhlIGBqYXZhc2NyaXB0OmAgcHNldWRvIHByb3RvY29sXG4gICAgICovXG5cbiAgICBhW2hyZWZePVwiI1wiXTphZnRlcixcbiAgICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgIHByZSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFByaW50aW5nIFRhYmxlczpcbiAgICAgKiBodHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcbiAgICAgKi9cblxuICAgIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICAgIH1cblxuICAgIHRyLFxuICAgIGltZyB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgb3JwaGFuczogMztcbiAgICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgfVxufVxuIiwiJGJnY29sb3I6ICNmZmY7XG4kbWFpbi1jb2xvcjogIzAwMDtcbiRzZWNvbmQtY29sb3I6ICNmMWZiOWE7XG4kc2Vjb25kLWNvbG9yOiAjZjllZjk4O1xuJGhhcmQteWVsbG93OiAjRTFGRjMyO1xuJGhpZ2hsaWdodDogIzAwMDtcbiRkYXJrLWdyZXk6ICM3Nzc3Nzc7XG5cbiRtYWluLWZvbnQ6ICdDYWJpbiBDb25kZW5zZWQnLCBzYW5zLXNlcmlmO1xuJGhlYWRlci1mb250OidDYWJpbiBDb25kZW5zZWQnLCBzYW5zLXNlcmlmO1xuXG4kbWF4LXdpZHRoOiAxMjAwcHg7XG4kbW9iaWxlLWJyZWFrcG9pbnQtd2lkdGg6IDk2MHB4O1xuICIsIlxuaHRtbCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG5ib2R5IHsgIFxuICBmb250LWZhbWlseTogSGVsdmV0aWNhIE5ldWUsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgIFxufVxuXG4iLCIvKiBQdXQgeW91ciBkZXNpZ24gaGVyZSAqL1xuXG5ib2R5LCBodG1sIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRmb250LXNpemU6IDE4cHg7XG5cdGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xuXHRmb250LXdlaWdodDogNjAwO1xufVxucCB7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cblxuLnBhZGRpbmdCbG9jayB7XG5cdHBhZGRpbmc6IDIwcHggMDtcbn1cblxuLmVxV3JhcCB7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG5cbi5lcSB7XG5cdHBhZGRpbmc6IDEwcHg7XG59XG4uZXF1YWxITVdyYXAge1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4jY29udGFpbmVyIHtcbi8vXHRkaXNwbGF5OiBmbGV4O1xuLy9cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGhlaWdodDogMTAwJTtcblx0Ly8gbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuXHRtYXJnaW46IDAgYXV0bztcbn1cbi50aW55IHtcblx0Zm9udC1zaXplOjEycHg7XG5cdGxpbmUtaGVpZ2h0OiAxNHB4XG59XG5tYWluLm1haW4ge1xuXHRmbGV4OiAxIDAgYXV0bztcbn1cbi5idG4ge1xuXHRmb250LXNpemU6IDE4cHg7XG5cdHBhZGRpbmc6IDE2cHggNTBweDtcblx0Y29sb3I6ICNGRkY7XG5cdG1hcmdpbjogMDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNlY29uZC1jb2xvciwgMC4yKTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRzZWNvbmQtY29sb3I7XG59XG4uYnRuLmJsYWNrIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRzZWNvbmQtY29sb3I7XG5cdGNvbG9yOiAkc2Vjb25kLWNvbG9yO1xufVxuLmJ0bjpob3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNlY29uZC1jb2xvciwgMC4xKTtcblx0Ym9yZGVyLWNvbG9yOiAjRkZGO1xufVxuLmJ0bi5ibGFjazpob3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNlY29uZC1jb2xvciwgMC4xMik7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRzZWNvbmQtY29sb3I7XG59XG5cbi5jb250ZW50LWJsb2NrIHtcblx0bWFyZ2luLXRvcDogMTA1cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZzogMHB4O1xuXHQmLm5vLXRvcC1tYXJnaW4ge1xuXHRcdG1hcmdpbi10b3A6MDtcblx0fVxuXHQmLmV2ZW50LWJsb2NrICB7XG5cdFx0YmFja2dyb3VuZDogIzAwMDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG5cdH1cblx0LmhlYWRlci1jb3ZlciB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGJhY2tncm91bmQ6ICMwMDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbWFpbi1jb2xvciwwLjQpO1xuXHR9XG5cdC5oZWFkZXItY292ZXIgaW1nIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cdC5oZWFkZXItY292ZXItYmcge1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IGNlbnRlciBib3R0b20gbm8tcmVwZWF0O1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvdGltby5qcGcnKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGhlaWdodDogNjAwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICMxYjFiMWI7XG5cdH1cblxuXHQuaGVhZGVyLXRleHQuZmlyc3QgaDIge1xuXHRcdGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQ7XG5cdFx0Zm9udC1zaXplOiA0NXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA0NXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0bWFyZ2luOiAxMHB4IDA7XG5cdH1cblx0LmhlYWRlci10ZXh0LnNlY29uZCB7XG5cdFx0Y2xlYXI6Ym90aDtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRwYWRkaW5nOiAzMHB4IDAgMCAwO1xuXHRcdGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0Ly8gYmFja2dyb3VuZC1jb2xvcjogJG1haW4tY29sb3I7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiA2MCU7XG5cdFx0bWFyZ2luOiAzMHB4IGF1dG87XG5cblx0fVxuXG5cdC5ib2R5LXRleHQge1xuXHRcdGJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoI2ZmZiwwLjIpO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0cGFkZGluZzogMzBweCAwO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHdpZHRoOiA3MCU7XG5cdFx0bWFyZ2luOjAgYXV0bztcblxuXHR9XG4gIC5jb2x1bW5zIHtcblx0XHRcdGNvbHVtbi1jb3VudDogMjtcblx0fVxuXHQubm90ZSB7XG5cdFx0bWFyZ2luLXRvcDogNTBweDtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdG1heC13aWR0aDogNTAwcHg7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXHQuZm9vdGVyLXRleHQge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG59XG4uZm9vdGVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0Y29sb3I6ICMwMDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2lkdGg6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IDE1MHB4O1xuXHQubmV3c2xldHRlciB7XG5cdFx0d2lkdGg6IDMyMHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW46IDM1cHggYXV0bztcblx0XHRwYWRkaW5nOiAzNXB4IDA7XG5cdH1cblx0aW5wdXQge1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQ1cHg7XG5cdFx0Y29sb3I6ICNGRkY7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0Ym9yZGVyOjFweCBzb2xpZCAjRkZGO1xuXHRcdG1hcmdpbjo1cHggMDtcblx0XHRib3JkZXItcmFkaXVzOjA7XG5cdH1cblx0I21jX2VtYmVkX3NpZ251cCB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbjogMzBweCBhdXRvO1xuXHR9XG5cdGlucHV0LmJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogZGFya2VuKCRtYWluLWNvbG9yLCAxMCUpO1xuXHRcdGJvcmRlcjoxcHggc29saWQgI0ZGRjtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHQuZGlzY2xhaW1lciB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRtYXJnaW4tdG9wOiAxMDBweDtcblx0XHRwYWRkaW5nOiAwIDMwcHg7XG5cdH1cbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tIEhPTUVQQUdFIC0tLS0tLS0tLS0tLS0gKi9cbi5pbnRyby1ob21lcGFnZSB7XG5cdHdpZHRoOiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiA1MCU7XG5cdGZvbnQtc2l6ZTogMzBweDtcblx0bGluZS1oZWlnaHQ6IDM1cHg7XG5cdGNvbG9yOiAjMDAwO1xuXHRwYWRkaW5nOiAxNTBweCAzMHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tIEVWRU5UIE9WRVJWSUVXIC0tLS0tLS0tLS0tLS0gKi9cbi5jb250ZW50LWJsb2NrLWNvbnRhaW5lciB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblx0bWFyZ2luLWJvdHRvbTogMTAwcHg7XG5cdG1hcmdpbi10b3A6IDYwcHggIWltcG9ydGFudDtcbn1cbi5ldmVudHMtb3ZlcnZpZXcge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHQuZXZlbnQtY292ZXIge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGZsZXg6IDEgMSAwO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0cGFkZGluZy10b3A6IDQwcHg7XG5cdFx0cGFkZGluZy1ib3R0b206IDQwcHg7XG5cdFx0Lm1vcmUge1xuXHRcdFx0Y29sb3I6ICRkYXJrLWdyZXk7XG5cdFx0fVxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdFx0aDIge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdH1cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMjAwLDIwMCwyMDAsMC4xKTtcblx0XHR9XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLSBFVkVOVCAtLS0tLS0tLS0tLS0tICovXG4uZXZlbnQtaGVhZGVyLWNvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRhIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cbn1cbi5kZXRhaWwgLmV2ZW50LWhlYWRlci1jb250YWluZXIge1xuXHRtYXJnaW4tdG9wOiAyMDBweDtcbn1cbi5ldmVudC1oZWFkZXIge1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcblx0cGFkZGluZzogNTBweCAzMHB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDAgYXV0bztcblx0Y3Vyc29yOnBvaW50ZXI7XG5cblxuXHQuY29sdW1uIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuICAgXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICBcdFx0ZmxleC1iYXNpczogMTAwJTtcbiAgIFx0XHRmbGV4OiAxO1xuXHR9XG5cdC5kZXRhaWxzIHtcblx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0cGFkZGluZy10b3A6IDc1cHg7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdHBhZGRpbmctbGVmdDogMzBweDtcblxuXHR9XG5cdC5zdWJqZWN0IHtcblx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRoMiB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0Zm9udC1zaXplOiA1NXB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDM1cHg7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR9XG5cdFx0LnN1YmplY3QtZGV0YWlscyB7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMTdweDtcblx0XHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdFx0XHRjb2xvcjogI2FhYTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0fVxuXHR9XG5cbn1cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtb2JpbGUtYnJlYWtwb2ludC13aWR0aCkge1xuXG5cblxuXHQvKiBDT1ZFUiBIRUFERVIgKi9cblx0LmludHJvLWhvbWVwYWdlIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRmb250LXNpemU6IDIzcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI4cHg7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQuZXZlbnQtaGVhZGVyIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXHQuY29udGVudC1ibG9jayB7XG5cdFx0LmJvZHktdGV4dCxcblx0XHQuaGVhZGVyLXRleHQuc2Vjb25kIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHR9XG5cblx0fVxufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjUwcHgpIHtcblxuXHQuZXZlbnRzLW92ZXJ2aWV3IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tdG9wOiA0MHB4O1xuXHRcdGJvcmRlcjowO1xuXHRcdC5ldmVudC1jb3ZlciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdH1cblx0fVxuXHQuY29sdW1ucyxcblx0LmNvbnRlbnQtYmxvY2sgLmNvbHVtbnMge1xuXHRcdFx0Y29sdW1uLWNvdW50OiAxO1xuXHR9XG5cblxuXHRcdC5ldmVudC1oZWFkZXIge1xuXHRcdFx0LmRldGFpbHMge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjVweDtcblx0XHRcdH1cblx0XHRcdC5kZXRhaWxzLFxuXHRcdFx0LnN1YmplY3Qge1xuXHRcdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdGgyIHtcblx0XHRcdFx0XHRtYXJnaW46IDEwcHggMDtcblx0XHRcdFx0XHRmb250LXNpemU6IDQ1cHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0LnN1YmplY3QtZGV0YWlscyB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuc3ViamVjdCAuYXJyb3cge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0fVxuXG5cblxuXG5cdH1cbiIsIlxuLmhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogNjBweCAzMHB4O1xuICBiYWNrZ3JvdW5kOiNGRkY7XG4vKiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OjBweDtcbiAgbGVmdDogMHB4OyAqL1xuICB6LWluZGV4OiAyMDA7XG59XG4uaGVhZGVyIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyogTUVOVSAqL1xuLmlubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LXNpemU6IDI4cHg7XG59XG4vLyBpbm5lciAtIHJpZ2h0LW5hdiAobWFpbi1uYXYpXG4ucHJvamVjdC1sb2dvIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuIC8vIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQ7XG59XG5cbi5tYWluLW5hdiB1bCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGxpIHtcbiAgICBwYWRkaW5nOiAxMHB4IDVweDtcbiAgICBmb250LXNpemU6MjJweDtcbiAgfVxuICBsaSBhIHtcbiAgICBwYWRkaW5nOiAwIDI1cHg7XG4gIH1cbn1cblxuLnJpZ2h0LW5hdiB7XG4gIHdpZHRoOiA1MCU7XG59XG4vKiBNT0JJTEUgTUVOVSAqL1xuLm0tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOjA7XG4gIHJpZ2h0OjA7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgLm1tIHtcbiAgICBib3JkZXI6bm9uZTtcbiAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDo1MHB4O1xuICAgIGhlaWdodDo1MHB4O1xuICAgIG91dGxpbmU6bm9uZTtcbiAgICBwYWRkaW5nOiAwOyAvLyBpb3MgaGFzIGEgYnVnIG90aGVyd2lzZVxuICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb250ZW50OicnO1xuICAgICAgd2lkdGg6MTRweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgbGVmdDogMThweDtcbiAgICAgIHRvcDogMTlweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6JG1haW4tY29sb3I7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgdG9wOiAyN3B4O1xuICAgIH1cbiAgfVxufVxuXG4ubS1tZW51LW9wZW4ge1xuICAubS1tZW51IC5tbSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgdG9wOjI0cHg7XG4gICAgICB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgdG9wOjI0cHg7XG4gICAgICB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbW9iaWxlLWJyZWFrcG9pbnQtd2lkdGgpIHtcbiAgYm9keSB7XG4gICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIH1cbiAgLm0tbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBodG1sLm5vc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgYm9keS5ub3Njcm9sbCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLm0tbWVudS1vcGVuIHtcbiAgICAubWFpbi1uYXYge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTowO1xuICAgICAgcmlnaHQ6MDtcbiAgICAgIHRvcDogMTY0cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIHVsIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgbGkge1xuICAgICAgICAgIG1hcmdpbjowO1xuICAgICAgICAgIHBhZGRpbmc6MDtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiA0NXB4O1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0NXB4O1xuICAgICAgICAgIG1hcmdpbjowO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoJG1haW4tY29sb3IsIDAuMilcbiAgICAgICAgfVxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjRUZFRkVGO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1haW4tbmF2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUNBakMsNEVBQTRFO0FBRTVFO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxJQUFJO0VBQUUsT0FBTztFQUMxQix3QkFBd0IsRUFBRSxJQUFJO0VBQUUsT0FBTztDQUN4Qzs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSCxBQUFBLElBQUks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 */
