/*!
 * The Bronson adaptation for the VW6 Design
 * @version v1.3.0
 * @link https://bronson.vwfs.tools
 * @author Volkswagen Financial Services Digital Solutions GmbH
 * @license SEE LICENSE IN LICENSE.md
 * Copyright Â©2020 Volkswagen Financial Services Digital Solutions GmbH. All rights reserved.
 */
@charset "UTF-8";
/*------------------------------------*\
  #SG-STYLES
\*------------------------------------*/
/**
 * This file provides styles for styleguide elements and overrides styles for
 * specific components in the fractal styleguide.
 */
/**
 * VW6 static spacing as defined in LSG. Not all spacings are mapped to the
 * multi-brand XXSMALL to XXLARGE spacings.
 *
 * DON'T USE THESE VARS IN YOUR CODEBASE!!!
 */
/**
 * Spacings are required settings for all brands (xxs - xxl).
 * - Required to have all scales available in all brands (multibrand & one-markup-approach).
 * - Used for generating of spacing utilities.
 */
/* stylelint-disable string-quotes */
/* stylelint-enable */
/* stylelint-disable string-quotes */
/* stylelint-enable */
/*------------------------------------*\
    #FORMS
\*------------------------------------*/
/**
 * [1] Magic number needed for hiding the shadow in the
 *     Interaction Layer.
 */
/* [1] */
/**
 * Spacings are required settings for all brands (XXSMALL - XXLARGE).
 * - Required to have all scales available in all brands (multibrand & one-markup-approach).
 * - Used for generating of spacing utilities.
 */
/* stylelint-disable string-quotes */
/* stylelint-enable */
/* stylelint-disable string-quotes */
/* stylelint-enable */
/*------------------------------------*\
    #FORMS
\*------------------------------------*/
/* stylelint-disable declaration-no-important */
/* stylelint-enable */
/**
 * Get alignment for flexbox-based modules.
 * Remaps alignment (center, left, right) to flexbox values.
 */
/**
 * [1] `transparent` does not work in iOS
 */
/**
 * [1] Only overwrite the bottom and top spacing if a specific
 *     `$spacing-between-modules` is defined and it is different from
 *     `$spacing-vertical`.
 * [2] Raise specificity to overwrite `:first-child` and `:last-child` selectors
 *     of spacing-container mixin.
 */
/* stylelint-disable plugin/no-unsupported-browser-features, value-list-comma-newline-after, value-list-comma-space-after, no-extra-semicolons */
/* stylelint-enable */
/**
 * @TODO:
 * no variables / settings-file in tools
 * use mixin params
 * set variables in settings layer
 */
/*
 * In IE11/Edge the shadow at the top/bottom does not disappear when scrolling
 * to the very top and bottom. What is even worse is that the bottom shadow is
 * not displayed when scrolled to the very top, so the indicator that the
 * container is scrollable, is missing. Therefore, the fallback for these two
 * browser is a static bottom shadow.
 */
/**
 * Extract play-button styles to reusable mixin to reuse
 * in other modules without altering markup.
 */
/**
 * [1] Center icon inside button.
 * [2] Overwrite plyr default.
 */
/**
 * Then, let's include specific overrides from Bronson-Default.
 */
/*------------------------------------*\
  #CUSTOM STYLEGUIDE STYLES
\*------------------------------------*/
/**
 * Adds a notice at the top of the component containing `$text`.
 */
/**
 * Component variant wrapper for fractal styleguide view (for collated components).
 */
.sg-component-variant {
  margin-bottom: 32px;
}

/**
 * Cards.
 *
 * [1] Present more realistic dimensions of the card component.
 * [2] Reset the cards width for cards slider and collapsible cards.
 */
[class*="sg-scope-card"] .c-card {
  max-width: 400px;
  /* [1] */
}

[class*="sg-scope-card"].sg-scope-card-with-divider .c-card, [class*="sg-scope-card"].sg-scope-cards-slider .c-card {
  max-width: initial;
  /* [2] */
}

/**
 * Tile select.
 *
 * [1] Present more realistic dimensions of the tile select component.
 */
.sg-scope-tile-select .c-tile-select {
  max-width: 400px;
  /* [1] */
}

/**
 * Media Teaser.
 *
 * [1] Remove margin between collated variants.
 */
.sg-scope-media-teaser .sg-component-variant {
  margin-bottom: 0;
  /* [1] */
}

/**
 * Set full viewport-height for better theming-preview (Bluelabel-specific).
 */
body[data-theme],
body[class^="u-bg-"] {
  min-height: 100vh;
}

/**
 * Custom select.
 */
.sg-scope-custom-select .c-custom-select__dropdown {
  position: relative;
}

.sg-component-preview:not(.sg-component-preview--full) #sg-component-wrapper {
  padding: 32px;
}

/**
 * Theme/brand select boxes.
 */
.sg-select-box {
  display: inline-flex;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
}

.sg-select-box__label {
  margin-right: 32px;
  margin-bottom: 0;
}

.sg-component-preview .sg-controls {
  position: fixed;
  display: flex;
  right: 0;
  z-index: 9999;
  bottom: 0;
  background: white;
  box-shadow: 0 2px 5px 1px rgba(0, 0, 0, 0.4);
}

.sg-component-preview .sg-select-box {
  margin-top: 20px;
  margin-left: 20px;
  margin-right: 20px;
  margin-bottom: 20px;
}

.sg-component-preview .sg-brand-select {
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.15s linear;
}

.sg-component-preview .sg-brand-select.js-ready {
  visibility: visible;
  opacity: 1;
}

/**
 * The vertical bar component is included in every package, but should just be
 * visible in Bronson-VW. However, since the component is present in the
 * Fractal Nav in every package, we provide some description text (the `<p>`
 * element in the selector), that is shown alternatively in all the other
 * packages, that describes this fact. This `<p>` element however should just
 * be visible in the single component view in Fractal and not on sample pages
 * etc. Thatâ€™s why we scope it to the `.sg-scope-vertical-bar`.
 */
html:not(.sg-scope-vertical-bar) .c-vertical-bar + p {
  display: none;
}

/**
 * Hide `.c-logo__image` image for default package in development environment
 * and while running Bronson locally via `npm run multibrand` because
 * package specific logo images canâ€™t be defined in both cases.
 * As fallback the background image of `.c-logo` will be used.
 */
.sg-package-default.sg-env-development .c-logo__image {
  display: none;
}

.sg-package-default.sg-env-development .c-logo {
  background-position: initial;
}

.sg-scope-webcalc::before {
  display: block;
  padding: 12px 20px;
  background: #001e50;
  color: #fff;
  text-align: center;
  content: "Below form is generated by CalculatorJS, which is developed by the webCALC team. More information in the component notes.";
}

/**
 * Then, let's include our specific overrides.
 */
/*------------------------------------*\
  #CUSTOM STYLEGUIDE STYLES
\*------------------------------------*/
/**
 * [1] Adjust demo background color for components that otherwise are difficult
 *     to display on a white background.
 */
.sg-scope-spinner,
.sg-scope-spinner-small,
.sg-scope-spinner-center,
.sg-scope-guiding-line-with-alternative-color {
  /* [1] */
  background: #96a3a8 !important;
}

.sg-scope-spinner::before,
.sg-scope-spinner-small::before,
.sg-scope-spinner-center::before,
.sg-scope-guiding-line-with-alternative-color::before {
  display: block;
  padding: 12px 20px;
  background: #001e50;
  color: #fff;
  text-align: center;
  content: "The grey background seen here is only for demo purposes.";
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNnLmNzcyIsInNnLnNjc3MiLCIuLi8uLi8uLi9zcmMvc2Nzcy8wMS1zZXR0aW5ncy9fc2V0dGluZ3MuYmFzZS5zY3NzIiwiLi4vLi4vLi4vc3JjL3Njc3MvMDEtc2V0dGluZ3MvX3NldHRpbmdzLmZvbnRzLnNjc3MiLCIuLi8uLi8uLi9zcmMvc2Nzcy8wMS1zZXR0aW5ncy9fc2V0dGluZ3MuaWNvbi1mb250cy5zY3NzIiwiLi4vLi4vLi4vc3JjL3Njc3MvMDEtc2V0dGluZ3MvX3NldHRpbmdzLmZvcm1zLnNjc3MiLCIuLi8uLi8uLi9zcmMvc2Nzcy8wMS1zZXR0aW5ncy9fc2V0dGluZ3Muc2hhZG93cy5zY3NzIiwiLi4vLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAxLXNldHRpbmdzL19zZXR0aW5ncy5iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDEtc2V0dGluZ3MvX3NldHRpbmdzLmZvbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDEtc2V0dGluZ3MvX3NldHRpbmdzLmljb24tZm9udHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMS1zZXR0aW5ncy9fc2V0dGluZ3MuZm9ybXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMuY2xlYXJmaXguc2NzcyIsIi4uLy4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMuZmxleC1hbGlnbm1lbnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Jyb25zb24tY29yZS8wMi10b29scy9fdG9vbHMudG91Y2gtaGlnaGxpZ2h0LnNjc3MiLCIuLi8uLi8uLi8uLi9icm9uc29uLWNvcmUvMDItdG9vbHMvX3Rvb2xzLnNwYWNpbmctY29udGFpbmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDItdG9vbHMvX3Rvb2xzLmZvbnQtZmFjZS5zY3NzIiwiLi4vLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAyLXRvb2xzL190b29scy5iYWRnZS5zY3NzIiwiLi4vLi4vLi4vLi4vYnJvbnNvbi1kZWZhdWx0L3NyYy9zY3NzLzAyLXRvb2xzL190b29scy5zY3JvbGxhYmxlLnNjc3MiLCIuLi8uLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3JjL3Njc3MvMDItdG9vbHMvX3Rvb2xzLnBsYXktYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi8uLi9icm9uc29uLWRlZmF1bHQvc3R5bGVndWlkZS90aGVtZS1vdmVycmlkZXMvc3R5bGVzL19zZy1zdHlsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Jyb25zb24tZGVmYXVsdC9zcmMvc2Nzcy8wMS1zZXR0aW5ncy9fc2V0dGluZ3Muc2hhZG93cy5zY3NzIiwiLi4vLi4vLi4vc3JjL3Njc3MvMDEtc2V0dGluZ3MvX3NldHRpbmdzLmNvbG9ycy5zY3NzIiwiX3NnLXN0eWxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsZ0JBQWdCO0FDQWhCOzt1Q0RHdUM7QUNDdkM7OztFREdFO0FFQ0Y7Ozs7O0VGS0U7QUVlRjs7OztFRlZFO0FHWkYsb0NBQUE7QUFvQ0EscUJBQUE7QUNwQ0Esb0NBQUE7QUFTQSxxQkFBQTtBQ2ZBOzt1Q0x5QnVDO0FNckJ2Qzs7O0VOeUJFO0FNbkJpQyxRQUFBO0FDRm5DOzs7O0VQMkJFO0FRN0JGLG9DQUFBO0FBOEJBLHFCQUFBO0FDOUJBLG9DQUFBO0FBU0EscUJBQUE7QUNmQTs7dUNWMEN1QztBV3RDdkMsK0NBQUE7QUFrQkEscUJBQUE7QUNsQkE7OztFWjRDRTtBYXpDRjs7RWI0Q0U7QWMvQ0Y7Ozs7OztFZHNERTtBZXRERixnSkFBQTtBQTJHQSxxQkFBQTtBQy9HQTs7Ozs7RWhCa0VFO0FpQnpERjs7Ozs7O0VqQmdFRTtBa0JyRUY7OztFbEJ5RUU7QWtCdkRGOzs7RWxCMkRFO0FDckVGOztFRHdFRTtBbUJwRkY7O3VDbkJ1RnVDO0FtQm5GdkM7O0VuQnNGRTtBbUJ4RUY7O0VuQjJFRTtBbUJ4RUY7RUFDSSxtQmpCRjhCO0FGNEVsQzs7QW1CdkVBOzs7OztFbkI4RUU7QUFDRjtFbUJ0RVEsZ0JBQWdCO0VBQUUsUUFBQTtBbkJ5RTFCOztBQUVBO0VtQnJFWSxrQkFBa0I7RUFBRSxRQUFBO0FuQndFaEM7O0FtQmpFQTs7OztFbkJ1RUU7QW1CbEVGO0VBR1EsZ0JBQWdCO0VBQUUsUUFBQTtBbkJtRTFCOztBbUI5REE7Ozs7RW5Cb0VFO0FtQi9ERDtFQUdPLGdCQUFnQjtFQUFFLFFBQUE7QW5CZ0UxQjs7QW1CM0RBOztFbkIrREU7QW1CNURGOztFQUVJLGlCQUFpQjtBbkI4RHJCOztBbUIzREE7O0VuQitERTtBbUI1REY7RUFHUSxrQkFBa0I7QW5CNEQxQjs7QW1CdkRBO0VBQ0ksYWpCekU4QjtBRm1JbEM7O0FtQnZEQTs7RW5CMkRFO0FtQnhERjtFQUNJLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLGtCQUFrQjtBbkIwRHRCOztBbUJ2REE7RUFDSSxrQmpCdkY4QjtFaUJ3RjlCLGdCQUFnQjtBbkIwRHBCOztBbUJ2REE7RUFHUSxlQUFlO0VBQ2YsYUFBYTtFQUNiLFFBQVE7RUFDUixhQUFhO0VBQ2IsU0FBUztFQUNULGlCQUFpQjtFQUNqQiw0Q0NqSCtDO0FwQnlLdkQ7O0FtQmpFQTtFQWFRLGdCakJ0RzBCO0VpQnVHMUIsaUJqQnZHMEI7RWlCd0cxQixrQmpCeEcwQjtFaUJ5RzFCLG1CakJ6RzBCO0FGaUtsQzs7QW1CeEVBO0VBb0JRLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsZ0NBQWdDO0FuQndEeEM7O0FtQjlFQTtFQXlCWSxtQkFBbUI7RUFDbkIsVUFBVTtBbkJ5RHRCOztBbUJsREE7Ozs7Ozs7O0VuQjRERTtBbUJuREY7RUFDSSxhQUFhO0FuQnFEakI7O0FtQmxEQTs7Ozs7RW5CeURFO0FtQm5ERjtFQUNJLGFBQWE7QW5CcURqQjs7QW1CbERBO0VBQ0ksNEJBQTRCO0FuQnFEaEM7O0FtQnJOSTtFQUNJLGNBQWM7RUFDZCxrQmpCWTBCO0VpQlgxQixtQkVGdUI7RUZHdkIsV0VKb0I7RUZLcEIsa0JBQWtCO0VBQ2xCLG9JQThKaUo7QW5CMER6Sjs7QUNyTkE7O0VEeU5FO0FzQjFPRjs7dUN0QjZPdUM7QXNCek92Qzs7O0V0QjZPRTtBc0J4T0Y7Ozs7RUFHZ0QsUUFBQTtFQUc1Qyw4QkFBa0M7QXRCeU90Qzs7QW1CaFBJOzs7O0VBQ0ksY0FBYztFQUNkLGtCakJZMEI7RWlCWDFCLG1CRUZ1QjtFRkd2QixXRUpvQjtFRktwQixrQkFBa0I7RUFDbEIsbUVHRGdGO0F0QnVQeEYiLCJmaWxlIjoic2cuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1NHLVNUWUxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogVGhpcyBmaWxlIHByb3ZpZGVzIHN0eWxlcyBmb3Igc3R5bGVndWlkZSBlbGVtZW50cyBhbmQgb3ZlcnJpZGVzIHN0eWxlcyBmb3JcbiAqIHNwZWNpZmljIGNvbXBvbmVudHMgaW4gdGhlIGZyYWN0YWwgc3R5bGVndWlkZS5cbiAqL1xuLyoqXG4gKiBWVzYgc3RhdGljIHNwYWNpbmcgYXMgZGVmaW5lZCBpbiBMU0cuIE5vdCBhbGwgc3BhY2luZ3MgYXJlIG1hcHBlZCB0byB0aGVcbiAqIG11bHRpLWJyYW5kIFhYU01BTEwgdG8gWFhMQVJHRSBzcGFjaW5ncy5cbiAqXG4gKiBET04nVCBVU0UgVEhFU0UgVkFSUyBJTiBZT1VSIENPREVCQVNFISEhXG4gKi9cbi8qKlxuICogU3BhY2luZ3MgYXJlIHJlcXVpcmVkIHNldHRpbmdzIGZvciBhbGwgYnJhbmRzICh4eHMgLSB4eGwpLlxuICogLSBSZXF1aXJlZCB0byBoYXZlIGFsbCBzY2FsZXMgYXZhaWxhYmxlIGluIGFsbCBicmFuZHMgKG11bHRpYnJhbmQgJiBvbmUtbWFya3VwLWFwcHJvYWNoKS5cbiAqIC0gVXNlZCBmb3IgZ2VuZXJhdGluZyBvZiBzcGFjaW5nIHV0aWxpdGllcy5cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc3RyaW5nLXF1b3RlcyAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc3RyaW5nLXF1b3RlcyAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9STVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFsxXSBNYWdpYyBudW1iZXIgbmVlZGVkIGZvciBoaWRpbmcgdGhlIHNoYWRvdyBpbiB0aGVcbiAqICAgICBJbnRlcmFjdGlvbiBMYXllci5cbiAqL1xuLyogWzFdICovXG4vKipcbiAqIFNwYWNpbmdzIGFyZSByZXF1aXJlZCBzZXR0aW5ncyBmb3IgYWxsIGJyYW5kcyAoWFhTTUFMTCAtIFhYTEFSR0UpLlxuICogLSBSZXF1aXJlZCB0byBoYXZlIGFsbCBzY2FsZXMgYXZhaWxhYmxlIGluIGFsbCBicmFuZHMgKG11bHRpYnJhbmQgJiBvbmUtbWFya3VwLWFwcHJvYWNoKS5cbiAqIC0gVXNlZCBmb3IgZ2VuZXJhdGluZyBvZiBzcGFjaW5nIHV0aWxpdGllcy5cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc3RyaW5nLXF1b3RlcyAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc3RyaW5nLXF1b3RlcyAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9STVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogR2V0IGFsaWdubWVudCBmb3IgZmxleGJveC1iYXNlZCBtb2R1bGVzLlxuICogUmVtYXBzIGFsaWdubWVudCAoY2VudGVyLCBsZWZ0LCByaWdodCkgdG8gZmxleGJveCB2YWx1ZXMuXG4gKi9cbi8qKlxuICogWzFdIGB0cmFuc3BhcmVudGAgZG9lcyBub3Qgd29yayBpbiBpT1NcbiAqL1xuLyoqXG4gKiBbMV0gT25seSBvdmVyd3JpdGUgdGhlIGJvdHRvbSBhbmQgdG9wIHNwYWNpbmcgaWYgYSBzcGVjaWZpY1xuICogICAgIGAkc3BhY2luZy1iZXR3ZWVuLW1vZHVsZXNgIGlzIGRlZmluZWQgYW5kIGl0IGlzIGRpZmZlcmVudCBmcm9tXG4gKiAgICAgYCRzcGFjaW5nLXZlcnRpY2FsYC5cbiAqIFsyXSBSYWlzZSBzcGVjaWZpY2l0eSB0byBvdmVyd3JpdGUgYDpmaXJzdC1jaGlsZGAgYW5kIGA6bGFzdC1jaGlsZGAgc2VsZWN0b3JzXG4gKiAgICAgb2Ygc3BhY2luZy1jb250YWluZXIgbWl4aW4uXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIHBsdWdpbi9uby11bnN1cHBvcnRlZC1icm93c2VyLWZlYXR1cmVzLCB2YWx1ZS1saXN0LWNvbW1hLW5ld2xpbmUtYWZ0ZXIsIHZhbHVlLWxpc3QtY29tbWEtc3BhY2UtYWZ0ZXIsIG5vLWV4dHJhLXNlbWljb2xvbnMgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQFRPRE86XG4gKiBubyB2YXJpYWJsZXMgLyBzZXR0aW5ncy1maWxlIGluIHRvb2xzXG4gKiB1c2UgbWl4aW4gcGFyYW1zXG4gKiBzZXQgdmFyaWFibGVzIGluIHNldHRpbmdzIGxheWVyXG4gKi9cbi8qXG4gKiBJbiBJRTExL0VkZ2UgdGhlIHNoYWRvdyBhdCB0aGUgdG9wL2JvdHRvbSBkb2VzIG5vdCBkaXNhcHBlYXIgd2hlbiBzY3JvbGxpbmdcbiAqIHRvIHRoZSB2ZXJ5IHRvcCBhbmQgYm90dG9tLiBXaGF0IGlzIGV2ZW4gd29yc2UgaXMgdGhhdCB0aGUgYm90dG9tIHNoYWRvdyBpc1xuICogbm90IGRpc3BsYXllZCB3aGVuIHNjcm9sbGVkIHRvIHRoZSB2ZXJ5IHRvcCwgc28gdGhlIGluZGljYXRvciB0aGF0IHRoZVxuICogY29udGFpbmVyIGlzIHNjcm9sbGFibGUsIGlzIG1pc3NpbmcuIFRoZXJlZm9yZSwgdGhlIGZhbGxiYWNrIGZvciB0aGVzZSB0d29cbiAqIGJyb3dzZXIgaXMgYSBzdGF0aWMgYm90dG9tIHNoYWRvdy5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0IHBsYXktYnV0dG9uIHN0eWxlcyB0byByZXVzYWJsZSBtaXhpbiB0byByZXVzZVxuICogaW4gb3RoZXIgbW9kdWxlcyB3aXRob3V0IGFsdGVyaW5nIG1hcmt1cC5cbiAqL1xuLyoqXG4gKiBbMV0gQ2VudGVyIGljb24gaW5zaWRlIGJ1dHRvbi5cbiAqIFsyXSBPdmVyd3JpdGUgcGx5ciBkZWZhdWx0LlxuICovXG4vKipcbiAqIFRoZW4sIGxldCdzIGluY2x1ZGUgc3BlY2lmaWMgb3ZlcnJpZGVzIGZyb20gQnJvbnNvbi1EZWZhdWx0LlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQ1VTVE9NIFNUWUxFR1VJREUgU1RZTEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBBZGRzIGEgbm90aWNlIGF0IHRoZSB0b3Agb2YgdGhlIGNvbXBvbmVudCBjb250YWluaW5nIGAkdGV4dGAuXG4gKi9cbi8qKlxuICogQ29tcG9uZW50IHZhcmlhbnQgd3JhcHBlciBmb3IgZnJhY3RhbCBzdHlsZWd1aWRlIHZpZXcgKGZvciBjb2xsYXRlZCBjb21wb25lbnRzKS5cbiAqL1xuLnNnLWNvbXBvbmVudC12YXJpYW50IHtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLyoqXG4gKiBDYXJkcy5cbiAqXG4gKiBbMV0gUHJlc2VudCBtb3JlIHJlYWxpc3RpYyBkaW1lbnNpb25zIG9mIHRoZSBjYXJkIGNvbXBvbmVudC5cbiAqIFsyXSBSZXNldCB0aGUgY2FyZHMgd2lkdGggZm9yIGNhcmRzIHNsaWRlciBhbmQgY29sbGFwc2libGUgY2FyZHMuXG4gKi9cbltjbGFzcyo9XCJzZy1zY29wZS1jYXJkXCJdIC5jLWNhcmQge1xuICBtYXgtd2lkdGg6IDQwMHB4O1xuICAvKiBbMV0gKi9cbn1cblxuW2NsYXNzKj1cInNnLXNjb3BlLWNhcmRcIl0uc2ctc2NvcGUtY2FyZC13aXRoLWRpdmlkZXIgLmMtY2FyZCwgW2NsYXNzKj1cInNnLXNjb3BlLWNhcmRcIl0uc2ctc2NvcGUtY2FyZHMtc2xpZGVyIC5jLWNhcmQge1xuICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gIC8qIFsyXSAqL1xufVxuXG4vKipcbiAqIFRpbGUgc2VsZWN0LlxuICpcbiAqIFsxXSBQcmVzZW50IG1vcmUgcmVhbGlzdGljIGRpbWVuc2lvbnMgb2YgdGhlIHRpbGUgc2VsZWN0IGNvbXBvbmVudC5cbiAqL1xuLnNnLXNjb3BlLXRpbGUtc2VsZWN0IC5jLXRpbGUtc2VsZWN0IHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbiAgLyogWzFdICovXG59XG5cbi8qKlxuICogTWVkaWEgVGVhc2VyLlxuICpcbiAqIFsxXSBSZW1vdmUgbWFyZ2luIGJldHdlZW4gY29sbGF0ZWQgdmFyaWFudHMuXG4gKi9cbi5zZy1zY29wZS1tZWRpYS10ZWFzZXIgLnNnLWNvbXBvbmVudC12YXJpYW50IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgLyogWzFdICovXG59XG5cbi8qKlxuICogU2V0IGZ1bGwgdmlld3BvcnQtaGVpZ2h0IGZvciBiZXR0ZXIgdGhlbWluZy1wcmV2aWV3IChCbHVlbGFiZWwtc3BlY2lmaWMpLlxuICovXG5ib2R5W2RhdGEtdGhlbWVdLFxuYm9keVtjbGFzc149XCJ1LWJnLVwiXSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4vKipcbiAqIEN1c3RvbSBzZWxlY3QuXG4gKi9cbi5zZy1zY29wZS1jdXN0b20tc2VsZWN0IC5jLWN1c3RvbS1zZWxlY3RfX2Ryb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2ctY29tcG9uZW50LXByZXZpZXc6bm90KC5zZy1jb21wb25lbnQtcHJldmlldy0tZnVsbCkgI3NnLWNvbXBvbmVudC13cmFwcGVyIHtcbiAgcGFkZGluZzogMzJweDtcbn1cblxuLyoqXG4gKiBUaGVtZS9icmFuZCBzZWxlY3QgYm94ZXMuXG4gKi9cbi5zZy1zZWxlY3QtYm94IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5zZy1zZWxlY3QtYm94X19sYWJlbCB7XG4gIG1hcmdpbi1yaWdodDogMzJweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnNnLWNvbXBvbmVudC1wcmV2aWV3IC5zZy1jb250cm9scyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogZmxleDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuXG4uc2ctY29tcG9uZW50LXByZXZpZXcgLnNnLXNlbGVjdC1ib3gge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uc2ctY29tcG9uZW50LXByZXZpZXcgLnNnLWJyYW5kLXNlbGVjdCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG59XG5cbi5zZy1jb21wb25lbnQtcHJldmlldyAuc2ctYnJhbmQtc2VsZWN0LmpzLXJlYWR5IHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyoqXG4gKiBUaGUgdmVydGljYWwgYmFyIGNvbXBvbmVudCBpcyBpbmNsdWRlZCBpbiBldmVyeSBwYWNrYWdlLCBidXQgc2hvdWxkIGp1c3QgYmVcbiAqIHZpc2libGUgaW4gQnJvbnNvbi1WVy4gSG93ZXZlciwgc2luY2UgdGhlIGNvbXBvbmVudCBpcyBwcmVzZW50IGluIHRoZVxuICogRnJhY3RhbCBOYXYgaW4gZXZlcnkgcGFja2FnZSwgd2UgcHJvdmlkZSBzb21lIGRlc2NyaXB0aW9uIHRleHQgKHRoZSBgPHA+YFxuICogZWxlbWVudCBpbiB0aGUgc2VsZWN0b3IpLCB0aGF0IGlzIHNob3duIGFsdGVybmF0aXZlbHkgaW4gYWxsIHRoZSBvdGhlclxuICogcGFja2FnZXMsIHRoYXQgZGVzY3JpYmVzIHRoaXMgZmFjdC4gVGhpcyBgPHA+YCBlbGVtZW50IGhvd2V2ZXIgc2hvdWxkIGp1c3RcbiAqIGJlIHZpc2libGUgaW4gdGhlIHNpbmdsZSBjb21wb25lbnQgdmlldyBpbiBGcmFjdGFsIGFuZCBub3Qgb24gc2FtcGxlIHBhZ2VzXG4gKiBldGMuIFRoYXTigJlzIHdoeSB3ZSBzY29wZSBpdCB0byB0aGUgYC5zZy1zY29wZS12ZXJ0aWNhbC1iYXJgLlxuICovXG5odG1sOm5vdCguc2ctc2NvcGUtdmVydGljYWwtYmFyKSAuYy12ZXJ0aWNhbC1iYXIgKyBwIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBIaWRlIGAuYy1sb2dvX19pbWFnZWAgaW1hZ2UgZm9yIGRlZmF1bHQgcGFja2FnZSBpbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudFxuICogYW5kIHdoaWxlIHJ1bm5pbmcgQnJvbnNvbiBsb2NhbGx5IHZpYSBgbnBtIHJ1biBtdWx0aWJyYW5kYCBiZWNhdXNlXG4gKiBwYWNrYWdlIHNwZWNpZmljIGxvZ28gaW1hZ2VzIGNhbuKAmXQgYmUgZGVmaW5lZCBpbiBib3RoIGNhc2VzLlxuICogQXMgZmFsbGJhY2sgdGhlIGJhY2tncm91bmQgaW1hZ2Ugb2YgYC5jLWxvZ29gIHdpbGwgYmUgdXNlZC5cbiAqL1xuLnNnLXBhY2thZ2UtZGVmYXVsdC5zZy1lbnYtZGV2ZWxvcG1lbnQgLmMtbG9nb19faW1hZ2Uge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2ctcGFja2FnZS1kZWZhdWx0LnNnLWVudi1kZXZlbG9wbWVudCAuYy1sb2dvIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogaW5pdGlhbDtcbn1cblxuLnNnLXNjb3BlLXdlYmNhbGM6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDFlNTA7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbnRlbnQ6IFwiQmVsb3cgZm9ybSBpcyBnZW5lcmF0ZWQgYnkgQ2FsY3VsYXRvckpTLCB3aGljaCBpcyBkZXZlbG9wZWQgYnkgdGhlIHdlYkNBTEMgdGVhbS4gTW9yZSBpbmZvcm1hdGlvbiBpbiB0aGUgY29tcG9uZW50IG5vdGVzLlwiO1xufVxuXG4vKipcbiAqIFRoZW4sIGxldCdzIGluY2x1ZGUgb3VyIHNwZWNpZmljIG92ZXJyaWRlcy5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0NVU1RPTSBTVFlMRUdVSURFIFNUWUxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogWzFdIEFkanVzdCBkZW1vIGJhY2tncm91bmQgY29sb3IgZm9yIGNvbXBvbmVudHMgdGhhdCBvdGhlcndpc2UgYXJlIGRpZmZpY3VsdFxuICogICAgIHRvIGRpc3BsYXkgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kLlxuICovXG4uc2ctc2NvcGUtc3Bpbm5lcixcbi5zZy1zY29wZS1zcGlubmVyLXNtYWxsLFxuLnNnLXNjb3BlLXNwaW5uZXItY2VudGVyLFxuLnNnLXNjb3BlLWd1aWRpbmctbGluZS13aXRoLWFsdGVybmF0aXZlLWNvbG9yIHtcbiAgLyogWzFdICovXG4gIGJhY2tncm91bmQ6ICM5NmEzYTggIWltcG9ydGFudDtcbn1cblxuLnNnLXNjb3BlLXNwaW5uZXI6OmJlZm9yZSxcbi5zZy1zY29wZS1zcGlubmVyLXNtYWxsOjpiZWZvcmUsXG4uc2ctc2NvcGUtc3Bpbm5lci1jZW50ZXI6OmJlZm9yZSxcbi5zZy1zY29wZS1ndWlkaW5nLWxpbmUtd2l0aC1hbHRlcm5hdGl2ZS1jb2xvcjo6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEycHggMjBweDtcbiAgYmFja2dyb3VuZDogIzAwMWU1MDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29udGVudDogXCJUaGUgZ3JleSBiYWNrZ3JvdW5kIHNlZW4gaGVyZSBpcyBvbmx5IGZvciBkZW1vIHB1cnBvc2VzLlwiO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1NHLVNUWUxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBUaGlzIGZpbGUgcHJvdmlkZXMgc3R5bGVzIGZvciBzdHlsZWd1aWRlIGVsZW1lbnRzIGFuZCBvdmVycmlkZXMgc3R5bGVzIGZvclxuICogc3BlY2lmaWMgY29tcG9uZW50cyBpbiB0aGUgZnJhY3RhbCBzdHlsZWd1aWRlLlxuICovXG5cbkBpbXBvcnQgXCJicm9uc29uLXZ3Ni9zcmMvc2Nzcy8wMS1zZXR0aW5ncy8wMS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImJyb25zb24tdnc2L3NyYy9zY3NzLzAyLXRvb2xzLzAyLXRvb2xzXCI7XG5cbi8qKlxuICogVGhlbiwgbGV0J3MgaW5jbHVkZSBzcGVjaWZpYyBvdmVycmlkZXMgZnJvbSBCcm9uc29uLURlZmF1bHQuXG4gKi9cbkBpbXBvcnQgXCJicm9uc29uLWRlZmF1bHQvc3R5bGVndWlkZS90aGVtZS1vdmVycmlkZXMvc3R5bGVzL3NnLXN0eWxlc1wiO1xuXG4vKipcbiAqIFRoZW4sIGxldCdzIGluY2x1ZGUgb3VyIHNwZWNpZmljIG92ZXJyaWRlcy5cbiAqL1xuQGltcG9ydCBcInNnLXN0eWxlc1wiO1xuIiwiLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQkFTRSBTRVRUSU5HU1xuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJEdMT0JBTC1GT05ULVNJWkU6ICAgICAgICAgICAgMTZweCAhZGVmYXVsdDtcblxuJEdMT0JBTC1CQVNFTElORTogICAgICAgICAgICAgNHB4ICFkZWZhdWx0O1xuXG4vKipcbiAqIFZXNiBzdGF0aWMgc3BhY2luZyBhcyBkZWZpbmVkIGluIExTRy4gTm90IGFsbCBzcGFjaW5ncyBhcmUgbWFwcGVkIHRvIHRoZVxuICogbXVsdGktYnJhbmQgWFhTTUFMTCB0byBYWExBUkdFIHNwYWNpbmdzLlxuICpcbiAqIERPTidUIFVTRSBUSEVTRSBWQVJTIElOIFlPVVIgQ09ERUJBU0UhISFcbiAqL1xuICRfX1ZXNi1MU0ctU1RBVElDMDYwMF9fOiAgICAgOTJweCAhZGVmYXVsdDtcbiAkX19WVzYtTFNHLVNUQVRJQzA1NTBfXzogICAgIDcycHggIWRlZmF1bHQ7XG4gJF9fVlc2LUxTRy1TVEFUSUMwNTIwX186ICAgICA1NnB4ICFkZWZhdWx0O1xuICRfX1ZXNi1MU0ctU1RBVElDMDUxMF9fOiAgICAgNDhweCAhZGVmYXVsdDtcbiAkX19WVzYtTFNHLVNUQVRJQzA1MDBfXzogICAgIDQ0cHggIWRlZmF1bHQ7XG4gJF9fVlc2LUxTRy1TVEFUSUMwNDUwX186ICAgICA0MHB4ICFkZWZhdWx0O1xuICRfX1ZXNi1MU0ctU1RBVElDMDQwMF9fOiAgICAgMzJweCAhZGVmYXVsdDtcbiAkX19WVzYtTFNHLVNUQVRJQzAzNTBfXzogICAgIDI0cHggIWRlZmF1bHQ7XG4gJF9fVlc2LUxTRy1TVEFUSUMwMzAwX186ICAgICAyMHB4ICFkZWZhdWx0O1xuICRfX1ZXNi1MU0ctU1RBVElDMDI1MF9fOiAgICAgMTZweCAhZGVmYXVsdDtcbiAkX19WVzYtTFNHLVNUQVRJQzAyMDBfXzogICAgIDEycHggIWRlZmF1bHQ7XG4gJF9fVlc2LUxTRy1TVEFUSUMwMTUwX186ICAgICA4cHggIWRlZmF1bHQ7XG4gJF9fVlc2LUxTRy1TVEFUSUMwMTAwX186ICAgICA0cHggIWRlZmF1bHQ7XG5cbi8qKlxuICogU3BhY2luZ3MgYXJlIHJlcXVpcmVkIHNldHRpbmdzIGZvciBhbGwgYnJhbmRzICh4eHMgLSB4eGwpLlxuICogLSBSZXF1aXJlZCB0byBoYXZlIGFsbCBzY2FsZXMgYXZhaWxhYmxlIGluIGFsbCBicmFuZHMgKG11bHRpYnJhbmQgJiBvbmUtbWFya3VwLWFwcHJvYWNoKS5cbiAqIC0gVXNlZCBmb3IgZ2VuZXJhdGluZyBvZiBzcGFjaW5nIHV0aWxpdGllcy5cbiAqL1xuXG4kR0xPQkFMLVNQQUNJTkctVU5JVC1YWFNNQUxMOiAkX19WVzYtTFNHLVNUQVRJQzAxMDBfXyAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULVhTTUFMTDogICRfX1ZXNi1MU0ctU1RBVElDMDIwMF9fICFkZWZhdWx0O1xuJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEw6ICAgJF9fVlc2LUxTRy1TVEFUSUMwMzAwX18gIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVDogICAgICAgICAkX19WVzYtTFNHLVNUQVRJQzA0MDBfXyAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFOiAgICRfX1ZXNi1MU0ctU1RBVElDMDQ1MF9fICFkZWZhdWx0O1xuJEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFOiAgJF9fVlc2LUxTRy1TVEFUSUMwNTIwX18gIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1YWExBUkdFOiAkX19WVzYtTFNHLVNUQVRJQzA1NTBfXyAhZGVmYXVsdDtcblxuJEdMT0JBTC1MSU5FLUhFSUdIVDogICAgICAgICAgJEdMT0JBTC1GT05ULVNJWkUgKiAxLjUgIWRlZmF1bHQ7XG5cbiRHTE9CQUwtQk9SREVSLVJBRElVUzogICAgICAgIDRweCAhZGVmYXVsdDtcblxuLy8gVGhlIHdpZHRoIG9mIGEgc2luZ2xlIGNvbHVtbiBpbiBWVzYncyAyNC1jb2x1bW4gZ3JpZFxuJFZXNi0yNC1DT0wtV0lEVEg6ICAgICAgICAgICAgcGVyY2VudGFnZSgxLzI0KSAhZGVmYXVsdDtcblxuJFZXNi1TUEFDSU5HLVVOSVQtWFhYTEFSR0U6ICAgJF9fVlc2LUxTRy1TVEFUSUMwNjAwX18gIWRlZmF1bHQ7XG4kVlc2LVNQQUNJTkctVU5JVC1NRURJVU06ICAgICAkX19WVzYtTFNHLVNUQVRJQzAzNTBfXyAhZGVmYXVsdDtcbiIsIi8vIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ZPTlRTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cImZvbnRTZXR0aW5nc1wiXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHN0cmluZy1xdW90ZXMgKi9cblxuLy8gVGhlIGZvbnQtd2VpZ2h0cyBhcmUgZGVmaW5lZCBhcyBudW1lcmljYWwgdmFsdWVzIGluc3RlYWQgb2YgbmFtZWQgdmFsdWVzXG4vLyBpbiBvcmRlciB0byBhdm9pZCBicm93c2VyIG1hcHBpbmcgaXNzdWVzXG4vLyAoc2VlIGh0dHBzOi8vd3d3LndlYnR5cGUuY29tL2luZm8vYXJ0aWNsZXMvZm9udHMtd2VpZ2h0cy8pLlxuLy9cbi8vIEFzIHRoZSB2YWx1ZXMgY2FuIGRpZmZlciB0byBlYWNoIGZvbnQgdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBjaGVja2VkXG4vLyBhbmQgbW9kaWZpZWQgcGVyIGJyYW5kLlxuXG4kR0xPQkFMLUZPTlQtV0VJR0hULUxJR0hUOiAgIDMwMCAhZGVmYXVsdDtcbiRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUjogNDAwICFkZWZhdWx0O1xuJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEOiAgICA3MDAgIWRlZmF1bHQ7XG5cblxuJEJBU0UtRk9OVDogICAgICAgICAgICAgICAgICAnVldUZXh0V2ViJyAhZGVmYXVsdDtcbiRCQVNFLUZPTlQtRkFMTEJBQ0tTOiAgICAgICAgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRCQVNFLUZPTlQtVkFSSUFOVFM6IChcbiAgICBcIkJvbGRcIjogICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xELFxuICAgIFwiUmVndWxhclwiOiAkR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVJcbikgIWRlZmF1bHQ7XG5cbi8vIFZXIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBhIGZvbnQgZm9yIOKAmG5vcm1hbOKAmSB0ZXh0XG4vLyBhbmQgZm9yIGhlYWRpbmdzLlxuJEFMVC1GT05UOiAgICAgICAgICAgICAgICAgICdWV0hlYWRXZWInICFkZWZhdWx0O1xuJEFMVC1GT05ULUZBTExCQUNLUzogICAgICAgIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kQUxULUZPTlQtVkFSSUFOVFM6IChcbiAgICBcIkJvbGRcIjogICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCxcbiAgICBcIkxpZ2h0XCI6ICRHTE9CQUwtRk9OVC1XRUlHSFQtTElHSFRcbikgIWRlZmF1bHQ7XG4kQUxULUZPTlQtRkFNSUxZOiAkQUxULUZPTlQsICRBTFQtRk9OVC1GQUxMQkFDS1MgIWRlZmF1bHQ7XG5cbiRGT05ULVBBVEg6ICAgICAgICAgICAgICAgICAgJy4uL2ZvbnRzL2ZvbnRzJyAhZGVmYXVsdDtcbiRGT05ULVJFVklTSU9OOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8vIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0lDT04tRk9OVFNcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIEBzYXNzLWV4cG9ydC1zZWN0aW9uPVwiaWNvbkZvbnRTZXR0aW5nc1wiXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHN0cmluZy1xdW90ZXMgKi9cblxuLy9cbi8vIFsxXSBVc2Ugc2luZ2xlIHF1b3RlcyB0byBwcmV2ZW50IHNhc3MtZXhwb3J0IGVycm9yLlxuLy9cbiRJQ09OLUZPTlQ6ICAgICAgICAgIFwiYnJvbnNvbi12dzZcIiAhZGVmYXVsdDtcbiRJQ09OLUZPTlQtUEFUSDogICAgICcuLi9mb250cy9pY29uLWZvbnRzJyAhZGVmYXVsdDsgLy8gWzFdXG4kSUNPTi1GT05ULVJFVklTSU9OOiAxICFkZWZhdWx0O1xuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbi8vIFRoaXMgY3JlYXRlcyBzaXplLW1vZGlmaWVycy4gVGhlIGtleSBpcyB1c2VkIGFzIGEgbW9kaWZpZXIgZm9yIGNoYW5naW5nIHRoZVxuLy8gaWNvbi1zaXplLCBlLmcuIGAuYy1pY29uLmMtaWNvbi0tc21hbGxgLlxuLy8gJ21lZGl1bScgaXMgdGhlIGRlZmF1bHQgYW5kIG5vIG1vZGlmaWVyIGlzIGNyZWF0ZWQgKG5vIGAuYy1pY29uLS1tZWRpdW1gKS5cbiRJQ09OLVNJWkVTOiAoXG4gICAgeHhzbWFsbDogMTJweCxcbiAgICB4c21hbGw6ICAxMnB4LFxuICAgIHNtYWxsOiAgIDEycHgsXG4gICAgbWVkaXVtOiAgMjRweCxcbiAgICBsYXJnZTogICA0OHB4LFxuICAgIHhsYXJnZTogIDQ4cHgsXG4gICAgeHhsYXJnZTogNDhweFxuKSAhZGVmYXVsdDtcblxuLy8gQFRPRE86IHNpemVzIHRlbXBvcmFyeSwgbm90IHlldCBkZWZpbmVkXG4vLyBQcm92aWRlIGEgbWFwIHdpdGggc2l6ZXMgZm9yIHJvdW5kIGljb25zLiBJdHMgdmFsdWVzIGFyZSB0aGUgb3ZlcmFsbCBzaXplXG4vLyBvZiB0aGUgaWNvbiBwYXR0ZXJuLlxuJElDT04tUk9VTkQtRlVMTC1TSVpFUzogKFxuICAgIHh4c21hbGw6IDI0cHgsXG4gICAgeHNtYWxsOiAgMjRweCxcbiAgICBzbWFsbDogICAyNHB4LFxuICAgIG1lZGl1bTogIDQ4cHgsXG4gICAgbGFyZ2U6ICAgNjBweCxcbiAgICB4bGFyZ2U6ICA2NHB4LFxuICAgIHh4bGFyZ2U6IDY0cHhcbikgIWRlZmF1bHQ7XG5cbi8vIEBUT0RPOiBzaXplcyB0ZW1wb3JhcnksIG5vdCB5ZXQgZGVmaW5lZFxuLy8gUHJvdmlkZSBhIG1hcCB3aXRoIHNpemVzIGZvciBzcXVhcmUgaWNvbnMuIEl0cyB2YWx1ZXMgYXJlIHRoZSBvdmVyYWxsIHNpemVcbi8vIG9mIHRoZSBpY29uIHBhdHRlcm4uXG4kSUNPTi1TUVVBUkUtRlVMTC1TSVpFUzogKFxuICAgIHh4c21hbGw6IDI0cHgsXG4gICAgeHNtYWxsOiAgMjRweCxcbiAgICBzbWFsbDogICAyNHB4LFxuICAgIG1lZGl1bTogIDQ4cHgsXG4gICAgbGFyZ2U6ICAgNjBweCxcbiAgICB4bGFyZ2U6ICA2NHB4LFxuICAgIHh4bGFyZ2U6IDY0cHhcbikgIWRlZmF1bHQ7XG5cbi8vIEdlbmVyYWwgaWNvbiBzdHlsZXMuXG4kSUNPTi1DT0xPUjogY3VycmVudENvbG9yICFkZWZhdWx0O1xuXG4vLyBJY29uIGJvcmRlciBzdHlsZXMuXG4kSUNPTi1CT1JERVItV0lEVEg6IDFweCAhZGVmYXVsdDtcbiRJQ09OLUJPUkRFUi1TVFlMRTogc29saWQgIWRlZmF1bHQ7XG4kSUNPTi1CT1JERVItQ09MT1I6ICRDT0xPUi1ISUdITElHSFQgIWRlZmF1bHQ7XG5cbi8vIFNxdWFyZSBpY29uIHN0eWxlcy5cbiRJQ09OLVNRVUFSRS1SQURJVVM6IDAgIWRlZmF1bHQ7XG5cbi8vIFJvdW5kIGljb24gc3R5bGVzLlxuJElDT04tUk9VTkQtUkFESVVTOiA1MCUgIWRlZmF1bHQ7XG5cblxuLy8vIFRvIGluY2x1ZGUgZGlmZmVyZW50IGNvbXBsZXhpdGllcywgZW5hYmxlIHRoaXMgdmFyaWFibGUgYnkgcHJvdmlkaW5nIGEgbWFwLlxuLy8vIFRoZSBsaXN0IGVudHJpZXMgYXJlIHRoZSBmaWxlLW5hbWUncyBzdWZmaXhlcy5cbi8vLyBUbyBkaXNhYmxlIGZ1bmN0aW9uLCBzZXQgdmFsdWUgdG8gYG51bGxgLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuJElDT04tQ09NUExFWElUSUVTOiAoXG4gICAgXCJzaW1wbGVcIixcbiAgICBcImNvbXBsZXhcIixcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgY29tcGxleGl0eSBjYW4gYWxzbyBiZSBjb21iaW5lZCB3aXRoIHRoZSBzaXplLCBpLmUuIHdoZW4gYXNzaWduaW5nIGFcbi8vLyBwYXJ0aWN1bGFyIHNpemUgbW9kaWZpZXIgaW4gdGhlIG1hcmt1cCwgdGhlIGRpZmZlcmVudCBjb21wbGV4aXR5IGdldHMgYWxzb1xuLy8vIGFwcGxpZWQgYXV0b21hdGljYWxseS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQHR5cGUgQm9vbGVhblxuJElDT04tRU5BQkxFLVNJWkUtQ09NUExFWElUWS1DT01CTzogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFRoaXMgZ2VuZXJhdGVzIGNsYXNzZXMgd2l0aCB0aGUgY29tcGxleGl0eSBhcyBhIG1vZGlmaWVyIHRvIGZvcmNlIHRoZVxuLy8vIGNob3NlbiBjb21wbGV4aXR5LlxuLy8vXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAdHlwZSBCb29sZWFuXG4kSUNPTi1FTkFCTEUtQ09NUExFWElUWS1DTEFTUy1PVkVSV1JJVEU6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBDb21iaW5lIHNpemVzIHdpdGggY29tcGxleGl0aWVzIChrZXk6IHNpemUsIHZhbHVlOiBjb21wbGV4aXR5KS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVsaWNcbi8vLyBAcmVxdWlyZXMgYCRJQ09OLUVOQUJMRS1TSVpFLUNPTVBMRVhJVFktQ09NQk9gIHRvIGJlIGB0cnVlYC5cbi8vLyBAdHlwZSBNYXBcbiRJQ09OLVNJWkUtVE8tQ09NUExFWElUWS1NQVBQSU5HOiAoXG4gICAgXCJ4eHNtYWxsXCI6IFwic2ltcGxlXCIsXG4gICAgXCJ4c21hbGxcIjogIFwic2ltcGxlXCIsXG4gICAgXCJzbWFsbFwiOiAgIFwic2ltcGxlXCIsXG4gICAgXCJtZWRpdW1cIjogIG51bGwsXG4gICAgXCJsYXJnZVwiOiAgIFwiY29tcGxleFwiLFxuICAgIFwieGxhcmdlXCI6ICBcImNvbXBsZXhcIixcbiAgICBcInh4bGFyZ2VcIjogXCJjb21wbGV4XCIsXG4pICFkZWZhdWx0O1xuXG4vLyBOYW1lIDogcHJlZml4XG4kSUNPTi1TVUJTRVRTOiAoXG4gICAgXCJzZW1hbnRpY1wiOiBcInNlbWFudGljLVwiLFxuICAgIFwiY29udGVudFwiOiAgXCJjb250ZW50LVwiXG4pICFkZWZhdWx0O1xuXG4vLyBAZW5kLXNhc3MtZXhwb3J0LXNlY3Rpb25cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0ZPUk1TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBJbnB1dCBoZWlnaHQgZGVmaW5lZCBhcyAzN3B4IGluIExTR1xuJEdMT0JBTC1JTlBVVC1IRUlHSFQ6ICAgICAgICAgICAgICAgICAgICAgICAgIDM3cHggIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJBQ0tHUk9VTkQ6ICAgICAgICAgICAgICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CQUNLR1JPVU5ELURJU0FCTEVEOiAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQkFDS0dST1VORCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQkFDS0dST1VORC1SRUFET05MWTogICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1XSURUSDogICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1JTlBVVC1CT1JERVIgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1IT1ZFUjogICAgICAgICAgICAgJENPTE9SLUlOUFVULUJPUkRFUiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUZPQ1VTOiAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1FUlJPUjogICAgICAgICAgICAgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItRVJST1ItSE9WRVI6ICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLVNVQ0NFU1M6ICAgICAgICAgICAkQ09MT1ItU1VDQ0VTUyAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLVNVQ0NFU1MtSE9WRVI6ICAgICAkQ09MT1ItU1VDQ0VTUyAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLURJU0FCTEVEOiAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1SRUFET05MWTogICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULVNJWkU6ICAgICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtV0VJR0hUOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULVdFSUdIVC1QTEFDRUhPTERFUjogICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUjogICAgICAgICAgICAgICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItRVJST1I6ICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVNVQ0NFU1M6ICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUi1ESVNBQkxFRDogICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItUkVBRE9OTFk6ICAgICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVBMQUNFSE9MREVSOiAgICAgICAgICRDT0xPUi1QQUxFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1QQURESU5HLUhPUklaT05UQUw6ICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULVRFWFRBUkVBLVBBRERJTkctVkVSVElDQUw6ICAgICAgJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFNNQUxMICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1QQURESU5HLUhPUklaT05UQUw6ICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULVNJWkU6ICAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtRk9OVC1TSVpFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SOiAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItTk8tQkc6ICAgICAgICAgJENPTE9SLUJSQU5EICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLUVSUk9SOiAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItU1VDQ0VTUzogICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1OTy1CRy1FUlJPUjogICAkQ09MT1ItQUxFUlQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItTk8tQkctU1VDQ0VTUzogJENPTE9SLVNVQ0NFU1MgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItRElTQUJMRUQ6ICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLVJFQURPTkxZOiAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tQkFDS0dST1VORDogICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUJBQ0tHUk9VTkQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUJBQ0tHUk9VTkQtRElTQUJMRUQ6ICAgICAgJEdMT0JBTC1JTlBVVC1BRERPTi1CQUNLR1JPVU5EICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1CQUNLR1JPVU5ELVJFQURPTkxZOiAgICAgICRHTE9CQUwtSU5QVVQtQURET04tQkFDS0dST1VORCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tSUNPTi1TSVpFOiAgICAgICAgICAgICAgICBtZWRpdW0gIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZBS0UtTElORS1XSURUSDogICAgICAgICAgNHB4ICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1TRUxFQ1QtSUNPTi1TSVpFOiAgICAgICAgICAgICAgICRHTE9CQUwtSU5QVVQtQURET04tSUNPTi1TSVpFICFkZWZhdWx0O1xuXG4kVlc2LUdMT0JBTC1JTlBVVC1GT0NVUy1PVVRMSU5FLVdJRFRIOiAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEggIWRlZmF1bHQ7XG4kVlc2LUdMT0JBTC1JTlBVVC1GT0NVUy1PVVRMSU5FLVNUWUxFOiAgICAgICAgc29saWQgIWRlZmF1bHQ7XG4kVlc2LUdMT0JBTC1JTlBVVC1GT0NVUy1PVVRMSU5FLUNPTE9SOiAgICAgICAgJENPTE9SLVNVQlRMRSAhZGVmYXVsdDtcbiRWVzYtR0xPQkFMLUlOUFVULUZPQ1VTLU9VVExJTkU6ICAgICAgICAgICAgICAkVlc2LUdMT0JBTC1JTlBVVC1GT0NVUy1PVVRMSU5FLVdJRFRIICRWVzYtR0xPQkFMLUlOUFVULUZPQ1VTLU9VVExJTkUtU1RZTEUgJFZXNi1HTE9CQUwtSU5QVVQtRk9DVVMtT1VUTElORS1DT0xPUiAhZGVmYXVsdDtcbiRWVzYtR0xPQkFMLUlOUFVULUZPQ1VTLU9VVExJTkUtT0ZGU0VUOiAgICAgICAycHggIWRlZmF1bHQ7XG4iLCIvLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNTSEFET1dTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFsxXSBNYWdpYyBudW1iZXIgbmVlZGVkIGZvciBoaWRpbmcgdGhlIHNoYWRvdyBpbiB0aGVcbiAqICAgICBJbnRlcmFjdGlvbiBMYXllci5cbiAqL1xuXG4kRFJPUC1TSEFET1ctQ09MT1I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhZGVmYXVsdDtcbiREUk9QLVNIQURPVy1TSVpFOiAgMzJweCAhZGVmYXVsdDsgLyogWzFdICovXG4kRFJPUC1TSEFET1ctTEFSR0U6IDAgOHB4ICREUk9QLVNIQURPVy1TSVpFIDAgJERST1AtU0hBRE9XLUNPTE9SLCAwIDE2cHggNDhweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSkgIWRlZmF1bHQ7XG4iLCIvLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNCQVNFIFNFVFRJTkdTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kR0xPQkFMLUZPTlQtU0laRTogICAgICAgICAgICAxOHB4ICFkZWZhdWx0O1xuXG4kR0xPQkFMLUJBU0VMSU5FOiAgICAgICAgICAgICA4cHggIWRlZmF1bHQ7XG5cbi8qKlxuICogU3BhY2luZ3MgYXJlIHJlcXVpcmVkIHNldHRpbmdzIGZvciBhbGwgYnJhbmRzIChYWFNNQUxMIC0gWFhMQVJHRSkuXG4gKiAtIFJlcXVpcmVkIHRvIGhhdmUgYWxsIHNjYWxlcyBhdmFpbGFibGUgaW4gYWxsIGJyYW5kcyAobXVsdGlicmFuZCAmIG9uZS1tYXJrdXAtYXBwcm9hY2gpLlxuICogLSBVc2VkIGZvciBnZW5lcmF0aW5nIG9mIHNwYWNpbmcgdXRpbGl0aWVzLlxuICovXG5cbiRTQ0FMRS1GQUNUT1ItWFhTTUFMTDogICAgICAgIDAuNSAhZGVmYXVsdDtcbiRTQ0FMRS1GQUNUT1ItWFNNQUxMOiAgICAgICAgIDEgIWRlZmF1bHQ7XG4kU0NBTEUtRkFDVE9SLVNNQUxMOiAgICAgICAgICAyICFkZWZhdWx0O1xuJFNDQUxFLUZBQ1RPUjogICAgICAgICAgICAgICAgMyAhZGVmYXVsdDtcbiRTQ0FMRS1GQUNUT1ItTEFSR0U6ICAgICAgICAgIDQgIWRlZmF1bHQ7XG4kU0NBTEUtRkFDVE9SLVhMQVJHRTogICAgICAgICA4ICFkZWZhdWx0O1xuJFNDQUxFLUZBQ1RPUi1YWExBUkdFOiAgICAgICAgJFNDQUxFLUZBQ1RPUi1YTEFSR0UgIWRlZmF1bHQ7IC8vZmFsbGJhY2sgdG8gWExBUkdFIGlmIG5vdCBkZWZpbmVkIGluIHN1Yi1icmFuZHNcblxuXG4kR0xPQkFMLVNQQUNJTkctVU5JVDogICAgICAgICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUiAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULVhYU01BTEw6ICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SLVhYU01BTEwgIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEw6ICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUi1YU01BTEwgIWRlZmF1bHQ7XG4kR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTDogICAkR0xPQkFMLUJBU0VMSU5FICogJFNDQUxFLUZBQ1RPUi1TTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtU1BBQ0lORy1VTklULUxBUkdFOiAgICRHTE9CQUwtQkFTRUxJTkUgKiAkU0NBTEUtRkFDVE9SLUxBUkdFICFkZWZhdWx0O1xuJEdMT0JBTC1TUEFDSU5HLVVOSVQtWExBUkdFOiAgJEdMT0JBTC1CQVNFTElORSAqICRTQ0FMRS1GQUNUT1ItWExBUkdFICFkZWZhdWx0O1xuJEdMT0JBTC1TUEFDSU5HLVVOSVQtWFhMQVJHRTogJEdMT0JBTC1CQVNFTElORSAqICRTQ0FMRS1GQUNUT1ItWFhMQVJHRSAhZGVmYXVsdDsgLy8gbm90IGF2YWlsYWJsZSBpbiBfdXRpbGl0aWVzLnNwYWNpbmdzLnNldHRpbmdzLnNjc3NcblxuXG4kR0xPQkFMLUxJTkUtSEVJR0hUOiAgICAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVCAhZGVmYXVsdDtcblxuJEdMT0JBTC1CT1JERVItUkFESVVTOiAgICAgICAgMCAhZGVmYXVsdDtcbiIsIi8vIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ZPTlRTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cImZvbnRTZXR0aW5nc1wiXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIHN0cmluZy1xdW90ZXMgKi9cblxuLy8gVGhlIGZvbnQtd2VpZ2h0cyBhcmUgZGVmaW5lZCBhcyBudW1lcmljYWwgdmFsdWVzIGluc3RlYWQgb2YgbmFtZWQgdmFsdWVzXG4vLyBpbiBvcmRlciB0byBhdm9pZCBicm93c2VyIG1hcHBpbmcgaXNzdWVzXG4vLyAoc2VlIGh0dHBzOi8vd3d3LndlYnR5cGUuY29tL2luZm8vYXJ0aWNsZXMvZm9udHMtd2VpZ2h0cy8pLlxuLy9cbi8vIEFzIHRoZSB2YWx1ZXMgY2FuIGRpZmZlciB0byBlYWNoIGZvbnQgdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBjaGVja2VkXG4vLyBhbmQgbW9kaWZpZWQgcGVyIGJyYW5kLlxuXG4kR0xPQkFMLUZPTlQtV0VJR0hULVJFR1VMQVI6IDQwMCAhZGVmYXVsdDtcbiRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRDogICAgNzAwICFkZWZhdWx0O1xuXG5cbiRCQVNFLUZPTlQ6ICAgICAgICAgICAgICAgICAgJ29wZW4tc2FucycgIWRlZmF1bHQ7XG4kQkFTRS1GT05ULUZBTExCQUNLUzogICAgICAgIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kQkFTRS1GT05ULVZBUklBTlRTOiAoXG4gICAgXCJib2xkXCI6ICRHTE9CQUwtRk9OVC1XRUlHSFQtQk9MRCxcbiAgICBcInJlZ3VsYXJcIjogJEdMT0JBTC1GT05ULVdFSUdIVC1SRUdVTEFSXG4pICFkZWZhdWx0O1xuXG4kQUxULUZPTlQ6ICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kQUxULUZPTlQtRkFMTEJBQ0tTOiAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kQUxULUZPTlQtVkFSSUFOVFM6ICAgICAgICAgICgpICFkZWZhdWx0O1xuJEFMVC1GT05ULUZBTUlMWTogICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kRk9OVC1QQVRIOiAgICAgICAgICAgICAgICAgICcuLi9mb250cy9mb250cycgIWRlZmF1bHQ7XG4kRk9OVC1SRVZJU0lPTjogICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbi8vIEBlbmQtc2Fzcy1leHBvcnQtc2VjdGlvblxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNJQ09OLUZPTlRTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cImljb25Gb250U2V0dGluZ3NcIlxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzdHJpbmctcXVvdGVzICovXG5cbi8vXG4vLyBbMV0gVXNlIHNpbmdsZSBxdW90ZXMgdG8gcHJldmVudCBzYXNzLWV4cG9ydCBlcnJvci5cbi8vXG4kSUNPTi1GT05UOiAgICAgICAgICAnYnJvbnNvbi1kZWZhdWx0JyAhZGVmYXVsdDtcbiRJQ09OLUZPTlQtUEFUSDogICAgICcuLi9mb250cy9pY29uLWZvbnRzJyAhZGVmYXVsdDsgLy8gWzFdXG4kSUNPTi1GT05ULVJFVklTSU9OOiAxICFkZWZhdWx0O1xuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cblxuXG4vLyBUaGlzIGNyZWF0ZXMgc2l6ZS1tb2RpZmllcnMuIFRoZSBrZXkgaXMgdXNlZCBhcyBhIG1vZGlmaWVyIGZvciBjaGFuZ2luZyB0aGVcbi8vIGljb24tc2l6ZSwgZS5nLiBgLmMtaWNvbi5jLWljb24tLXNtYWxsYC5cbi8vICdtZWRpdW0nIGlzIHRoZSBkZWZhdWx0IGFuZCBubyBtb2RpZmllciBpcyBjcmVhdGVkIChubyBgLmMtaWNvbi0tbWVkaXVtYCkuXG4kSUNPTi1TSVpFUzogKFxuICAgIHh4c21hbGw6IDE0cHgsXG4gICAgeHNtYWxsOiAgMTRweCxcbiAgICBzbWFsbDogICAyMHB4LFxuICAgIG1lZGl1bTogIDQwcHgsXG4gICAgbGFyZ2U6ICAgNjBweCxcbiAgICB4bGFyZ2U6ICA2MHB4LFxuICAgIHh4bGFyZ2U6IDYwcHhcbikgIWRlZmF1bHQ7XG5cblxuXG4vLyBQcm92aWRlIGEgbWFwIHdpdGggc2l6ZXMgZm9yIHJvdW5kIGljb25zLiBJdHMgdmFsdWVzIGFyZSB0aGUgb3ZlcmFsbCBzaXplXG4vLyBvZiB0aGUgaWNvbiBwYXR0ZXJuLlxuJElDT04tUk9VTkQtRlVMTC1TSVpFUzogKFxuICAgIHh4c21hbGw6IDI4cHgsXG4gICAgeHNtYWxsOiAgMjhweCxcbiAgICBzbWFsbDogICA0NHB4LFxuICAgIG1lZGl1bTogIDYwcHgsXG4gICAgbGFyZ2U6ICAgMTAwcHgsXG4gICAgeGxhcmdlOiAgMTAwcHgsXG4gICAgeHhsYXJnZTogMTAwcHhcbikgIWRlZmF1bHQ7XG5cbi8vIFByb3ZpZGUgYSBtYXAgd2l0aCBzaXplcyBmb3Igc3F1YXJlIGljb25zLiBJdHMgdmFsdWVzIGFyZSB0aGUgb3ZlcmFsbCBzaXplXG4vLyBvZiB0aGUgaWNvbiBwYXR0ZXJuLlxuJElDT04tU1FVQVJFLUZVTEwtU0laRVM6IChcbiAgICB4eHNtYWxsOiAyMHB4LFxuICAgIHhzbWFsbDogIDIwcHgsXG4gICAgc21hbGw6ICAgNDRweCxcbiAgICBtZWRpdW06ICA2MHB4LFxuICAgIGxhcmdlOiAgIDEwMHB4LFxuICAgIHhsYXJnZTogIDEwMHB4LFxuICAgIHh4bGFyZ2U6IDEwMHB4XG4pICFkZWZhdWx0O1xuXG5cblxuLy8gR2VuZXJhbCBpY29uIHN0eWxlcy5cbiRJQ09OLUNPTE9SOiBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG5cbi8vIEljb24gYm9yZGVyIHN0eWxlcy5cbiRJQ09OLUJPUkRFUi1XSURUSDogMXB4ICFkZWZhdWx0O1xuJElDT04tQk9SREVSLVNUWUxFOiBzb2xpZCAhZGVmYXVsdDtcbiRJQ09OLUJPUkRFUi1DT0xPUjogJENPTE9SLUhJR0hMSUdIVCAhZGVmYXVsdDtcblxuLy8gU3F1YXJlIGljb24gc3R5bGVzLlxuJElDT04tU1FVQVJFLVJBRElVUzogNXB4ICFkZWZhdWx0O1xuXG4vLyBSb3VuZCBpY29uIHN0eWxlcy5cbiRJQ09OLVJPVU5ELVJBRElVUzogNTAlICFkZWZhdWx0O1xuXG5cblxuLy8vIFRvIGluY2x1ZGUgZGlmZmVyZW50IGNvbXBsZXhpdGllcywgZW5hYmxlIHRoaXMgdmFyaWFibGUgYnkgcHJvdmlkaW5nIGEgbWFwLlxuLy8vIFRoZSBsaXN0IGVudHJpZXMgYXJlIHRoZSBmaWxlLW5hbWUncyBzdWZmaXhlcy5cbi8vLyBUbyBkaXNhYmxlIGZ1bmN0aW9uLCBzZXQgdmFsdWUgdG8gYG51bGxgLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuJElDT04tQ09NUExFWElUSUVTOiBudWxsICFkZWZhdWx0O1xuXG4vLy8gVGhlIGNvbXBsZXhpdHkgY2FuIGFsc28gYmUgY29tYmluZWQgd2l0aCB0aGUgc2l6ZSwgaS5lLiB3aGVuIGFzc2lnbmluZyBhXG4vLy8gcGFydGljdWxhciBzaXplIG1vZGlmaWVyIGluIHRoZSBtYXJrdXAsIHRoZSBkaWZmZXJlbnQgY29tcGxleGl0eSBnZXRzIGFsc29cbi8vLyBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRJQ09OLUVOQUJMRS1TSVpFLUNPTVBMRVhJVFktQ09NQk86IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gVGhpcyBnZW5lcmF0ZXMgY2xhc3NlcyB3aXRoIHRoZSBjb21wbGV4aXR5IGFzIGEgbW9kaWZpZXIgdG8gZm9yY2UgdGhlXG4vLy8gY2hvc2VuIGNvbXBsZXhpdHkuXG4vLy9cbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEB0eXBlIEJvb2xlYW5cbiRJQ09OLUVOQUJMRS1DT01QTEVYSVRZLUNMQVNTLU9WRVJXUklURTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBDb21iaW5lIHNpemVzIHdpdGggY29tcGxleGl0aWVzIChrZXk6IHNpemUsIHZhbHVlOiBjb21wbGV4aXR5KS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHVsaWNcbi8vLyBAcmVxdWlyZXMgYCRJQ09OLUVOQUJMRS1TSVpFLUNPTVBMRVhJVFktQ09NQk9gIHRvIGJlIGB0cnVlYC5cbi8vLyBAdHlwZSBNYXBcbiRJQ09OLVNJWkUtVE8tQ09NUExFWElUWS1NQVBQSU5HOiBudWxsICFkZWZhdWx0O1xuXG5cblxuLy8gTWFwIG9mIHN1YnNldHMsIHVzZWQgZm9yIHNlcGVyYXRpbmcgZGlmZmVyZW50IHN1Yi1zZXRzIG9mIHRoZSBpY29uc1xuLy8gaW4gc3R5bGVndWlkZSAoU2FzcyAtPiBKU09OKS5cbi8vIG5hbWUgOiBwcmVmaXhcbiRJQ09OLVNVQlNFVFM6IChcbiAgICBcInNlbWFudGljXCI6IFwic2VtYW50aWMtXCIsXG4gICAgXCJjb250cm9sXCI6ICBcImNvbnRyb2wtXCJcbikgIWRlZmF1bHQ7XG5cbi8vIEBlbmQtc2Fzcy1leHBvcnQtc2VjdGlvblxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjRk9STVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRHTE9CQUwtSU5QVVQtSEVJR0hUOiAgICAgICAgICAgICAgICAgICAgICAgICA0OHB4ICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1QQURESU5HLUhPUklaT05UQUw6ICAgICAgICAgICAgICRHTE9CQUwtU1BBQ0lORy1VTklULVNNQUxMICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CQUNLR1JPVU5EOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1XSElURSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQkFDS0dST1VORC1ESVNBQkxFRDogICAgICAgICAgICAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQkFDS0dST1VORC1SRUFET05MWTogICAgICAgICAgICAkQ09MT1ItV0hJVEUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1XSURUSDogICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItU1RZTEU6ICAgICAgICAgICAgICAgICAgIHNvbGlkICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1I6ICAgICAgICAgICAgICAgICAgICRDT0xPUi1TVUJUTEUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUjogICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1CT1JERVItV0lEVEggJEdMT0JBTC1JTlBVVC1CT1JERVItU1RZTEUgJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1IgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1IT1ZFUjogICAgICAgICAgICAgJENPTE9SLUhJR0hMSUdIVCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUZPQ1VTOiAgICAgICAgICAgICAkQ09MT1ItSElHSExJR0hUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItRVJST1I6ICAgICAgICAgICAgICRDT0xPUi1BTEVSVCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLUNPTE9SLUVSUk9SLUhPVkVSOiAgICAgICAkQ09MT1ItQUxFUlQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1TVUNDRVNTOiAgICAgICAgICAgJENPTE9SLVNVQ0NFU1MgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1TVUNDRVNTLUhPVkVSOiAgICAgJENPTE9SLVNVQ0NFU1MgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUJPUkRFUi1DT0xPUi1ESVNBQkxFRDogICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1CT1JERVItQ09MT1ItUkVBRE9OTFk6ICAgICAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQk9SREVSLVJBRElVUzogICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULVNJWkU6ICAgICAgICAgICAgICAgICAgICAgICRGUzAgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtV0VJR0hUOiAgICAgICAgICAgICAgICAgICAgJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SOiAgICAgICAgICAgICAgICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItRVJST1I6ICAgICAgICAgICAgICAgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLVNVQ0NFU1M6ICAgICAgICAgICAgICRDT0xPUi1TVUNDRVNTICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULUNPTE9SLURJU0FCTEVEOiAgICAgICAgICAgICRDT0xPUi1JTkFDVElWRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtRk9OVC1DT0xPUi1SRUFET05MWTogICAgICAgICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUZPTlQtQ09MT1ItUExBQ0VIT0xERVI6ICAgICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1GT05ULVdFSUdIVC1QTEFDRUhPTERFUjogICAgICAgICRHTE9CQUwtRk9OVC1XRUlHSFQtUkVHVUxBUiAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtVEVYVEFSRUEtUEFERElORy1WRVJUSUNBTDogICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tUEFERElORy1IT1JJWk9OVEFMOiAgICAgICAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1TSVpFOiAgICAgICAgICAgICAgICAkR0xPQkFMLUlOUFVULUZPTlQtU0laRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUjogICAgICAgICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLU5PLUJHOiAgICAgICAgICRDT0xPUi1CUkFORCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tRk9OVC1DT0xPUi1FUlJPUjogICAgICAgICAkQ09MT1ItQkFTRS1URVhUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLVNVQ0NFU1M6ICAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItTk8tQkctRVJST1I6ICAgJENPTE9SLUFMRVJUICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLU5PLUJHLVNVQ0NFU1M6ICRDT0xPUi1TVUNDRVNTICFkZWZhdWx0O1xuJEdMT0JBTC1JTlBVVC1BRERPTi1GT05ULUNPTE9SLURJU0FCTEVEOiAgICAgICRDT0xPUi1CQVNFLVRFWFQgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUZPTlQtQ09MT1ItUkVBRE9OTFk6ICAgICAgJENPTE9SLUJBU0UtVEVYVCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tQkFDS0dST1VORDogICAgICAgICAgICAgICAkQ09MT1ItUEFMRSAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tQkFDS0dST1VORC1ESVNBQkxFRDogICAgICAkQ09MT1ItSU5BQ1RJVkUgIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULUFERE9OLUJBQ0tHUk9VTkQtUkVBRE9OTFk6ICAgICAgJENPTE9SLUlOQUNUSVZFICFkZWZhdWx0O1xuLy8gQ2Fubm90IHVzZSB0aGUgYGljb24tc2l6ZSgpYCBmdW5jdGlvbiBoZXJlLCBzaW5jZSBpdCdzIG5vdCBhdmFpbGFibGUgaW5cbi8vIHNldHRpbmdzIGxheWVyLCBzbyB3ZSBhc3NpZ24ganVzdCB0aGUgc2l6ZSBwYXJhbWV0ZXIgaGVyZSBhbmQgdXNlIHRoaXMgaW5cbi8vIHRoZSBgaWNvbi1zaXplKClgIGZ1bmN0aW9uIGNhbGwgbGF0ZXIgb24gaW4gY29tcG9uZW50cyBsYXllci5cbiRHTE9CQUwtSU5QVVQtQURET04tSUNPTi1TSVpFOiAgICAgICAgICAgICAgICBzbWFsbCAhZGVmYXVsdDtcbiRHTE9CQUwtSU5QVVQtQURET04tRkFLRS1MSU5FLVdJRFRIOiAgICAgICAgICA0cHggIWRlZmF1bHQ7XG4kR0xPQkFMLUlOUFVULVNFTEVDVC1JQ09OLVNJWkU6ICAgICAgICAgICAgICAgJEdMT0JBTC1JTlBVVC1BRERPTi1JQ09OLVNJWkUgIWRlZmF1bHQ7XG4iLCIvLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNDTEVBUkZJWFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG5cbi8vIE1peGluIHRvIGRyb3AgbWljcm8gY2xlYXJmaXggaW50byBhIHNlbGVjdG9yLiBGdXJ0aGVyIHJlYWRpbmc6XG4vLyBodHRwczovL3d3dy5jc3Ntb2pvLmNvbS90aGUtdmVyeS1sYXRlc3QtY2xlYXJmaXgtcmVsb2FkZWQvXG4vL1xuLy8gLnVzYWdlIHtcbi8vICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbi8vIH1cbkBtaXhpbiBjbGVhcmZpeCgpIHtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIiAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICBjbGVhcjogYm90aCAhaW1wb3J0YW50O1xuICAgIH1cblxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNGTEVYLUFMSUdOTUVOVFxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBHZXQgYWxpZ25tZW50IGZvciBmbGV4Ym94LWJhc2VkIG1vZHVsZXMuXG4gKiBSZW1hcHMgYWxpZ25tZW50IChjZW50ZXIsIGxlZnQsIHJpZ2h0KSB0byBmbGV4Ym94IHZhbHVlcy5cbiAqL1xuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXJlY3Rpb24gaG9yaXpvbnRhbHx2ZXJ0aWNhbFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYWxpZ24gaG9yaXpvbnRhbDogbGVmdHxjZW50ZXJ8cmlnaHQsIHZlcnRpY2FsOiB0b3B8Y2VudGVyfGJvdHRvbVxuLy8vIEByZXR1cm4ge1N0cmluZ30gcmUtbWFwcGVkIGFsaWdubWVudCB2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyBmbGV4LWFsaWdubWVudChcImxlZnRcIikgPT4gZmxleC1zdGFydFxuLy8vIGZsZXgtYWxpZ25tZW50KFwiY2VudGVyXCIpID0+IGNlbnRlclxuLy8vIGZsZXgtYWxpZ25tZW50KFwiYm90dG9tXCIsIFwidmVydGljYWxcIikgPT4gZmxleC1ib3R0b21cbkBmdW5jdGlvbiBmbGV4LWFsaWdubWVudCgkYWxpZ24sICRkaXJlY3Rpb246IFwiaG9yaXpvbnRhbFwiKSB7XG4gICAgQGlmICgkYWxpZ24gPT0gXCJjZW50ZXJcIikge1xuICAgICAgICBAcmV0dXJuIGNlbnRlcjtcbiAgICB9XG5cbiAgICBAaWYgKCRkaXJlY3Rpb24gPT0gXCJob3Jpem9udGFsXCIpIHtcbiAgICAgICAgQGlmICgkYWxpZ24gPT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgICAgIEByZXR1cm4gZmxleC1zdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGFsaWduID09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgQHJldHVybiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJGRpcmVjdGlvbiA9PSBcInZlcnRpY2FsXCIpIHtcbiAgICAgICAgQGlmICgkYWxpZ24gPT0gXCJ0b3BcIikge1xuICAgICAgICAgICAgQHJldHVybiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkYWxpZ24gPT0gXCJib3R0b21cIikge1xuICAgICAgICAgICAgQHJldHVybiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjRElTQUJMRSBUT1VDSCBISUdITElHSFRcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIFJlbW92ZSBoaWdobGlnaHRpbmcgdGhlIHRvdWNoaW5nIGFyZWEuXG4vLyBVc2VmdWwgd2hlbiB5b3Ugd2FudCB0byBkaXNhYmxlIGRpc3RyYWN0aW5nIGhpZ2hsaWdodHMgb24gaG92ZXItZWZmZWN0cywgZXRjLlxuXG4vKipcbiAqIFsxXSBgdHJhbnNwYXJlbnRgIGRvZXMgbm90IHdvcmsgaW4gaU9TXG4gKi9cbkBtaXhpbiBkaXNhYmxlLXRvdWNoLWhpZ2hsaWdodCgpIHtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IC8qIFsxXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNoLXdhcWFyL2RlY2xhcmF0aW9uLXVzZS12YXJpYWJsZSAqL1xufVxuIiwiLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjU1BBQ0lORy1DT05UQUlORVJcbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKlxuICogWzFdIE9ubHkgb3ZlcndyaXRlIHRoZSBib3R0b20gYW5kIHRvcCBzcGFjaW5nIGlmIGEgc3BlY2lmaWNcbiAqICAgICBgJHNwYWNpbmctYmV0d2Vlbi1tb2R1bGVzYCBpcyBkZWZpbmVkIGFuZCBpdCBpcyBkaWZmZXJlbnQgZnJvbVxuICogICAgIGAkc3BhY2luZy12ZXJ0aWNhbGAuXG4gKiBbMl0gUmFpc2Ugc3BlY2lmaWNpdHkgdG8gb3ZlcndyaXRlIGA6Zmlyc3QtY2hpbGRgIGFuZCBgOmxhc3QtY2hpbGRgIHNlbGVjdG9yc1xuICogICAgIG9mIHNwYWNpbmctY29udGFpbmVyIG1peGluLlxuICovXG5cbi8vIE1ha2VzIHRoZSBlbGVtZW50IGEgbW9kdWxlIGNvbnRhaW5lci4gTWFrZSBzdXJlIHRoYXQgdGhlIG1vZHVsZXMgYXJlIGRpcmVjdFxuLy8gY2hpbGRyZW4gb2YgdGhpcyBjb250YWluZXIuIE1vZHVsZXMgYXJlIGFsaWduZWQgdmVydGljYWxseS5cbkBtaXhpbiBzcGFjaW5nLWNvbnRhaW5lcigkc3BhY2luZy12ZXJ0aWNhbCwgJHNwYWNpbmctaG9yaXpvbnRhbDogbnVsbCwgJHNwYWNpbmctYmV0d2Vlbi1tb2R1bGVzOiBudWxsKSB7XG5cbiAgICA+ICoge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFxuICAgICAgICAgICAgKFwicGFkZGluZy10b3BcIiwgICAgaWYoJHNwYWNpbmctYmV0d2Vlbi1tb2R1bGVzLCAkc3BhY2luZy1iZXR3ZWVuLW1vZHVsZXMsICRzcGFjaW5nLXZlcnRpY2FsKSksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLXJpZ2h0XCIsICBpZigkc3BhY2luZy1ob3Jpem9udGFsLCAkc3BhY2luZy1ob3Jpem9udGFsLCAkc3BhY2luZy12ZXJ0aWNhbCkpLFxuICAgICAgICAgICAgKFwicGFkZGluZy1ib3R0b21cIiwgaWYoJHNwYWNpbmctYmV0d2Vlbi1tb2R1bGVzLCAkc3BhY2luZy1iZXR3ZWVuLW1vZHVsZXMsICRzcGFjaW5nLXZlcnRpY2FsKSksXG4gICAgICAgICAgICAoXCJwYWRkaW5nLWxlZnRcIiwgICBpZigkc3BhY2luZy1ob3Jpem9udGFsLCAkc3BhY2luZy1ob3Jpem9udGFsLCAkc3BhY2luZy12ZXJ0aWNhbCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgQGlmICgkc3BhY2luZy1iZXR3ZWVuLW1vZHVsZXMgYW5kICRzcGFjaW5nLWJldHdlZW4tbW9kdWxlcyAhPSAkc3BhY2luZy12ZXJ0aWNhbCkgeyAvKiBbMV0gKi9cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wcm9wZXJ0eShcInBhZGRpbmctdG9wXCIsICRzcGFjaW5nLXZlcnRpY2FsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXByb3BlcnR5KFwicGFkZGluZy1ib3R0b21cIiwgJHNwYWNpbmctdmVydGljYWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLy8gUmVtb3ZlcyB0aGUgb3V0ZXIgcGFkZGluZ3MgZm9yIGEgY29tcG9uZW50IG1vZHVsZSAoZS5nLiB0aGUgY29tcG9uZW50J3Ncbi8vIGhlYWRlciwgYm9keSwgZm9vdGVyKS5cbi8vIElmIGAkYmV0d2Vlbi1tb2R1bGVzYCBpcyB0cnVlLCBhbHNvIHJlbW92ZXMgc3BhY2luZyBiZXR3ZWVuIG1vZHVsZXMuXG5AbWl4aW4gc3BhY2luZy1pdGVtLWZsdXNoKCRiZXR3ZWVuLW1vZHVsZXM6IGZhbHNlKSB7XG4gICAgQGlmICgkYmV0d2Vlbi1tb2R1bGVzKSB7XG4gICAgICAgIDpyb290ICYge1xuICAgICAgICAgICAgcGFkZGluZzogMDsvKiBbMl0gKi9cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4vLyAgICAgI0ZPTlQtRkFDRVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogc3R5bGVsaW50LWRpc2FibGUgcGx1Z2luL25vLXVuc3VwcG9ydGVkLWJyb3dzZXItZmVhdHVyZXMsIHZhbHVlLWxpc3QtY29tbWEtbmV3bGluZS1hZnRlciwgdmFsdWUtbGlzdC1jb21tYS1zcGFjZS1hZnRlciwgbm8tZXh0cmEtc2VtaWNvbG9ucyAqL1xuXG4kQkFTRS1GT05UOiAgICAgICAgICAgXCJDb21pYyBTYW5zIE1TXCIgIWRlZmF1bHQ7XG4kQkFTRS1GT05ULUZBTExCQUNLUzogc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRGT05ULVBBVEg6ICAgICAgICAgICBcIi4uL2ZvbnRzXCIgIWRlZmF1bHQ7XG5cbi8vIFZhcmlhYmxlIHRvIGJlIHVzZWQgdGhyb3VnaG91dCB0aGUgcHJvamVjdC5cbiRCQVNFLUZPTlQtRkFNSUxZOiAgICAkQkFTRS1GT05ULCAkQkFTRS1GT05ULUZBTExCQUNLUyAhZGVmYXVsdDtcblxuLy9cbi8vIEZvbnQgRmFjZSBNaXhpbi5cbi8vXG4vLyBKdXN0IHVzZSB0aGlzIG1peGluIGlmIHlvdSBoYXZlIHNlbGYtaG9zdGVkIGZvbnRzIGluIHlvdXIgcHJvamVjdHMuIElmIHlvdVxuLy8gYXJlIHVzaW5nIGEgc2VydmljZSBzdWNoIGFzIEdvb2dsZSBGb250cyBvciBoYXZlIHN5c3RlbSBmb250cyBpbmNsdWRlZCwgeW91XG4vLyBkb24ndCBuZWVkIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBkZWNsYXJlZCB2YXJpYWJsZXMgc3VmZmljZS5cbi8vXG4vLyAtLS1cbi8vIEBwYXJhbSB7U3RyaW5nfSAgJGZvbnQtbmFtZTogICAgIGZvbnQtbmFtZVxuLy8gQHBhcmFtIHtTdHJpbmd9ICAkd2VpZ2h0IFsnUmVndWxhciddIC0gJ3dlaWdodCcgKGUuZy4gdGhpbiwgbWVkaXVtLCByZWd1bGFyLCBib2xkKVxuLy8gQHBhcmFtIHtudW1iZXJ9ICAkc2NhbGUgWzUwMF0gLSBmb250LXdlaWdodCAoZS5nLiAzMDAsIDUwMCwgNzAwLCA5MDApXG4vLyBAcGFyYW0ge1N0cmluZ30gICRzdHlsZSBbJ25vcm1hbCddIC0gZm9udC1zdHlsZSAoZS5nLiBub3JtYWwsIGl0YWxpYylcbi8vIEBwYXJhbSB7Qm9vbGVhbn0gJGNvbXBhdCBbZmFsc2VdIC0gZm9ybWF0XG4vLyAgdHJ1ZTogZW90LCB3b2ZmMiwgd29mZlxuLy8gIGZhbHNlOiB3b2ZmMiwgd29mZlxuLy8gQHBhcmFtIHtCb29sZWFufSAkd29mZjIgW3RydWVdIC0gd29mZjIgc3VwcG9ydFxuLy8gLS0tXG4vL1xuLy9cbi8vIEBleGFtcGxlIHNjc3MgLSBjb21wYXRpYmlsaXR5IG1vZGVcbi8vICBAaW5jbHVkZSBmb250LWZhY2UoXG4vLyAgICAgJGZvbnQtbmFtZTogJ215Rm9udCcsXG4vLyAgICAgJHdlaWdodDogICAgJ1JlZ3VsYXInLFxuLy8gICAgICRzY2FsZTogICAgIDUwMCxcbi8vICAgICAkc3R5bGU6ICAgICBub3JtYWwsXG4vLyAgICAgJGNvbXBhdDogICAgdHJ1ZVxuLy8gICk7XG4vL1xuLy8gIEdlbmVyYXRlczpcbi8vICBAZm9udC1mYWNlIHtcbi8vICAgIGZvbnQtZmFtaWx5OiBteUZvbnQ7XG4vLyAgICBzcmM6IHVybCgnLi4vRm9udHMvbXlGb250L215Rm9udC1SZWd1bGFyLmVvdCcpO1xuLy8gICAgc3JjOiB1cmwoJy4uL0ZvbnRzL215Rm9udC9teUZvbnQtUmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuLy8gICAgICAgICB1cmwoJy4uL0ZvbnRzL215Rm9udC9teUZvbnQtUmVndWxhci53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcuLi9Gb250cy9teUZvbnQvbXlGb250LVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xuLy8gICAgZm9udC13ZWlnaHQ6IDUwMDtcbi8vICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vICB9XG4vL1xuLy9cbi8vIEBleGFtcGxlIHNjc3MgLSBubyBjb21wYXRpYmlsaXR5IG1vZGVcbi8vICBAaW5jbHVkZSBmb250LWZhY2UoXG4vLyAgICAgJGZvbnQtbmFtZTogJ215Rm9udCcsXG4vLyAgICAgJHdlaWdodDogICAgJ1JlZ3VsYXInLFxuLy8gICAgICRzY2FsZTogICAgIDUwMCxcbi8vICAgICAkc3R5bGU6ICAgICBub3JtYWwsXG4vLyAgICAgJGNvbXBhdDogICAgZmFsc2Vcbi8vICApO1xuLy9cbi8vICBHZW5lcmF0ZXM6XG4vLyAgQGZvbnQtZmFjZSB7XG4vLyAgIGZvbnQtZmFtaWx5OiBteUZvbnQ7XG4vLyAgIHNyYzogdXJsKCcuLi9Gb250cy9teUZvbnQvbXlGb250LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4vLyAgICAgICAgdXJsKFwiLi4vRm9udHMvbXlGb250L215Rm9udC1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbi8vICAgZm9udC13ZWlnaHQ6IDUwMDtcbi8vICAgZm9udC1zdHlsZTogbm9ybWFsO1xuLy8gfVxuLy9cbi8vXG4vLyBAZXhhbXBsZSBzY3NzIC0gd29mZjIgc3VwcG9ydFxuLy8gIEBpbmNsdWRlIGZvbnQtZmFjZShcbi8vICAgICAkZm9udC1uYW1lOiAnbXlGb250Jyxcbi8vICAgICAkd29mZjI6ICAgICB0cnVlIC8vIGRlZmF1bHRcbi8vICApO1xuLy9cbi8vICBHZW5lcmF0ZXM6XG4vLyAgQGZvbnQtZmFjZSB7XG4vLyAgIGZvbnQtZmFtaWx5OiBteUZvbnQ7XG4vLyAgIHNyYzogdXJsKCcuLi9Gb250cy9teUZvbnQvbXlGb250LVJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4vLyAgICAgICAgdXJsKFwiLi4vRm9udHMvbXlGb250L215Rm9udC1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbi8vICAgZm9udC13ZWlnaHQ6IDUwMDtcbi8vICAgZm9udC1zdHlsZTogbm9ybWFsO1xuLy8gIH1cbkBtaXhpbiBmb250LWZhY2UoJGZvbnQtbmFtZSwgJHBhdGg6ICRGT05ULVBBVEgsICRmYWNlOiBudWxsLCAkd2VpZ2h0OiBub3JtYWwsICRzdHlsZTogbm9ybWFsLCAkY29tcGF0OiBmYWxzZSwgJHdvZmYyOiB0cnVlLCAkcmV2aXNpb246IGZhbHNlKSB7XG4gICAgJF9yZXZpc2lvbjogaWYoJHJldmlzaW9uLCAkcmV2aXNpb24sIG51bGwpO1xuXG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1uYW1lO1xuICAgICAgICBAaWYgKCRjb21wYXQgYW5kICR3b2ZmMikge1xuICAgICAgICAgICAgc3JjOiB1cmwoXCIjeyRwYXRofS8jeyRmb250LW5hbWV9I3skZmFjZX0uZW90PyN7JF9yZXZpc2lvbn1cIik7XG4gICAgICAgICAgICBzcmM6IHVybChcIiN7JHBhdGh9LyN7JGZvbnQtbmFtZX0jeyRmYWNlfS5lb3Q/I2llZml4PyN7JF9yZXZpc2lvbn1cIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgICAgICAgICAgICAgIHVybChcIiN7JHBhdGh9LyN7JGZvbnQtbmFtZX0jeyRmYWNlfS53b2ZmMj8jeyRfcmV2aXNpb259XCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgICAgICAgICAgICB1cmwoXCIjeyRwYXRofS8jeyRmb250LW5hbWV9I3skZmFjZX0ud29mZj8jeyRfcmV2aXNpb259XCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRjb21wYXQpIHtcbiAgICAgICAgICAgIHNyYzogdXJsKFwiI3skcGF0aH0vI3skZm9udC1uYW1lfSN7JGZhY2V9LmVvdD8jeyRfcmV2aXNpb259XCIpO1xuICAgICAgICAgICAgc3JjOiB1cmwoXCIjeyRwYXRofS8jeyRmb250LW5hbWV9I3skZmFjZX0uZW90PyNpZWZpeD8jeyRfcmV2aXNpb259XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgICAgICAgICAgICAgICB1cmwoXCIjeyRwYXRofS8jeyRmb250LW5hbWV9I3skZmFjZX0ud29mZj8jeyRfcmV2aXNpb259XCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgICAgIH0gQGVsc2UgaWYgKCR3b2ZmMikge1xuICAgICAgICAgICAgc3JjOiB1cmwoXCIjeyRwYXRofS8jeyRmb250LW5hbWV9I3skZmFjZX0ud29mZjI/I3skX3JldmlzaW9ufVwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgICAgICAgICAgdXJsKFwiI3skcGF0aH0vI3skZm9udC1uYW1lfSN7JGZhY2V9LndvZmY/I3skX3JldmlzaW9ufVwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHNyYzogdXJsKFwiI3skcGF0aH0vI3skZm9udC1uYW1lfSN7JGZhY2V9LndvZmY/I3skX3JldmlzaW9ufVwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuICAgICAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgfVxufTtcblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLyoqXG4gKiBAVE9ETzpcbiAqIG5vIHZhcmlhYmxlcyAvIHNldHRpbmdzLWZpbGUgaW4gdG9vbHNcbiAqIHVzZSBtaXhpbiBwYXJhbXNcbiAqIHNldCB2YXJpYWJsZXMgaW4gc2V0dGluZ3MgbGF5ZXJcbiAqL1xuXG4vLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNCQURHRVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGJhZGdlLXNpemU6ICAgICAgICAkR0xPQkFMLUxJTkUtSEVJR0hUICFkZWZhdWx0O1xuJGJhZGdlLXRleHQtc2l6ZTogICAkRlMtMSAhZGVmYXVsdDtcbiRiYWRnZS1mb250LXdlaWdodDogJEdMT0JBTC1GT05ULVdFSUdIVC1CT0xEICFkZWZhdWx0O1xuJGJhZGdlLWNvbG9yOiAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kYmFkZ2UtdGV4dC1jb2xvcjogICRDT0xPUi1XSElURSAhZGVmYXVsdDtcblxuLy8gWzFdIFByb3ZpZGUgYSBzb2xpZCBkZWZhdWx0IHJlc2V0dGluZyBmbyB0aGUgdmVydGljYWwgYWxpZ25tZW50IG9mIHRoZVxuLy8gICAgIGJhZGdlIGluIGFuIGlubGluZSBjb250ZXh0IGluc2lkZSBvZiB0ZXh0LlxuQG1peGluIGJhZGdlKCkge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZm9udC1zaXplKFxuICAgICAgICAkZm9udC1zaXplOiAgICRiYWRnZS10ZXh0LXNpemUsXG4gICAgICAgICRsaW5lLWhlaWdodDogJGJhZGdlLXNpemVcbiAgICApO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogJGJhZGdlLXNpemU7XG4gICAgaGVpZ2h0OiAkYmFkZ2Utc2l6ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMC4xZW07IC8qIFsxXSAqLyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIHNoLXdhcWFyL2RlY2xhcmF0aW9uLXVzZS12YXJpYWJsZSAqL1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLWNvbG9yO1xuICAgIGNvbG9yOiAkYmFkZ2UtdGV4dC1jb2xvcjtcbiAgICBmb250LXdlaWdodDogJGJhZGdlLWZvbnQtd2VpZ2h0O1xufVxuIiwiLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjU0NST0xMQUJMRVxuLy8gXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJHNjcm9sbGFibGUtaW5kaWNhdG9yLWNvbG9yOiAgICAgICAgICAgICAkRFJPUC1TSEFET1ctQ09MT1IgIWRlZmF1bHQ7XG4kc2Nyb2xsYWJsZS1pbmRpY2F0b3Itc2hhZG93LXNpemU6ICAgICAgIDE0cHggIWRlZmF1bHQ7XG4kc2Nyb2xsYWJsZS1pbmRpY2F0b3Itc2hhZG93LXNpemUtbXM6ICAgIDEwcHggIWRlZmF1bHQ7IC8vIElFMTEvRWRnZSByZW5kZXIgcmFkaWFsIGdyYWRpZW50cyBkaWZmZXJlbnRseVxuJHNjcm9sbGFibGUtaW5kaWNhdG9yLXNoYWRvdy1jb3Zlci1zaXplOiAkc2Nyb2xsYWJsZS1pbmRpY2F0b3Itc2hhZG93LXNpemUgKiAzICFkZWZhdWx0O1xuXG4vKlxuICogSW4gSUUxMS9FZGdlIHRoZSBzaGFkb3cgYXQgdGhlIHRvcC9ib3R0b20gZG9lcyBub3QgZGlzYXBwZWFyIHdoZW4gc2Nyb2xsaW5nXG4gKiB0byB0aGUgdmVyeSB0b3AgYW5kIGJvdHRvbS4gV2hhdCBpcyBldmVuIHdvcnNlIGlzIHRoYXQgdGhlIGJvdHRvbSBzaGFkb3cgaXNcbiAqIG5vdCBkaXNwbGF5ZWQgd2hlbiBzY3JvbGxlZCB0byB0aGUgdmVyeSB0b3AsIHNvIHRoZSBpbmRpY2F0b3IgdGhhdCB0aGVcbiAqIGNvbnRhaW5lciBpcyBzY3JvbGxhYmxlLCBpcyBtaXNzaW5nLiBUaGVyZWZvcmUsIHRoZSBmYWxsYmFjayBmb3IgdGhlc2UgdHdvXG4gKiBicm93c2VyIGlzIGEgc3RhdGljIGJvdHRvbSBzaGFkb3cuXG4gKi9cbkBtaXhpbiBfc2Nyb2xsYWJsZS1pbmRpY2F0b3ItbXMtZmFsbGJhY2soJGJnLWNvbG9yKSB7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsICRzY3JvbGxhYmxlLWluZGljYXRvci1jb2xvciwgcmdiYSgkc2Nyb2xsYWJsZS1pbmRpY2F0b3ItY29sb3IsIDApKSAwIDEwMCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctY29sb3I7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlICRzY3JvbGxhYmxlLWluZGljYXRvci1zaGFkb3ctc2l6ZS1tcztcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDtcbn1cblxuLy8gQWRhcHRhdGlvbiBvZiBodHRwczovL2NvZGVwZW4uaW8vbGF1c3RkZWxldXJhbi9wZW4vREJhQXVcbkBtaXhpbiBfc2Nyb2xsYWJsZS1pbmRpY2F0b3JzKCRiZy1jb2xvcikge1xuXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAvLyBTaGFkb3cgY292ZXJzXG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgkYmctY29sb3IgMzAlLCByZ2JhKCRiZy1jb2xvciwwKSksXG4gICAgICAgIGxpbmVhci1ncmFkaWVudChyZ2JhKCRiZy1jb2xvciwgMCksICRiZy1jb2xvciA3MCUpIDAgMTAwJSxcbiAgICAgICAgLy8gU2hhZG93c1xuICAgICAgICByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMCwgJHNjcm9sbGFibGUtaW5kaWNhdG9yLWNvbG9yLCByZ2JhKCRzY3JvbGxhYmxlLWluZGljYXRvci1jb2xvciwgMCkpLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMTAwJSwgJHNjcm9sbGFibGUtaW5kaWNhdG9yLWNvbG9yLCByZ2JhKCRzY3JvbGxhYmxlLWluZGljYXRvci1jb2xvciwgMCkpIDAgMTAwJTtcbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctY29sb3I7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlICRzY3JvbGxhYmxlLWluZGljYXRvci1zaGFkb3ctY292ZXItc2l6ZSwgMTAwJSAkc2Nyb2xsYWJsZS1pbmRpY2F0b3Itc2hhZG93LWNvdmVyLXNpemUsIDEwMCUgJHNjcm9sbGFibGUtaW5kaWNhdG9yLXNoYWRvdy1zaXplLCAxMDAlICRzY3JvbGxhYmxlLWluZGljYXRvci1zaGFkb3ctc2l6ZTtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsLCBsb2NhbCwgc2Nyb2xsLCBzY3JvbGw7XG5cbiAgICAvLyBJbiBJRSBhbmQgRWRnZSB0aGUgb3ZlcmxheSBlZmZlY3QsIHdoaWNoIGNhdXNlcyB0aGUgc2hhZG93IHRvIGJlIGhpZGRlblxuICAgIC8vIHdoZW4gc2Nyb2xsZWQgdG8gdGhlIHZlcnkgdG9wIG9yIGJvdHRvbSwgZG9lcyBub3Qgd29yayAtIGZhbGxiYWNrIGlzIGFcbiAgICAvLyBzdGF0aWMgYm90dG9tIHNoYWRvdy5cbiAgICBAaW5jbHVkZSBpZS1vbmx5KCkge1xuICAgICAgICBAaW5jbHVkZSBfc2Nyb2xsYWJsZS1pbmRpY2F0b3ItbXMtZmFsbGJhY2soJGJnLWNvbG9yKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgZWRnZS1vbmx5KCkge1xuICAgICAgICBAaW5jbHVkZSBfc2Nyb2xsYWJsZS1pbmRpY2F0b3ItbXMtZmFsbGJhY2soJGJnLWNvbG9yKTtcbiAgICB9XG59XG5cbi8vIEhlbHBlciB0byBtYWtlIGEgY29udGFpbmVyIHNjcm9sbGFibGUgYW5kIGFkZCBhbiBpbmRpY2F0b3IgaW4gdGhlIGZvcm0gb2Zcbi8vIGEgc2hhZG93LlxuQG1peGluIHNjcm9sbGFibGUoJGNvbnRhaW5lci1oZWlnaHQsICRiZy1jb2xvcjogbnVsbCwgJHRoZW1lczogbnVsbCwgJHRoZW1lLWJnLWNvbG9yLXZhcmlhYmxlOiBcImJhY2tncm91bmRcIikge1xuICAgIEBpZiAoJGJnLWNvbG9yID09IG51bGwgb3IgJGJnLWNvbG9yID09IHRyYW5zcGFyZW50ICBvciBvcGFjaXR5KCRiZy1jb2xvcikgIT0gMSkge1xuICAgICAgICBAZXJyb3IgXCJUaGUgYmFja2dyb3VuZCBjb2xvciBvZiBhIGNvbXBvbmVudCB1c2luZyB0aGUgc2Nyb2xsYWJsZSgpIGhlbHBlciBjYW5ub3QgYmUgbnVsbCBvciAocGFydGx5KSB0cmFuc3BhcmVudC5cIjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfc2Nyb2xsYWJsZS1pbmRpY2F0b3JzKCRiZy1jb2xvcik7XG4gICAgbWF4LWhlaWdodDogJGNvbnRhaW5lci1oZWlnaHQ7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBpbmNsdWRlIHZhcnkoJGxvb3A6ICR0aGVtZXMpIHtcbiAgICAgICAgJGJnLWNvbG9yLXRoZW1lOiB2YXJ5LWdldCgkdGhlbWUtYmctY29sb3ItdmFyaWFibGUpO1xuICAgICAgICBAaWYgKHR5cGVfb2YoJGJnLWNvbG9yLXRoZW1lKSA9PSBjb2xvcikge1xuICAgICAgICAgICAgQGlmICgkYmctY29sb3ItdGhlbWUgPT0gdHJhbnNwYXJlbnQgIG9yIG9wYWNpdHkoJGJnLWNvbG9yLXRoZW1lKSAhPSAxKSB7XG4gICAgICAgICAgICAgICAgQGVycm9yIFwiVGhlIGJhY2tncm91bmQgY29sb3Igb2YgYSBjb21wb25lbnQgdXNpbmcgdGhlIHNjcm9sbGFibGUoKSBoZWxwZXIgY2Fubm90IGJlIG51bGwgb3IgKHBhcnRseSkgdHJhbnNwYXJlbnQuIENoZWNrIHRoZW1pbmcgY29sb3JzIVwiO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgX3Njcm9sbGFibGUtaW5kaWNhdG9ycygkYmctY29sb3ItdGhlbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjUExBWS1CVVRUT05cbi8vIFxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKlxuICogRXh0cmFjdCBwbGF5LWJ1dHRvbiBzdHlsZXMgdG8gcmV1c2FibGUgbWl4aW4gdG8gcmV1c2VcbiAqIGluIG90aGVyIG1vZHVsZXMgd2l0aG91dCBhbHRlcmluZyBtYXJrdXAuXG4gKi9cblxuJHBsYXktYnV0dG9uLWJyZWFrcG9pbnQ6ICAgICAgICAgcyAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1zaXplOiAgICAgICAgICAgICAgIG1hcC1nZXQoJElDT04tUk9VTkQtRlVMTC1TSVpFUywgXCJtZWRpdW1cIikgIWRlZmF1bHQ7XG4kcGxheS1idXR0b24tc2l6ZS1hdC1icmVha3BvaW50OiBtYXAtZ2V0KCRJQ09OLVJPVU5ELUZVTEwtU0laRVMsIFwic21hbGxcIikgIWRlZmF1bHQ7XG4kcGxheS1idXR0b24tYm9yZGVyLXdpZHRoOiAgICAgICAycHggIWRlZmF1bHQ7XG4kcGxheS1idXR0b24tYm9yZGVyLWNvbG9yOiAgICAgICAkQ09MT1ItSElHSExJR0hUICFkZWZhdWx0O1xuJHBsYXktYnV0dG9uLWJvcmRlcjogICAgICAgICAgICAgJHBsYXktYnV0dG9uLWJvcmRlci13aWR0aCBzb2xpZCAkcGxheS1idXR0b24tYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHBsYXktYnV0dG9uLWJhY2tncm91bmQ6ICAgICAgICAgJENPTE9SLVdISVRFICFkZWZhdWx0O1xuJHBsYXktYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6ICAgJHBsYXktYnV0dG9uLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGxheS1idXR0b24taWNvbi1jb2xvcjogICAgICAgICAkQ09MT1ItQlJBTkQgIWRlZmF1bHQ7XG4kcGxheS1idXR0b24taWNvbi1jb2xvci1ob3ZlcjogICAkcGxheS1idXR0b24taWNvbi1jb2xvciAhZGVmYXVsdDtcbiRwbGF5LWJ1dHRvbi1pY29uLXNpemU6ICAgICAgICAgIGljb24tc2l6ZShzbWFsbCkgIWRlZmF1bHQ7XG4kcGxheS1idXR0b24tc2hhZG93OiAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuXG4vKipcbiAqIFsxXSBDZW50ZXIgaWNvbiBpbnNpZGUgYnV0dG9uLlxuICogWzJdIE92ZXJ3cml0ZSBwbHlyIGRlZmF1bHQuXG4gKi9cblxuLy8vIEFwcGx5IHBsYXktYnV0dG9uIHN0eWxlcyB0byBjb25maWd1cmFibGUgc2VsZWN0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRidXR0b24tc2VsZWN0b3IgLSBzZWxlY3RvciBmb3IgYnV0dG9uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRpY29uLXNlbGVjdG9yIC0gc2VsZWN0b3IgZm9yIGljb24gKGljb25mb250IG9yIHN2Zylcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGxhYmVsLXNlbGVjdG9yIC0gc2VsZWN0b3IgZm9yIGxhYmVsIChhMTF5LCB2aXN1YWxseSBoaWRkZW4pXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdXNlLXN2ZyBbZmFsc2VdIC0gdXNlIFNWRyBvciBpY29uLWZvbnRcbi8vLyBAcmV0dXJucyB7Q1NTfSBDb21wbGV0ZSBydWxlc2V0IGZvciBwbGF5LWJ1dHRvbiBzdHlsaW5nLlxuQG1peGluIHBsYXktYnV0dG9uKFxuICAgICRidXR0b24tc2VsZWN0b3I6IFwiLmMtcGxheS1idXR0b25cIixcbiAgICAkaWNvbi1zZWxlY3RvcjogXCIuYy1wbGF5LWJ1dHRvbl9faWNvblwiLFxuICAgICRsYWJlbC1zZWxlY3RvcjogXCIuYy1wbGF5LWJ1dHRvbl9fbGFiZWxcIixcbiAgICAkdXNlLXN2ZzogZmFsc2UsXG4pIHtcbiAgICAjeyRidXR0b24tc2VsZWN0b3J9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgLyogWzFdWzJdICovIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIFsxXSAqL1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogWzJdICovXG4gICAgICAgIHdpZHRoOiAkcGxheS1idXR0b24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcGxheS1idXR0b24tc2l6ZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAkcGxheS1idXR0b24tYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGxheS1idXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRwbGF5LWJ1dHRvbi1pY29uLWNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAkcGxheS1idXR0b24tc2hhZG93O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLXF1ZXJ5KFwiPD0jeyRwbGF5LWJ1dHRvbi1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICB3aWR0aDogJHBsYXktYnV0dG9uLXNpemUtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgICAgIGhlaWdodDogJHBsYXktYnV0dG9uLXNpemUtYXQtYnJlYWtwb2ludDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHBsYXktYnV0dG9uLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICAgICAgICBjb2xvcjogJHBsYXktYnV0dG9uLWljb24tY29sb3ItaG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRpY29uLXNlbGVjdG9yfSB7XG4gICAgICAgIEBpZiAoJHVzZS1zdmcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkcGxheS1idXR0b24taWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcGxheS1idXR0b24taWNvbi1zaXplO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwbGF5LWJ1dHRvbi1pY29uLXNpemU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRsYWJlbC1zZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBhMTF5LWhpZGRlbigpO1xuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNDVVNUT00gU1RZTEVHVUlERSBTVFlMRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKlxuICogQWRkcyBhIG5vdGljZSBhdCB0aGUgdG9wIG9mIHRoZSBjb21wb25lbnQgY29udGFpbmluZyBgJHRleHRgLlxuICovXG5AbWl4aW4gY29tcG9uZW50LW5vdGljZSgkdGV4dCkge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAkR0xPQkFMLVNQQUNJTkctVU5JVC1YU01BTEwgJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEw7XG4gICAgICAgIGJhY2tncm91bmQ6ICRDT0xPUi1CUkFORDtcbiAgICAgICAgY29sb3I6ICRDT0xPUi1XSElURTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb250ZW50OiAkdGV4dDtcbiAgICB9XG59XG5cbi8qKlxuICogQ29tcG9uZW50IHZhcmlhbnQgd3JhcHBlciBmb3IgZnJhY3RhbCBzdHlsZWd1aWRlIHZpZXcgKGZvciBjb2xsYXRlZCBjb21wb25lbnRzKS5cbiAqL1xuLnNnLWNvbXBvbmVudC12YXJpYW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAkR0xPQkFMLVNQQUNJTkctVU5JVDtcbn1cblxuLyoqXG4gKiBDYXJkcy5cbiAqXG4gKiBbMV0gUHJlc2VudCBtb3JlIHJlYWxpc3RpYyBkaW1lbnNpb25zIG9mIHRoZSBjYXJkIGNvbXBvbmVudC5cbiAqIFsyXSBSZXNldCB0aGUgY2FyZHMgd2lkdGggZm9yIGNhcmRzIHNsaWRlciBhbmQgY29sbGFwc2libGUgY2FyZHMuXG4gKi9cbltjbGFzcyo9XCJzZy1zY29wZS1jYXJkXCJdIHtcblxuICAgIC5jLWNhcmQge1xuICAgICAgICBtYXgtd2lkdGg6IDQwMHB4OyAvKiBbMV0gKi9cbiAgICB9XG5cbiAgICAmLnNnLXNjb3BlLWNhcmQtd2l0aC1kaXZpZGVyLFxuICAgICYuc2ctc2NvcGUtY2FyZHMtc2xpZGVyIHtcbiAgICAgICAgLmMtY2FyZCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGluaXRpYWw7IC8qIFsyXSAqL1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cblxuLyoqXG4gKiBUaWxlIHNlbGVjdC5cbiAqXG4gKiBbMV0gUHJlc2VudCBtb3JlIHJlYWxpc3RpYyBkaW1lbnNpb25zIG9mIHRoZSB0aWxlIHNlbGVjdCBjb21wb25lbnQuXG4gKi9cbi5zZy1zY29wZS10aWxlLXNlbGVjdCB7XG5cbiAgICAuYy10aWxlLXNlbGVjdCB7XG4gICAgICAgIG1heC13aWR0aDogNDAwcHg7IC8qIFsxXSAqL1xuICAgIH1cblxufVxuXG4vKipcbiAqIE1lZGlhIFRlYXNlci5cbiAqXG4gKiBbMV0gUmVtb3ZlIG1hcmdpbiBiZXR3ZWVuIGNvbGxhdGVkIHZhcmlhbnRzLlxuICovXG4gLnNnLXNjb3BlLW1lZGlhLXRlYXNlciB7XG5cbiAgICAuc2ctY29tcG9uZW50LXZhcmlhbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvKiBbMV0gKi9cbiAgICB9XG5cbn1cblxuLyoqXG4gKiBTZXQgZnVsbCB2aWV3cG9ydC1oZWlnaHQgZm9yIGJldHRlciB0aGVtaW5nLXByZXZpZXcgKEJsdWVsYWJlbC1zcGVjaWZpYykuXG4gKi9cbmJvZHlbZGF0YS10aGVtZV0sXG5ib2R5W2NsYXNzXj1cInUtYmctXCJdIHtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLyoqXG4gKiBDdXN0b20gc2VsZWN0LlxuICovXG4uc2ctc2NvcGUtY3VzdG9tLXNlbGVjdCB7XG5cbiAgICAuYy1jdXN0b20tc2VsZWN0X19kcm9wZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbn1cblxuLnNnLWNvbXBvbmVudC1wcmV2aWV3Om5vdCguc2ctY29tcG9uZW50LXByZXZpZXctLWZ1bGwpICNzZy1jb21wb25lbnQtd3JhcHBlciB7XG4gICAgcGFkZGluZzogJEdMT0JBTC1TUEFDSU5HLVVOSVQ7XG59XG5cbi8qKlxuICogVGhlbWUvYnJhbmQgc2VsZWN0IGJveGVzLlxuICovXG4uc2ctc2VsZWN0LWJveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5zZy1zZWxlY3QtYm94X19sYWJlbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkR0xPQkFMLVNQQUNJTkctVU5JVDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uc2ctY29tcG9uZW50LXByZXZpZXcge1xuXG4gICAgLnNnLWNvbnRyb2xzIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgYm94LXNoYWRvdzogJEdMT0JBTC1CT1gtU0hBRE9XO1xuICAgIH1cblxuICAgIC5zZy1zZWxlY3QtYm94IHtcbiAgICAgICAgbWFyZ2luLXRvcDogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEw7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkR0xPQkFMLVNQQUNJTkctVU5JVC1TTUFMTDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJEdMT0JBTC1TUEFDSU5HLVVOSVQtU01BTEw7XG4gICAgfVxuXG4gICAgLnNnLWJyYW5kLXNlbGVjdCB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG5cbiAgICAgICAgJi5qcy1yZWFkeSB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbi8qKlxuICogVGhlIHZlcnRpY2FsIGJhciBjb21wb25lbnQgaXMgaW5jbHVkZWQgaW4gZXZlcnkgcGFja2FnZSwgYnV0IHNob3VsZCBqdXN0IGJlXG4gKiB2aXNpYmxlIGluIEJyb25zb24tVlcuIEhvd2V2ZXIsIHNpbmNlIHRoZSBjb21wb25lbnQgaXMgcHJlc2VudCBpbiB0aGVcbiAqIEZyYWN0YWwgTmF2IGluIGV2ZXJ5IHBhY2thZ2UsIHdlIHByb3ZpZGUgc29tZSBkZXNjcmlwdGlvbiB0ZXh0ICh0aGUgYDxwPmBcbiAqIGVsZW1lbnQgaW4gdGhlIHNlbGVjdG9yKSwgdGhhdCBpcyBzaG93biBhbHRlcm5hdGl2ZWx5IGluIGFsbCB0aGUgb3RoZXJcbiAqIHBhY2thZ2VzLCB0aGF0IGRlc2NyaWJlcyB0aGlzIGZhY3QuIFRoaXMgYDxwPmAgZWxlbWVudCBob3dldmVyIHNob3VsZCBqdXN0XG4gKiBiZSB2aXNpYmxlIGluIHRoZSBzaW5nbGUgY29tcG9uZW50IHZpZXcgaW4gRnJhY3RhbCBhbmQgbm90IG9uIHNhbXBsZSBwYWdlc1xuICogZXRjLiBUaGF04oCZcyB3aHkgd2Ugc2NvcGUgaXQgdG8gdGhlIGAuc2ctc2NvcGUtdmVydGljYWwtYmFyYC5cbiAqL1xuaHRtbDpub3QoLnNnLXNjb3BlLXZlcnRpY2FsLWJhcikgLmMtdmVydGljYWwtYmFyICsgcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBIaWRlIGAuYy1sb2dvX19pbWFnZWAgaW1hZ2UgZm9yIGRlZmF1bHQgcGFja2FnZSBpbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudFxuICogYW5kIHdoaWxlIHJ1bm5pbmcgQnJvbnNvbiBsb2NhbGx5IHZpYSBgbnBtIHJ1biBtdWx0aWJyYW5kYCBiZWNhdXNlXG4gKiBwYWNrYWdlIHNwZWNpZmljIGxvZ28gaW1hZ2VzIGNhbuKAmXQgYmUgZGVmaW5lZCBpbiBib3RoIGNhc2VzLlxuICogQXMgZmFsbGJhY2sgdGhlIGJhY2tncm91bmQgaW1hZ2Ugb2YgYC5jLWxvZ29gIHdpbGwgYmUgdXNlZC5cbiAqL1xuLnNnLXBhY2thZ2UtZGVmYXVsdC5zZy1lbnYtZGV2ZWxvcG1lbnQgLmMtbG9nb19faW1hZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zZy1wYWNrYWdlLWRlZmF1bHQuc2ctZW52LWRldmVsb3BtZW50IC5jLWxvZ28ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWw7XG59XG5cbi5zZy1zY29wZS13ZWJjYWxjIHtcbiAgICBAaW5jbHVkZSBjb21wb25lbnQtbm90aWNlKCdCZWxvdyBmb3JtIGlzIGdlbmVyYXRlZCBieSBDYWxjdWxhdG9ySlMsIHdoaWNoIGlzIGRldmVsb3BlZCBieSB0aGUgd2ViQ0FMQyB0ZWFtLiBNb3JlIGluZm9ybWF0aW9uIGluIHRoZSBjb21wb25lbnQgbm90ZXMuJyk7XG59XG4iLCIvLyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuLy8gICAgICNTSEFET1dTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kRFJPUC1TSEFET1ctQ09MT1I6ICAgIHJnYmEoMCwgMCwgMCwgMC4zKSAhZGVmYXVsdDtcbiREUk9QLVNIQURPVy1MQVJHRTogICAgNXB4IDVweCA0MHB4ICREUk9QLVNIQURPVy1DT0xPUiAhZGVmYXVsdDtcbiREUk9QLVNIQURPVy1TTUFMTDogICAgMCAxcHggNHB4IDAgJERST1AtU0hBRE9XLUNPTE9SICFkZWZhdWx0O1xuJEdMT0JBTC1CT1gtU0hBRE9XOiAgICAwIDJweCA1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC40KSAhZGVmYXVsdDtcbiRDQVJELVNIQURPVzogICAgICAgICAgJERST1AtU0hBRE9XLVNNQUxMICFkZWZhdWx0O1xuJENBUkQtSU5BQ1RJVkUtU0hBRE9XOiBudWxsICFkZWZhdWx0O1xuIiwiLy8gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbi8vICAgICAjQ09MT1JTXG4vLyBcXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBMaXRlcmFsIGNvbG9yIHBhbGV0dGUuXG4vLyBET04nVCBVU0UgVEhFU0UgVkFSUyBJTiBZT1VSIENPREVCQVNFISEhXG5cbiRfX3ByaW1hcnktYmxhY2tfXzogICAgICMwMDAgIWRlZmF1bHQ7XG4kX19wcmltYXJ5LXdoaXRlX186ICAgICAjZmZmICFkZWZhdWx0O1xuJF9fcHJpbWFyeS1ibHVlNjAwX186ICAgIzAwMWU1MCAhZGVmYXVsdDtcbiRfX3ByaW1hcnktYmx1ZTUwMF9fOiAgICMwMDQzN2EgIWRlZmF1bHQ7XG4kX19wcmltYXJ5LWJsdWUyMDBfXzogICAjMDBiMGYwICFkZWZhdWx0O1xuXG4kX19zZWNvbmRhcnktZ3JleTUwMF9fOiAjM2M0ODRkICFkZWZhdWx0O1xuJF9fc2Vjb25kYXJ5LWdyZXk0MDBfXzogIzZhNzY3ZCAhZGVmYXVsdDtcbiRfX3NlY29uZGFyeS1ncmV5MzAwX186ICM5NmEzYTggIWRlZmF1bHQ7XG4kX19zZWNvbmRhcnktZ3JleTIwMF9fOiAjYzJjYWNmICFkZWZhdWx0O1xuJF9fc2Vjb25kYXJ5LWdyZXkxMDBfXzogI2RmZTRlOCAhZGVmYXVsdDtcblxuJF9fc2lnbmFsLWdyZWVuMjAwX186ICAgIzAyOTY0MCAhZGVmYXVsdDtcbiRfX3NpZ25hbC1taW50MTAwX186ICAgICMwMGU2ZTYgIWRlZmF1bHQ7XG4kX19zaWduYWwtcHVycGxlMTAwX186ICAjNWIwOGE0ICFkZWZhdWx0O1xuJF9fc2lnbmFsLXJlZDIwMF9fOiAgICAgI2U0MDAyYyAhZGVmYXVsdDtcbiRfX3NpZ25hbC15ZWxsb3cwMDBfXzogICNmZmQxMDAgIWRlZmF1bHQ7XG5cbiRfX2hvdmVyLWJsdWUxMDBfXzogICAgICM0Y2M3ZjQgIWRlZmF1bHQ7XG4kX19ob3Zlci1ibHVlOTAwX186ICAgICAjMDA0MGM1ICFkZWZhdWx0O1xuJF9faG92ZXItZ3JlZW4xMDBfXzogICAgI2FkZTVhMSAhZGVmYXVsdDtcbiRfX2hvdmVyLXJlZDEwMF9fOiAgICAgICNmZjMzNWMgIWRlZmF1bHQ7XG5cblxuLy8gU2VtYW50aWMgY29sb3IgcGFsZXR0ZS5cbi8vIFVTRSBUSEVTRSBWQVJTIElOIFlPVVIgQ09ERUJBU0UuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cInNlbWFudGljQ29sb3JzXCJcbiRDT0xPUi1CQVNFLUJBQ0tHUk9VTkQ6ICRfX3ByaW1hcnktd2hpdGVfXyAhZGVmYXVsdDtcbiRDT0xPUi1CQVNFLVRFWFQ6ICAgICAgICRfX3ByaW1hcnktYmxhY2tfXyAhZGVmYXVsdDtcbiRDT0xPUi1BTFQtVEVYVDogICAgICAgICRfX3NlY29uZGFyeS1ncmV5NDAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItQkFTRTogICAgICAgICAgICAkX19wcmltYXJ5LWJsYWNrX18gIWRlZmF1bHQ7XG4kQ09MT1ItQlJBTkQ6ICAgICAgICAgICAkX19wcmltYXJ5LWJsdWU2MDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1CUkFORC1TVUJUTEU6ICAgICRfX3ByaW1hcnktYmx1ZTUwMF9fICFkZWZhdWx0O1xuJENPTE9SLUJSQU5ELUFMVDogICAgICAgJF9fcHJpbWFyeS1ibHVlMjAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItV0hJVEU6ICAgICAgICAgICAkX19wcmltYXJ5LXdoaXRlX18gIWRlZmF1bHQ7XG4kQ09MT1ItU1VCVExFLURBUktFTjogICAkX19zZWNvbmRhcnktZ3JleTUwMF9fICFkZWZhdWx0O1xuJENPTE9SLVNVQlRMRTogICAgICAgICAgJF9fc2Vjb25kYXJ5LWdyZXk0MDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1QQUxFOiAgICAgICAgICAgICRfX3NlY29uZGFyeS1ncmV5MzAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItSU5BQ1RJVkU6ICAgICAgICAkX19zZWNvbmRhcnktZ3JleTEwMF9fICFkZWZhdWx0O1xuJENPTE9SLURJU0FCTEVEOiAgICAgICAgJF9fc2Vjb25kYXJ5LWdyZXkyMDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1BTEVSVDogICAgICAgICAgICRfX3NpZ25hbC1yZWQyMDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1XQVJOSU5HOiAgICAgICAgICRfX3NpZ25hbC15ZWxsb3cwMDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1TVUNDRVNTOiAgICAgICAgICRfX3NpZ25hbC1ncmVlbjIwMF9fICFkZWZhdWx0O1xuJENPTE9SLUlORk86ICAgICAgICAgICAgJF9fc2lnbmFsLXB1cnBsZTEwMF9fICFkZWZhdWx0O1xuJENPTE9SLUhJR0hMSUdIVDogICAgICAgJF9fc2lnbmFsLW1pbnQxMDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1CT1JERVI6ICAgICAgICAgICRfX3NlY29uZGFyeS1ncmV5MjAwX18gIWRlZmF1bHQ7XG4kQ09MT1ItSU5QVVQtQk9SREVSOiAgICAkX19zZWNvbmRhcnktZ3JleTEwMF9fICFkZWZhdWx0O1xuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG5cbiRDT0xPUi1CUkFORC1IT1ZFUjogICAgICRfX2hvdmVyLWJsdWU5MDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1CUkFORC1BTFQtSE9WRVI6ICRfX2hvdmVyLWJsdWUxMDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1BTEVSVC1IT1ZFUjogICAgICRfX2hvdmVyLXJlZDEwMF9fICFkZWZhdWx0O1xuJENPTE9SLVNVQ0NFU1MtSE9WRVI6ICAgJF9faG92ZXItZ3JlZW4xMDBfXyAhZGVmYXVsdDtcbiRDT0xPUi1USUxFLUhPVkVSOiAgICAgIHJnYmEoJF9fc2Vjb25kYXJ5LWdyZXkyMDBfXywgMC4yKSAhZGVmYXVsdDtcbiRDT0xPUi1SQURJQUwtR1JBRElFTlQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMCUgMCUsICRfX3ByaW1hcnktYmx1ZTUwMF9fIDAlLCAkX19wcmltYXJ5LWJsdWU2MDBfXyAxMDAlKSAhZGVmYXVsdDtcblxuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cImJhY2tncm91bmRDb2xvcnNcIlxuJEJBQ0tHUk9VTkQtVVRJTElUSUVTOiAoXG4gICAgXCJhbHRlcm5hdGl2ZVwiOiAgICAgICRfX3ByaW1hcnktd2hpdGVfXyxcbikgIWRlZmF1bHQ7XG4vLyBAZW5kLXNhc3MtZXhwb3J0LXNlY3Rpb25cblxuXG4vLyBHZW5lcmF0ZSB0ZXh0IGNvbG9yIHV0aWxpdHkgY2xhc3Nlcy5cbi8vIEBzYXNzLWV4cG9ydC1zZWN0aW9uPVwidGV4dENvbG9yVXRpbGl0aWVzXCJcbiRURVhULUNPTE9SLVVUSUxJVElFUzogKFxuICAgIFwiYmFzZVwiOiAgICAgJENPTE9SLUJBU0UtVEVYVCxcbiAgICBcImJyYW5kXCI6ICAgICRDT0xPUi1CUkFORCxcbiAgICBcIm11dGVkXCI6ICAgICRDT0xPUi1TVUJUTEUsXG4gICAgXCJwYWxlXCI6ICAgICAkQ09MT1ItUEFMRSxcbiAgICBcImFsZXJ0XCI6ICAgICRDT0xPUi1BTEVSVCxcbiAgICBcIndoaXRlXCI6ICAgICRDT0xPUi1XSElURSxcbiAgICBcInN1Y2Nlc3NcIjogICRDT0xPUi1TVUNDRVNTLFxuICAgIFwiZGlzYWJsZWRcIjogJENPTE9SLUlOQUNUSVZFXG4pICFkZWZhdWx0O1xuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG5cbi8vIFZXNiBiYWNrZHJvcHMuXG4vLyBAc2Fzcy1leHBvcnQtc2VjdGlvbj1cImJhY2tkcm9wc1wiXG4kR0xPQkFMLUJBQ0tEUk9QLUJBQ0tHUk9VTkQ6IHJnYmEoJF9fcHJpbWFyeS1ibGFja19fLCAwLjUpICFkZWZhdWx0O1xuLy8gQGVuZC1zYXNzLWV4cG9ydC1zZWN0aW9uXG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQ1VTVE9NIFNUWUxFR1VJREUgU1RZTEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFsxXSBBZGp1c3QgZGVtbyBiYWNrZ3JvdW5kIGNvbG9yIGZvciBjb21wb25lbnRzIHRoYXQgb3RoZXJ3aXNlIGFyZSBkaWZmaWN1bHRcbiAqICAgICB0byBkaXNwbGF5IG9uIGEgd2hpdGUgYmFja2dyb3VuZC5cbiAqL1xuXG4uc2ctc2NvcGUtc3Bpbm5lcixcbi5zZy1zY29wZS1zcGlubmVyLXNtYWxsLFxuLnNnLXNjb3BlLXNwaW5uZXItY2VudGVyLFxuLnNnLXNjb3BlLWd1aWRpbmctbGluZS13aXRoLWFsdGVybmF0aXZlLWNvbG9yIHsgLyogWzFdICovXG4gICAgQGluY2x1ZGUgY29tcG9uZW50LW5vdGljZShcIlRoZSBncmV5IGJhY2tncm91bmQgc2VlbiBoZXJlIGlzIG9ubHkgZm9yIGRlbW8gcHVycG9zZXMuXCIpO1xuXG4gICAgYmFja2dyb3VuZDogJENPTE9SLVBBTEUgIWltcG9ydGFudDtcbn1cbiJdfQ== */
